LuxSci

Authentication

authentication

In order to use any API commands, at any level, your client must first authenticate and obtain an authentication code. This authentication code can then be used to make one or more calls to API functions. our authentication "session" can also be revoked, immediately invalidating all authentication codes received for it (i.e., this is a "log out"). In order to authenticate, you will need your API Token, API Key, and your API Host name. This API request is different from authenticated request in that you do not need to send a cookie, and the way that the request is signed is different. See also [Authentication](/rest-api/mechanics.html#auth).


/auth

Parameters

Body parameters
Name Description
body

Responses

Status: 201 - Standard JSON response. No "data" keyword will be sent. See the "auth" keyword for your new authentication token.


revokeAuthentication

Revoke your authentication session and invalidate all authorization codes received. See also [Revocation](/rest-api/mechanics.html#revoke).


/auth

Parameters

Header parameters
Name Description
Cookie*

Responses

Status: 200 - Standard JSON response. No "data" keyword will be sent.


Content Library

createContentLibraryDirectory

Create a new Content Library directory.

Access control required to execute this endpoint: User Email: Content Library


/perl/api/v2/user/{username}/content_library/{directory}

Parameters

Path parameters
Name Description
username*
String
Required
directory*
String
Starting with the / following /content_library, this is the directory in {username} to create. This directory must not exist and, if it is a subdirectory, the parent directories must all exist.
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 -


deleteContentLibraryDirectory

Delete an empty Content Library directory.

Access control required to execute this endpoint: User Email: Content Library


/perl/api/v2/user/{username}/content_library/{directory}

Parameters

Path parameters
Name Description
username*
String
Required
directory*
String
Starting with the / following /content_library, this is the directory in {username} to create. This directory must not exist and, if it is a subdirectory, the parent directories must all exist.
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 -


deleteContentLibraryFile

Delete a file.

Access control required to execute this endpoint: User Email: Content Library


/perl/api/v2/user/{username}/content_library/{file_path}

Parameters

Path parameters
Name Description
username*
String
Required
file_path*
String
Required. Starting with the / following /content_library, this is the path of the file in {username} to delete. The path must not end in a training slash. Be sure to not use double slashes. Example: "/files/media/image.jpg".
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 -


getContentLibraryDirectory

Retrieve details about the specific Content Library directory.

Access control required to execute this endpoint: User Email: Content Library


/perl/api/v2/user/{username}/content_library/{directory}

Parameters

Path parameters
Name Description
username*
String
Required
directory*
String
Starting with the / following /content_library, this is the directory in {username} to examine. The path must end in a training slash. Be sure to not use double slashes. Note, for example, that for directory "/files/media/" you would insert "files/media/" in this variable. If this value is omitted, the contents of the top-level directory will be returned.
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - The response contains two main parts. "meta" reflects details about the directory requested and "items" is a list of details about the files and directories in this directory.


getContentLibraryFile

Retrieve details about the specific Content Library file.

Access control required to execute this endpoint: User Email: Content Library


/perl/api/v2/user/{username}/content_library/{file_path}

Parameters

Path parameters
Name Description
username*
String
Required
file_path*
String
Required. Starting with the / following /content_library, this is the path of the file in {username}. The path must not end in a training slash. Be sure to not use double slashes. Example: "/files/media/image.jpg".
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 -


uploadContentLibraryFile

Upload a new file to the Content Library.

Access control required to execute this endpoint: User Email: Content Library


/perl/api/v2/user/{username}/content_library/{file_path}

Parameters

Path parameters
Name Description
username*
String
Required
file_path*
String
Required. Starting with the / following /content_library, this is the path in {username} to place the file. The path must not end in a training slash. Be sure to not use double slashes. Example: "files/media/image.jpg".
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 -


Domains

createDomain

Create a new domain in your account. Note: the domain MUST be either a subdomain or have client-managed DNS. For HIPAA accounts, all new domains will be locked down for HIPAA compliance unless the account is configured as “HIPAA Flexible.” In that case, all new domains cannot be created via the API. Your API Interface looks to see how many domains were added to your account in the past 24 hours. If this number is equal or greater than your API create limit, then your API will reject additional domain creation requests until that situation changes. See your API Interface configuration page for your domain creation limit.

Access control required to execute this endpoint: Account: Domains - Manage


/perl/api/v2/account/{accountId}/domains

Parameters

Path parameters
Name Description
accountId*
String
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 - OK


deleteDomain

Remove a domain from your account. If the domain is currently in use (e.g. has users, web sites, has premium filtering or archival, has managed DNS, etc.), then it cannot be deleted. Note: the domain MUST be either a subdomain or have client-managed DNS.

Access control required to execute this endpoint: Account: Domains - Manage


/perl/api/v2/account/{accountId}/domains/{domainName}

Parameters

Path parameters
Name Description
accountId*
String
Required
domainName*
String
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - none


getDomainDetails

Get information about a specific domain. This is the same as the “Get Domain Report,” except that it returns data for 1 specific domain.

Access control required to execute this endpoint: Account: Domains - Manage


/perl/api/v2/account/{accountId}/domains/{domainName}

Parameters

Path parameters
Name Description
accountId*
String
Required
domainName*
String
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - The data will be a single object with the keys and values for the domain requested, as per the “Get Domains Report” API call, above. Note that for this call, the data is returned without an enclosing array, as there is always exactly 1 object in the response.


getDomainsReport

Get information about your domains.

Access control required to execute this endpoint: Account: Domains - Manage


/perl/api/v2/account/{accountId}/domains

Parameters

Path parameters
Name Description
accountId*
String
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - The data field of the response is an array of all domains in your account.


updateDomain

Change selected domain settings. You can change one or multiple settings via one call. Settings that are omitted will not be altered.

Access control required to execute this endpoint: Account: Domains - Manage


/perl/api/v2/account/{accountId}/domains/{domainName}

Parameters

Path parameters
Name Description
accountId*
String
Required
domainName*
String
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 - none


Email

createCustomBounceDomain

Add a new Custom Bounce Domain to the account. The bounce domain must be a subdomain of the from domain in question, have DKIM configured already, and the DNS must already be a CNAME to any of the target domains listed in the Custom Bounce Domains user interface area.

Access control required to execute this endpoint: Account: Domains - Manage


/perl/api/v2/account/{accountId}/bounce_domain

Parameters

Path parameters
Name Description
accountId*
String
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 - OK


createDkim

Create a new DKIM configuration in your account.

Access control required to execute this endpoint: Account: Domains - Manage


/perl/api/v2/account/{accountId}/dkim

Parameters

Path parameters
Name Description
accountId*
String
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 - OK


deleteDkim

Remove a DKIM definition from your account.

Access control required to execute this endpoint: Account: Domains - Manage


/perl/api/v2/account/{accountId}/dkim/{domainName}

Parameters

Path parameters
Name Description
accountId*
String
Required
domainName*
String
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - none


deleteEmailAutoResponder

Delete an email auto-responder number `id` that belongs to the user.

Access control required to execute this endpoint: User Email - Auto-Responders


/perl/api/v2/user/{username}/email/ar/{id}

Parameters

Path parameters
Name Description
username*
String
Required
id*
String
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - ""


getDkimDetails

Get information about a specific DKIM configuration. This is the same as the “Get DKIM Report,” except that it returns data for 1 specific domain.

Access control required to execute this endpoint: Account: Domains - Manage


/perl/api/v2/account/{accountId}/dkim/{domainName}

Parameters

Path parameters
Name Description
accountId*
String
Required
domainName*
String
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - The data will be a single object with the keys and values for the domain requested, as per the “Get DKIM Report” API call, above. Note that for this call, the data is returned without an enclosing array, as there is always exactly 1 object in the response'


getDkimReport

Get information about your DKIM configurations.

Access control required to execute this endpoint: Account: Domains - Manage


/perl/api/v2/account/{accountId}/dkim

Parameters

Path parameters
Name Description
accountId*
String
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - The data field of the response is an array of all DKIM definitions in your account.


getEmailAutoResponders

Return all email auto-responders owned by this user.

Access control required to execute this endpoint: User Email - Auto-Responders


/perl/api/v2/user/{username}/email/ar

Parameters

Path parameters
Name Description
username*
String
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - A successful response will return an array of objects, one for each auto-responder owned by this user.


newEmailAutoResponder

Create a new email auto-responer.

Access control required to execute this endpoint: User Email - Auto-Responders


/perl/api/v2/user/{username}/email/ar

Parameters

Path parameters
Name Description
username*
String
Required
Body parameters
Name Description
body

Responses

Status: 200 - A successful response will return the unique ID of the created auto-responder.


retrieveSecureLineRecipientListEncryptionData

When composing an email message, you may have a list of recipients and want to know what kind of encryption, if any, would be used for each recipient when it is finally sent out with SecureLine encryption. E.g. this can be used to (a) inform the sender of what encryption will be used, and (b) to discover ahead of time if there are some recipients for which a message cannot yet be encrypted (possible, for example, if SecureLine Escrow is setup to use question and answer authentication without a default fall-back question and answer). It is good to use this method before sending an encrypted message – so you can modify your recipient list and/or add additional required encryption information before sending. Note: This is a RPC-style call and hence uses a POST method even though we are “getting data”. We are interacting with the system rather than querying a specific resource.

Access control required to execute this endpoint: User Email - Sending


/perl/api/v2/user/{username}/email/compose/secureline/recipients

Parameters

Path parameters
Name Description
username*
String
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 - The response body for a successful request will contain a hash in the “data” field with one keyword, “recipients”. The value of “recipients” is a list. Each list element will be another list corresponding to one of your queried recipients.


updateEmailForwarding

This function allows you to alter the email forwarding (and denial/deletion) settings for the user.

Access control required to execute this endpoint: User Email - Forwarding


/perl/api/v2/user/{username}/email/forwarding

Parameters

Path parameters
Name Description
username*
String
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 - ""


Email Aliases

createAlias

Create new alias(es) in your account. Your API Interface looks to see how many aliases were added to your account in the past 24 hours. If this number is equal or greater than your API create limit, then your API will reject additional alias creation requests until that situation changes. See your API Interface configuration page for your alias creation limit. Note also that accounts are limited in the maximum number of email aliases permitted per domain. By default, this is 100 + 10 aliases per user in the domain. So, for a domain with 20 users, this would be 100 + 10x20 = 300 aliases.

Access control required to execute this endpoint: Account: Email Aliases - Manage


/perl/api/v2/account/{accountId}/aliases

Parameters

Path parameters
Name Description
accountId*
String
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 - OK


deleteAlias

Remove an alias with the specified alias email address from your account.

Access control required to execute this endpoint: Account: Email Aliases - Manage


/perl/api/v2/account/{accountId}/aliases/{aliasAddress}

Parameters

Path parameters
Name Description
accountId*
String
Required
aliasAddress*
String
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - none


getAliasDetails

Get information about a specific email alias.

Access control required to execute this endpoint: Account: Email Aliases - Manage


/perl/api/v2/account/{accountId}/aliases/{aliasAddress}

Parameters

Path parameters
Name Description
accountId*
String
Required
aliasAddress*
String
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - The data field of the response is an on object whose keywords and values correspond to those in the “Get Aliases Report”. This is the same as that function, except that it is targeted at a specific alias and thus instead of returning a list of alias detail objects, it simply returns the single alias detail object.


getAliasesReport

Get information about your email aliases including regular aliases user forwards, domain catchalls, and WebAide Group distribution lists.

Access control required to execute this endpoint: Account: Email Aliases - Manage


/perl/api/v2/account/{accountId}/aliases

Parameters

Path parameters
Name Description
accountId*
String
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - The data field of the response is an array of all aliases in your account.


updateAlias

Modify an existing alias in your account. This function allows you to modify regular email aliases in your account. It does not permit modification of “catch all” aliases, “user forwards,” and system aliases such as WebAide Group Distribution Lists. You can use this function to enable and disable aliases; however, you must use a separate API call to actually delete them.

Access control required to execute this endpoint: Account: Email Aliases - Manage


/perl/api/v2/account/{accountId}/aliases/{aliasAddress}

Parameters

Path parameters
Name Description
accountId*
String
Required
aliasAddress*
String
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 - None


Email Sending

createAccountSuppression

Add new email suppressions at the account level.

Access control required to execute this endpoint: User Email: Suppression


/perl/api/v2/account/{accountId}/suppression/

Parameters

Path parameters
Name Description
accountId*
Integer
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 - None


createCustomField

Create a Custom Field. These Custom Fields are useful for Secure Marketing v3 and for Advanced Secure High Volume. Note that for users in Teams, only Team Administrators are permitted to make new Custom Fields.

Access control required to execute this endpoint: User Email: Custom Fields


/perl/api/v2/user/{username}/fields

Parameters

Path parameters
Name Description
username*
String
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 -


createEmailContentTag

Define a new static email content tag.

Access control required to execute this endpoint: User Email: Templates


/perl/api/v2/user/{username}/content_tags

Parameters

Path parameters
Name Description
username*
String
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 - Results in the “data” component of the response.


createEmailTemplate

Create a new email template. Note, templates created via the API will be required to use the WYSIWYG template editor if edited in the user interface.

Access control required to execute this endpoint: User Email: Templates


/perl/api/v2/user/{username}/templates

Parameters

Path parameters
Name Description
username*
String
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 - Results in the “data” component of the response.


createEmailTemplateGroup

Create a new email template group.

Access control required to execute this endpoint: User Email: Templates


/perl/api/v2/user/{username}/template_group/{template_group_id}

Parameters

Path parameters
Name Description
username*
String
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 - Results in the data component of the response.


createUserSuppression

Add new email suppressions at the user level.

Access control required to execute this endpoint: User Email: Suppression


/perl/api/v2/user/{username}/suppression/

Parameters

Path parameters
Name Description
username*
String
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 - None


deleteAccountSuppression

Delete a specific account-level email suppression.

Access control required to execute this endpoint: User Email: Suppression


/perl/api/v2/account/{accountId}/suppression/{email}

Parameters

Path parameters
Name Description
accountId*
String
Required
email*
String
Suppression email address to be deleted.
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - none


deleteEmailContentTag

Delete a specific email content tag.

Access control required to execute this endpoint: User Email: Templates


/perl/api/v2/user/{username}/content_tags/{tag_id}

Parameters

Path parameters
Name Description
username*
String
Required
tag_id*
String
tag_id can be either the unique numerical tag_id or the text code_word
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - none


deleteEmailTemplate

Delete a specific email template.

Access control required to execute this endpoint: User Email: Templates


/perl/api/v2/user/{username}/template/{template_id}

Parameters

Path parameters
Name Description
username*
String
Required
template_id*
String
template_id can be either the unique numerical template_id or the text code_word
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - none


deleteEmailTemplateGroup

Delete a specific email template group.

Access control required to execute this endpoint: User Email: Templates


/perl/api/v2/user/{username}/template_group/{template_group_id}

Parameters

Path parameters
Name Description
username*
String
Required
template_group_id*
String
Unique Id for this template group.
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - none


deleteUserSuppression

Delete a specific user-level email suppression.

Access control required to execute this endpoint: User Email: Suppression


/perl/api/v2/user/{username}/suppression/{email}

Parameters

Path parameters
Name Description
username*
String
Required
email*
String
Suppression email address to be deleted.
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - none


getAccountSuppression

Retrieve a specific email suppression at the account level.

Access control required to execute this endpoint: User Email: Suppression


/perl/api/v2/account/{accountId}/suppression/{email}

Parameters

Path parameters
Name Description
accountId*
Integer
Required
email*
String
Suppression email address to be retrieved. You are returning all suppression entries that contain the string 'email'. Note that even if you specify a full email address for 'email,' you can get multiple matches.
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - The data will be a single object that is a list containing one entry for each match. Each entry will itself be a list of the form: `[email, expires, account_id, domain_id, user_id]`. "email" is the email address suppressed. "expires" is the number of days until it expires, or zero if it does not expire. account_id is the customer account id. domain_id is zero for account-level entries or the domain name id for domain and user-level entries. user_id is zero except for user-level suppression entries, in which case it is the end user id number.


getAccountSuppressionList

Retrieve all email suppressions at the account level. See also the newer and more general function: getAccountSuppressionReport.

Access control required to execute this endpoint: User Email: Suppression


/perl/api/v2/account/{accountId}/suppression/

Parameters

Path parameters
Name Description
accountId*
String
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - The data will be a single object that is a list containing one entry for each match. Each entry will itself be a list of the form: `[email, expires, account_id, domain_id, user_id]`. "email" is the email address suppressed. "expires" is the number of days until it expires, or zero if it does not expire. account_id is the customer account id. domain_id is zero for account-level entries, or the domain name id for domain and user-level entries. user_id is zero except for user-level suppression entries, in which case it is the end user id number.


getCustomFields

Retrieve a list of all Custom Fields visible to user {username}. These Custom Fields are useful for Secure Marketing v3 and for Advanced Secure High Volume.

Access control required to execute this endpoint: User Email: Custom Fields


/perl/api/v2/user/{username}/fields

Parameters

Path parameters
Name Description
username*
String
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 -


getDomainSmtpTlsCapability

This function checks if a specific domain name supports “good” SMTP TLS for email delivery to its users. This means: - All MX records are working - SMTP TLS is supported by all MX records - TLS support includes TLS v1.0+ and strong (NIST 800-52 recommended) ciphers like AES256. For more background, see: - [About SMTP TLS](https://luxsci.com/blog/smtp-tls-all-about-secure-email-delivery-over-tls.html) - [What Level of SSL/TLS is needed for HIPAA?](https://luxsci.com/blog/level-ssl-tls-required-hipaa.html)

Access control required to execute this endpoint: User Email - Sending


/perl/api/v2/user/{username}/email/compose/secureline/tls/{domain}

Parameters

Path parameters
Name Description
username*
String
Required
domain*
String
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - The response body for a successful request will have a keywords and data in the “data” in the JSON response.


getEmailContentTag

The call returns the specific details around a specific Email Content Tag

Access control required to execute this endpoint: User Email: Templates


/perl/api/v2/user/{username}/content_tags/{tag_id}

Parameters

Path parameters
Name Description
username*
String
Required
tag_id*
String
can either be the numerical unique ID of the Cotent Tag, or its 'code_word'
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - Results in the “data” component of the response.


getEmailContentTagList

This function returns a list of all content tags accessible to you.

Access control required to execute this endpoint: User Email: Templates


/perl/api/v2/user/{username}/content_tags

Parameters

Path parameters
Name Description
username*
String
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - Results in the “data” component of the response. The data component is a list of associated arrays. Each associate array corresponds to a single content tag


getEmailTemplate

The call returns the specific details around a specific Email Template.

Access control required to execute this endpoint: User Email: Templates


/perl/api/v2/user/{username}/template/{template_id}

Parameters

Path parameters
Name Description
username*
String
Required
template_id*
String
can either be the numerical unique ID of the template, or the textual “code_word”
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - Results in the “data” component of the response.


getEmailTemplateGroups

This function returns a list of all templates groups accessible to you.

Access control required to execute this endpoint: User Email: Templates


/perl/api/v2/user/{username}/template_groups

Parameters

Path parameters
Name Description
username*
String
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - Results in the data component of the response. The data component is a list of associated arrays. Each associate array corresponds to a single template group.


getEmailTemplateList

This function returns a list of all templates accessible to you.

Access control required to execute this endpoint: User Email: Templates


/perl/api/v2/user/{username}/templates

Parameters

Path parameters
Name Description
username*
String
Required
Header parameters
Name Description
Cookie
Query parameters
Name Description
user_id
Integer
Restricts the templates returned to only those owned by a specific user, [user_id]. This is relevent when [username] used belongs to a Team. In that case, all non-private Templates of all Team members are returned by this call unless this parameter is specified.

Responses

Status: 200 - Results in the “data” component of the response. The data component is a list of associated arrays. Each associate array corresponds to a single template.


getUserSuppression

Retrieve a specific email suppression at the user level.

Access control required to execute this endpoint: User Email: Suppression

. See also the newer and more general function: getUserSuppressionReport.


/perl/api/v2/user/{username}/suppression/{email}

Parameters

Path parameters
Name Description
username*
String
Required
email*
String
Suppression email address to be retrieved. You are returning all suppression entries that contain the string 'email'. Note that even if you specify a full email address for 'email,' you can get multiple matches.
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - The data will be a single object that is a list containing one entry for each match. Each entry will itself be a list of the form: [email, expires, account_id, domain_id, user_id, date_time_created, notes]. "email" is the email address suppressed. "expires" is the number of days until it expires, or zero if it does not expire. account_id is the customer account id. domain_id is zero for account-level entries, or the domain name id for domain and user-level entries. user_id is zero except for user-level suppression entries, in which case it is the end user id number. "date_time_created" is in GMT.


getUserSuppressionList

Retrieve all email suppressions at the user level in a simple list.

Access control required to execute this endpoint: User Email: Suppression


/perl/api/v2/user/{username}/suppression/

Parameters

Path parameters
Name Description
username*
String
Required
Header parameters
Name Description
Cookie

Responses

Status: 200 - The data will be a single object that is a list containing one entry for each match. Each entry will itself be a list of the form: [email, expires, account_id, domain_id, user_id, date_time_created, notes]. "email" is the email address suppressed. "expires" is the number of days until it expires, or zero if it does not expire. account_id is the customer account id. domain_id is zero for account-level entries, or the domain name id for domain and user-level entries. user_id is zero except for user-level suppression entries, in which case it is the end user id number. "date_time_created" is in GMT.


sendEmail

This API call is a generic outbound email sending interface that is designed to enable efficient large-scale email sending through your account’s email servers. It is ideal for Secure High Volume email sending. See - [sendEmail vs sendSecureEmailOrSecureText endpoints](/rest-api/sending-email.html) for sending email via the LuxSci API. This API function is used to send message(s) through your account’s SMTP server(s). You can think of it as an API-based proxy to SMTP, used for cases where direct use of SMTP is not an option. Generally speaking, direct use of SMTP is overall faster and more efficient; however, the API does include some things that you cannot get through direct SMTP connections. For example, the API includes support for failover, load-balanced SMTP servers; this can be done with direct SMTP only if you have a load balancer in front of your servers. You can also hand off messages to LuxSci (into the outbound queues) faster through the API than you can through direct SMTP. As this is a proxy for SMTP, the majority of the email message processing actually happens on the SMTP servers themselves (just like it would if you had actually used direct SMTP to send the message). The API call accepts the message, vets your ability to send the message, queues the message, and the moves it to the appropriate SMTP servers for delivery. This API process is designed to be very safe and efficient and works well for customers with very large SMTP sending limits (e.g., millions of messages per month). This API function allows you to optionally include attachments. If you wish to include attachments, you must format your request as a `multipart/form-data` request as discussed in the [API Mechanics Guide](/rest-api/mechanics.html). If the API call 'fails' it may be because more information is needed to encrypt the message to your recipients, if the request is malformed, or if your sending has exceeded some limit. Here are some limits to be aware of 1. The sending user must have an SMTP license. 2. The sending user must have a SecureLine license to use SecureLine-specific parameters. 3. You have to send to at least 1 recipient, but no more than 100 recipients per message. This limit can be increased on dedicated servers. 4. Your API call can contain 1 to 1000 messages. This limit can be increased on dedicated servers. 5. The total number of recipients across all messages in your API call cannot exceed 1000. This limit can be increased on dedicated servers. 6. The messages sent by a user through this API call count towards the users’ daily and monthly SMTP sending (just as if the user had actually used direct SMTP to send) totals. So, messages will be rejected if a user exceeds any of these limits. Please contact support if you need to upgrade these limits. 7. While SecureLine-encrypted emails sending is supported through this API call, SecureText sending is not. 8. If there are restrictions configured in the Domain Administration control panel on to whom the sending user can send messages, these restrictions also apply to messages sent through the API. 9. The total size of the message subject, body, and all attachments (raw size) must be less than or equal to 66% the sender’s SMTP message sending size limit. This limit can be affected by use of Email Archival, custom domain-level size limits, and general global limits. The current value of this limit can be found in the “Maximum Message Size Limit” for the sender’s domain in your domain administration settings area. 66% is used because, when the attachments are encoded into an actual email message, the size can bloat to 140-150% of the raw size; the SMTP message size limit looks at the size of the encoded messages passing through your SMTP servers. Note that once messages sent via this API arrive on your SMTP server for processing and delivery, those messages are subject to any server delivery rate limiting settings currently enabled on the SMTP server. For example, if your SMTP server is “warming up” its IP address by slowly increasing its outbound email delivery rate, messages sent by the API through that server may be delayed by that warmup rate limit. **Maximizing your sending rate:** To deposit email messages in the outbound queues as fast as possible using the API, we recommend 1. Send as many messages as you can in each API call. This “pipelining” greatly reduces the number of API calls you need to execute and greatly speeds up processing of your messages. 2. When sending same attachments in multiple messages, use the API’s feature for including the attachment once and referencing it in each of the actual messages. This will greatly speed up the uploading/posting of your message information to the API server. 3. Keep the messages as small as possible. 4. If appropriate for your use case, send fewer messages. Have more recipients per message (using the `bcc` field if needed). 5. Ask support about dedicated API servers. If all of the server resources are dedicated to your account, your throughput can be higher. You can also use multiple load-balanced dedicated API sending servers to scale your throughput capacity. 6. Use the `priority` field to ensure that more important messages are processed and delivered before less important messages. Under ideal conditions, you should be able to deposit outbound email messages in the API queues much faster that your email servers can actually deliver those messages to the actual recipients (unless you have a number of powerful dedicated email servers). That is OK, your email servers will just process and delivery them as fast as they can. The actual rate of message delivery to the recipients will be a function of how many email servers you have, what their specs are, how busy they are, and many other factors involved in SMTP email delivery – such as the recipients’ DNS response time, the recipient’s inbound email server speeds, etc.

Access control required to execute this endpoint: User Email: Sending


/perl/api/v2/user/{username}/email/send

Parameters

Path parameters
Name Description
username*
String
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body
Form parameters
Name Description
json
userusernameemailsend_json
files
array[byte[]] (binary)

Responses

Status: 200 - The response body for a successful request will contain a hash in the “data” field. The value of this data field is an array which lists the unique sendmail_id codes for each of the messages sent. These codes can be used in the reporting API functions to look up delivery status and other message details. If multiple messages were sent in a single API call, multiple sendmail_id codes will be returned and the order of the codes in the array will exactly match the order of the messages in the API call.


sendSecureEmailOrSecureText

Send Secure Email and/or SecureText messages through your WebMail servers. This API endpoint is deprecated; use the sendEmail endpoint instead. See [sendEmail vs sendSecureEmailOrSecureText endpoints](/rest-api/sending-email.html) for sending email via the LuxSci API.

Access control required to execute this endpoint: User Email: Sending


/perl/api/v2/user/{username}/email/compose/secureline/send

Parameters

Path parameters
Name Description
username*
String
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 - ""


updateEmailContentTag

This content tag update call will update/replace ALL FIELDS. So, include all fields, as omitted fields will be treated as if you are updating them with empty or false values. This is effectively just like deleting the old tag with this `tag_id` and replacing it with the new data. Note, this call does not allow you to change the type of a Contet Tag or alter the inclusion rules for Dynamic Content Tags.

Access control required to execute this endpoint: User Email: Templates


/perl/api/v2/user/{username}/content_tags/{tag_id}

Parameters

Path parameters
Name Description
username*
String
Required
tag_id*
String
tag_id can be either the unique numerical tag_id or the code_word.
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 - None


updateEmailTemplate

This template update call will update/replace ALL FIELDS. So, include all fields, as omitted fields will be treated as if you are updating them with empty or false values. This is effectively just like deleting the old template with this `template_id` and replacing it with the new data. Note, any template updated from the API will be required to use the WYSIWYG template editor when edited in the user interface.

Access control required to execute this endpoint: User Email: Templates


/perl/api/v2/user/{username}/template/{template_id}

Parameters

Path parameters
Name Description
username*
String
Required
template_id*
String
template_id can be either the unique numerical template_id or the text code_word.
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 - None


updateEmailTemplateGroup

Update the Template Group name.

Access control required to execute this endpoint: User Email: Templates


/perl/api/v2/user/{username}/template_group/{template_group_id}

Parameters

Path parameters
Name Description
username*
String
Required
template_group_id*
String
Unique Id for this template group.
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 - None


Marketing v2

addMarketingCampaign

Create a new email broadcast campaign.

Access control required to execute this endpoint: Marketing - Campaign Management


/perl/api/v2/account/{accountId}/marketing/addCampaign

Parameters

Path parameters
Name Description
accountId*
String
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 - OK


addMarketingContact

Add New Contact.

Access control required to execute this endpoint: Marketing - Contact Management


/perl/api/v2/account/{accountId}/marketing/addContact

Parameters

Path parameters
Name Description
accountId*
String
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 - OK


addMarketingContacts

Add New Contacts.

Access control required to execute this endpoint: Marketing - Contact Management

This is a bulk wrapper around addContact. You specify multiple contacts in the contacts list element. The response contains a list of API response call results for each API add request. Use of addContacts is the same as calling addContact multiple times; however, it is somewhat more efficient.


/perl/api/v2/account/{accountId}/marketing/addContacts

Parameters

Path parameters
Name Description
accountId*
String
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 - OK


addMarketingList

Add New Contact List.

Access control required to execute this endpoint: Marketing - List Management


/perl/api/v2/account/{accountId}/marketing/addList

Parameters

Path parameters
Name Description
accountId*
String
Required
Header parameters
Name Description
Cookie
Body parameters
Name Description
body

Responses

Status: 200 - Includes ID and fields matching those sent in the request or which you would normally get from contact list queries. Ses the getLists.