Online Now  

/v1/external_messaging/

External Messaging Channel-neutral outbound messaging control plane. Phase one supports email, with shared identities, billing, events, suppressions, and delivery health designed for future channels such as SMS or WhatsApp.
GET

/v1/external_messaging/get_billing_settings

#
Returns billing settings and the selected default AT funding account.

Parameters

NameTypeRequiredDefaultDescription
channel string No "all" Billing channel. Use all for the default setting.
Request example (cURL)
curl --get \
  'https://ca.appointmenttrader.com/v1/external_messaging/get_billing_settings' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'channel={{channel}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$external_messaging_get_billing_settings_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.IDDatabaseInteger NoInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.ID.oneOf[0]integer No
$.oneOf[0].allOf[1].Payload.ID.oneOf[1]string No
$.oneOf[0].allOf[1].Payload.CreatedDatestring No
$.oneOf[0].allOf[1].Payload.LastUpdateDatestring No
$.oneOf[0].allOf[1].Payload.DeletedDate No
$.oneOf[0].allOf[1].Payload.DeletedDate.anyOf[0]string No
$.oneOf[0].allOf[1].Payload.DeletedDate.anyOf[1]null No
$.oneOf[0].allOf[1].Payload.ATUser_IDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.ATUser_ID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.ATUser_ID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.Channelstring Yes
$.oneOf[0].allOf[1].Payload.DefaultFunding-ATAccounts_ID Yes
$.oneOf[0].allOf[1].Payload.DefaultFunding-ATAccounts_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.DefaultFunding-ATAccounts_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.DefaultFunding-ATAccounts_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.DefaultFunding-ATAccounts_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.LastSetBy-ATUser_ID No
$.oneOf[0].allOf[1].Payload.LastSetBy-ATUser_ID.anyOf[0]DatabaseInteger NoInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.LastSetBy-ATUser_ID.anyOf[0].oneOf[0]integer No
$.oneOf[0].allOf[1].Payload.LastSetBy-ATUser_ID.anyOf[0].oneOf[1]string No
$.oneOf[0].allOf[1].Payload.LastSetBy-ATUser_ID.anyOf[1]null No
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0]object Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].Currencystring Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].CurrencySymbolstring Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].CreatedDatestring Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].LastUpdateDatestring Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].Namestring Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].Descriptionstring Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].IDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].ID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].ID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].ATUser_IDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].ATUser_ID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].ATUser_ID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].CurrencyCreditLimitDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].CurrencyCreditLimit.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].CurrencyCreditLimit.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].PayoutDefaultBasisPointsDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].PayoutDefaultBasisPoints.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].PayoutDefaultBasisPoints.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].PointsCreditLimitDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].PointsCreditLimit.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].PointsCreditLimit.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].IsATCorporateAccountDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].IsATCorporateAccount.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].IsATCorporateAccount.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].IsDefaultDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].IsDefault.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].IsDefault.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].IsDepositAccountDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].IsDepositAccount.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].IsDepositAccount.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].CurrencyBalanceDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].CurrencyBalance.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].CurrencyBalance.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].PointsBalanceDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].PointsBalance.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[0].PointsBalance.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.DefaultFundingAccount.anyOf[1] = false Yes
$.oneOf[0].allOf[1].Payload.PriceSettingsobject Yes
$.oneOf[0].allOf[1].Payload.PriceSettings.PricePerMessageinteger Yes
$.oneOf[0].allOf[1].Payload.PriceSettings.PriceUnitstring ["USD","Traderpoint"] Yes
$.oneOf[0].allOf[1].Payload.PriceSettings.RateLimitPerHourinteger Yes
$.oneOf[0].allOf[1].Payload.PriceSettings.RecipientLimitPerMessageinteger Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/external_messaging/get_billing_settings",
    "RequestUserAlias": "example-user",
    "Payload": {
        "ATUser_ID": 0,
        "Channel": "synthetic-example",
        "DefaultFunding-ATAccounts_ID": 0,
        "DefaultFundingAccount": {
            "Currency": "synthetic-example",
            "CurrencySymbol": "synthetic-example",
            "CreatedDate": "synthetic-example",
            "LastUpdateDate": "synthetic-example",
            "Name": "synthetic-example",
            "Description": "synthetic-example",
            "ID": 0,
            "ATUser_ID": 0,
            "CurrencyCreditLimit": 0,
            "PayoutDefaultBasisPoints": 0,
            "PointsCreditLimit": 0,
            "IsATCorporateAccount": 0,
            "IsDefault": 0,
            "IsDepositAccount": 0,
            "CurrencyBalance": 0,
            "PointsBalance": 0
        },
        "PriceSettings": {
            "PricePerMessage": 0,
            "PriceUnit": "USD",
            "RateLimitPerHour": 0,
            "RecipientLimitPerMessage": 0
        }
    }
}
Machine-readable endpoint documentation
GET

/v1/external_messaging/get_channels

#
Returns supported external messaging channels.
Request example (cURL)
curl --get \
  'https://ca.appointmenttrader.com/v1/external_messaging/get_channels' \
  --data-urlencode 'key={{API_KEY}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$external_messaging_get_channels_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.channelsarray Yes
$.oneOf[0].allOf[1].Payload.channels[]object No
$.oneOf[0].allOf[1].Payload.channels[].channel = "email" Yes
$.oneOf[0].allOf[1].Payload.channels[].name = "Email" Yes
$.oneOf[0].allOf[1].Payload.channels[].enabled = true Yes
$.oneOf[0].allOf[1].Payload.channels[].streamsarray Yes
$.oneOf[0].allOf[1].Payload.channels[].streams[]string ["auth","transactional","community","bulk","sandbox"] No
$.oneOf[0].allOf[1].Payload.priceSettingsobject Yes
$.oneOf[0].allOf[1].Payload.priceSettings.PricePerMessageinteger Yes
$.oneOf[0].allOf[1].Payload.priceSettings.PriceUnitstring ["USD","Traderpoint"] Yes
$.oneOf[0].allOf[1].Payload.priceSettings.RateLimitPerHourinteger Yes
$.oneOf[0].allOf[1].Payload.priceSettings.RecipientLimitPerMessageinteger Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/external_messaging/get_channels",
    "RequestUserAlias": "example-user",
    "Payload": {
        "channels": [],
        "priceSettings": {
            "PricePerMessage": 0,
            "PriceUnit": "USD",
            "RateLimitPerHour": 0,
            "RecipientLimitPerMessage": 0
        }
    }
}
Machine-readable endpoint documentation
GET

/v1/external_messaging/get_delivery_health

#
Returns delivery health counters for the API user.
Request example (cURL)
curl --get \
  'https://ca.appointmenttrader.com/v1/external_messaging/get_delivery_health' \
  --data-urlencode 'key={{API_KEY}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$external_messaging_get_delivery_health_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.window = "7 days" Yes
$.oneOf[0].allOf[1].Payload.messageCountsobject Yes
$.oneOf[0].allOf[1].Payload.messageCounts.Queuedinteger Yes
$.oneOf[0].allOf[1].Payload.messageCounts.Sendinginteger Yes
$.oneOf[0].allOf[1].Payload.messageCounts.Sentinteger Yes
$.oneOf[0].allOf[1].Payload.messageCounts.Deferredinteger Yes
$.oneOf[0].allOf[1].Payload.messageCounts.Suppressedinteger Yes
$.oneOf[0].allOf[1].Payload.messageCounts.Failedinteger Yes
$.oneOf[0].allOf[1].Payload.identityCounts Yes
$.oneOf[0].allOf[1].Payload.identityCounts.anyOf[0]object Yes
$.oneOf[0].allOf[1].Payload.identityCounts.anyOf[0].*integer No
$.oneOf[0].allOf[1].Payload.identityCounts.anyOf[1]array Yes
$.oneOf[0].allOf[1].Payload.suppressionCountinteger Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/external_messaging/get_delivery_health",
    "RequestUserAlias": "example-user",
    "Payload": {
        "window": "7 days",
        "messageCounts": {
            "Queued": 0,
            "Sending": 0,
            "Sent": 0,
            "Deferred": 0,
            "Suppressed": 0,
            "Failed": 0
        },
        "identityCounts": [],
        "suppressionCount": 0
    }
}
Machine-readable endpoint documentation
GET

/v1/external_messaging/get_events

#
Returns the event timeline for a message.

Parameters

NameTypeRequiredDefaultDescription
messageID string No "" Message numeric ID or UUID.
Request example (cURL)
curl --get \
  'https://ca.appointmenttrader.com/v1/external_messaging/get_events' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'messageID={{messageID}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$external_messaging_get_events_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.eventsarray Yes
$.oneOf[0].allOf[1].Payload.events[]object No
$.oneOf[0].allOf[1].Payload.events[].IDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.events[].ID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.events[].ID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.events[].CreatedDatestring Yes
$.oneOf[0].allOf[1].Payload.events[].ATExternalMessagingMessages_IDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.events[].ATExternalMessagingMessages_ID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.events[].ATExternalMessagingMessages_ID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.events[].Channelstring Yes
$.oneOf[0].allOf[1].Payload.events[].EventTypestring Yes
$.oneOf[0].allOf[1].Payload.events[].Severitystring Yes
$.oneOf[0].allOf[1].Payload.events[].RecipientAddress Yes
$.oneOf[0].allOf[1].Payload.events[].RecipientAddress.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.events[].RecipientAddress.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.events[].ProviderMessageID Yes
$.oneOf[0].allOf[1].Payload.events[].ProviderMessageID.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.events[].ProviderMessageID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.events[].ATExternalMessagingChannelConfigs_ID Yes
$.oneOf[0].allOf[1].Payload.events[].ATExternalMessagingChannelConfigs_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.events[].ATExternalMessagingChannelConfigs_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.events[].ATExternalMessagingChannelConfigs_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.events[].ATExternalMessagingChannelConfigs_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[0] = null Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[1] = "" Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2]object Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].IDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].ID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].ID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].CreatedDatestring Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].LastUpdateDatestring Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].DeletedDate Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].DeletedDate.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].DeletedDate.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].ATUser_ID Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].ATUser_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].ATUser_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].ATUser_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].ATUser_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].Channelstring Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].Scopestring Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].ATExternalMessagingIdentities_ID Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].ATExternalMessagingIdentities_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].ATExternalMessagingIdentities_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].ATExternalMessagingIdentities_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].ATExternalMessagingIdentities_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].RecipientAddress Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].RecipientAddress.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].RecipientAddress.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].RecipientHash Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].RecipientHash.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].RecipientHash.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].SuppressionTypestring Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].Reason Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].Reason.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].Reason.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].ExpiresDate Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].ExpiresDate.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].ExpiresDate.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].CreatedBy-ATUser_ID Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].CreatedBy-ATUser_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].CreatedBy-ATUser_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].CreatedBy-ATUser_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].CreatedBy-ATUser_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].DeletedBy-ATUser_ID Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].DeletedBy-ATUser_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].DeletedBy-ATUser_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].DeletedBy-ATUser_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[2].DeletedBy-ATUser_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[3]object Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[3].endpointstring Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[4]object Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[4].reasonstring Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[4].delayMinutesinteger Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[5]object Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[5].acceptedboolean Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[5].providerMessageID No
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[5].providerMessageID.anyOf[0]string No
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[5].providerMessageID.anyOf[1]null No
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[5].statusCodeinteger No
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[5].responseExternalMessageProviderValue No
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[5].response.oneOf[0]string | number | boolean | null No
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[5].response.oneOf[1]array No
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[5].response.oneOf[1][]ExternalMessageProviderValue No
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[5].response.oneOf[2]object No
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[5].response.oneOf[2].*ExternalMessageProviderValue No
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[5].errorstring No
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[6]object Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[6].ledgerIDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[6].ledgerID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[6].ledgerID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[6].priceAmountinteger Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[6].priceUnitstring ["USD","Traderpoint"] Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[7]object Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[7].*ExternalMessageProviderValue No
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[7].*.oneOf[0]string | number | boolean | null No
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[7].*.oneOf[1]array No
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[7].*.oneOf[1][]ExternalMessageProviderValue No
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[7].*.oneOf[2]object No
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[7].*.oneOf[2].*ExternalMessageProviderValue No
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[8]array Yes
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[9]array YesProvider callback arrays are preserved when supplied.
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[9][]ExternalMessageProviderValue No
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[9][].oneOf[0]string | number | boolean | null No
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[9][].oneOf[1]array No
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[9][].oneOf[1][]ExternalMessageProviderValue No
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[9][].oneOf[2]object No
$.oneOf[0].allOf[1].Payload.events[].EventPayload.anyOf[9][].oneOf[2].*ExternalMessageProviderValue No
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/external_messaging/get_events",
    "RequestUserAlias": "example-user",
    "Payload": {
        "events": []
    }
}
Machine-readable endpoint documentation
GET

/v1/external_messaging/get_identities

#
Returns sender identities owned by the API user.

Parameters

NameTypeRequiredDefaultDescription
channel string No "email" Channel to list. Phase one supports email.
Request example (cURL)
curl --get \
  'https://ca.appointmenttrader.com/v1/external_messaging/get_identities' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'channel={{channel}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$external_messaging_get_identities_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.identitiesarray Yes
$.oneOf[0].allOf[1].Payload.identities[]object No
$.oneOf[0].allOf[1].Payload.identities[].IDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.identities[].ID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.identities[].ID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.identities[].IdentityUUIDstring Yes
$.oneOf[0].allOf[1].Payload.identities[].CreatedDatestring Yes
$.oneOf[0].allOf[1].Payload.identities[].LastUpdateDatestring Yes
$.oneOf[0].allOf[1].Payload.identities[].ATUser_IDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.identities[].ATUser_ID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.identities[].ATUser_ID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.identities[].Channel = "email" Yes
$.oneOf[0].allOf[1].Payload.identities[].Streamstring ["auth","transactional","community","bulk","sandbox"] Yes
$.oneOf[0].allOf[1].Payload.identities[].Statusstring ["PendingDNS","Verified","Suspended"] Yes
$.oneOf[0].allOf[1].Payload.identities[].Namestring Yes
$.oneOf[0].allOf[1].Payload.identities[].FromName Yes
$.oneOf[0].allOf[1].Payload.identities[].FromName.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.identities[].FromName.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.identities[].FromAddress Yes
$.oneOf[0].allOf[1].Payload.identities[].FromAddress.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.identities[].FromAddress.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.identities[].DomainName Yes
$.oneOf[0].allOf[1].Payload.identities[].DomainName.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.identities[].DomainName.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.identities[].ReturnPathDomain Yes
$.oneOf[0].allOf[1].Payload.identities[].ReturnPathDomain.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.identities[].ReturnPathDomain.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.identities[].DKIMSelector Yes
$.oneOf[0].allOf[1].Payload.identities[].DKIMSelector.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.identities[].DKIMSelector.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.identities[].DNSLastCheckTime Yes
$.oneOf[0].allOf[1].Payload.identities[].DNSLastCheckTime.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.identities[].DNSLastCheckTime.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.identities[].LastVerifiedTime Yes
$.oneOf[0].allOf[1].Payload.identities[].LastVerifiedTime.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.identities[].LastVerifiedTime.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.identities[].ATUser_Alias Yes
$.oneOf[0].allOf[1].Payload.identities[].ATUser_Alias.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.identities[].ATUser_Alias.anyOf[1]null Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/external_messaging/get_identities",
    "RequestUserAlias": "example-user",
    "Payload": {
        "identities": []
    }
}
Machine-readable endpoint documentation
GET

/v1/external_messaging/get_identity_dns_status

#
Returns expected and last observed DNS state for an identity.

Parameters

NameTypeRequiredDefaultDescription
identityID int No 0 Sender identity ID.
Request example (cURL)
curl --get \
  'https://ca.appointmenttrader.com/v1/external_messaging/get_identity_dns_status' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'identityID={{identityID}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$external_messaging_get_identity_dns_status_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.identityobject Yes
$.oneOf[0].allOf[1].Payload.identity.IDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.identity.ID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.identity.ID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.identity.CreatedDatestring Yes
$.oneOf[0].allOf[1].Payload.identity.LastUpdateDatestring Yes
$.oneOf[0].allOf[1].Payload.identity.DeletedDate Yes
$.oneOf[0].allOf[1].Payload.identity.DeletedDate.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.identity.DeletedDate.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.identity.IdentityUUIDstring Yes
$.oneOf[0].allOf[1].Payload.identity.ATUser_IDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.identity.ATUser_ID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.identity.ATUser_ID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.identity.CreatedBy-ATUser_ID Yes
$.oneOf[0].allOf[1].Payload.identity.CreatedBy-ATUser_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.identity.CreatedBy-ATUser_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.identity.CreatedBy-ATUser_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.identity.CreatedBy-ATUser_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.identity.Channel = "email" Yes
$.oneOf[0].allOf[1].Payload.identity.Streamstring ["auth","transactional","community","bulk","sandbox"] Yes
$.oneOf[0].allOf[1].Payload.identity.Statusstring ["PendingDNS","Verified","Suspended"] Yes
$.oneOf[0].allOf[1].Payload.identity.Namestring Yes
$.oneOf[0].allOf[1].Payload.identity.FromName Yes
$.oneOf[0].allOf[1].Payload.identity.FromName.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.identity.FromName.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.identity.FromAddress Yes
$.oneOf[0].allOf[1].Payload.identity.FromAddress.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.identity.FromAddress.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.identity.DomainName Yes
$.oneOf[0].allOf[1].Payload.identity.DomainName.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.identity.DomainName.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.identity.ReturnPathDomain Yes
$.oneOf[0].allOf[1].Payload.identity.ReturnPathDomain.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.identity.ReturnPathDomain.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.identity.DKIMSelector Yes
$.oneOf[0].allOf[1].Payload.identity.DKIMSelector.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.identity.DKIMSelector.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.identity.DKIMPublicKey Yes
$.oneOf[0].allOf[1].Payload.identity.DKIMPublicKey.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.identity.DKIMPublicKey.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.identity.DKIMPrivateKeyEnvironmentKey Yes
$.oneOf[0].allOf[1].Payload.identity.DKIMPrivateKeyEnvironmentKey.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.identity.DKIMPrivateKeyEnvironmentKey.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.identity.VerificationToken Yes
$.oneOf[0].allOf[1].Payload.identity.VerificationToken.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.identity.VerificationToken.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.identity.DNSExpectedPayload Yes
$.oneOf[0].allOf[1].Payload.identity.DNSExpectedPayload.anyOf[0]array Yes
$.oneOf[0].allOf[1].Payload.identity.DNSExpectedPayload.anyOf[0][]object No
$.oneOf[0].allOf[1].Payload.identity.DNSExpectedPayload.anyOf[0][].keystring ["ownership","dkim","dmarc","return_path","mta_sts","tls_reporting"] Yes
$.oneOf[0].allOf[1].Payload.identity.DNSExpectedPayload.anyOf[0][].labelstring Yes
$.oneOf[0].allOf[1].Payload.identity.DNSExpectedPayload.anyOf[0][].typestring ["TXT","MX"] Yes
$.oneOf[0].allOf[1].Payload.identity.DNSExpectedPayload.anyOf[0][].hoststring Yes
$.oneOf[0].allOf[1].Payload.identity.DNSExpectedPayload.anyOf[0][].valuestring Yes
$.oneOf[0].allOf[1].Payload.identity.DNSExpectedPayload.anyOf[0][].requiredboolean Yes
$.oneOf[0].allOf[1].Payload.identity.DNSExpectedPayload.anyOf[0][].statusstring ["pending","verified","missing","advisory"] Yes
$.oneOf[0].allOf[1].Payload.identity.DNSExpectedPayload.anyOf[0][].observedValuestring No
$.oneOf[0].allOf[1].Payload.identity.DNSExpectedPayload.anyOf[1] = "" Yes
$.oneOf[0].allOf[1].Payload.identity.DNSExpectedPayload.anyOf[2] = null Yes
$.oneOf[0].allOf[1].Payload.identity.DNSLastCheckPayload Yes
$.oneOf[0].allOf[1].Payload.identity.DNSLastCheckPayload.anyOf[0]array Yes
$.oneOf[0].allOf[1].Payload.identity.DNSLastCheckPayload.anyOf[0][]object No
$.oneOf[0].allOf[1].Payload.identity.DNSLastCheckPayload.anyOf[0][].keystring ["ownership","dkim","dmarc","return_path","mta_sts","tls_reporting"] Yes
$.oneOf[0].allOf[1].Payload.identity.DNSLastCheckPayload.anyOf[0][].labelstring Yes
$.oneOf[0].allOf[1].Payload.identity.DNSLastCheckPayload.anyOf[0][].typestring ["TXT","MX"] Yes
$.oneOf[0].allOf[1].Payload.identity.DNSLastCheckPayload.anyOf[0][].hoststring Yes
$.oneOf[0].allOf[1].Payload.identity.DNSLastCheckPayload.anyOf[0][].valuestring Yes
$.oneOf[0].allOf[1].Payload.identity.DNSLastCheckPayload.anyOf[0][].requiredboolean Yes
$.oneOf[0].allOf[1].Payload.identity.DNSLastCheckPayload.anyOf[0][].statusstring ["pending","verified","missing","advisory"] Yes
$.oneOf[0].allOf[1].Payload.identity.DNSLastCheckPayload.anyOf[0][].observedValuestring No
$.oneOf[0].allOf[1].Payload.identity.DNSLastCheckPayload.anyOf[1] = "" Yes
$.oneOf[0].allOf[1].Payload.identity.DNSLastCheckPayload.anyOf[2] = null Yes
$.oneOf[0].allOf[1].Payload.identity.DNSLastCheckTime Yes
$.oneOf[0].allOf[1].Payload.identity.DNSLastCheckTime.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.identity.DNSLastCheckTime.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.identity.LastVerifiedTime Yes
$.oneOf[0].allOf[1].Payload.identity.LastVerifiedTime.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.identity.LastVerifiedTime.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.identity.LastVerifiedBy-ATUser_ID Yes
$.oneOf[0].allOf[1].Payload.identity.LastVerifiedBy-ATUser_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.identity.LastVerifiedBy-ATUser_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.identity.LastVerifiedBy-ATUser_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.identity.LastVerifiedBy-ATUser_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.identity.ATUser_Alias Yes
$.oneOf[0].allOf[1].Payload.identity.ATUser_Alias.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.identity.ATUser_Alias.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.dnsRecordsarray Yes
$.oneOf[0].allOf[1].Payload.dnsRecords[]object No
$.oneOf[0].allOf[1].Payload.dnsRecords[].keystring ["ownership","dkim","dmarc","return_path","mta_sts","tls_reporting"] Yes
$.oneOf[0].allOf[1].Payload.dnsRecords[].labelstring Yes
$.oneOf[0].allOf[1].Payload.dnsRecords[].typestring ["TXT","MX"] Yes
$.oneOf[0].allOf[1].Payload.dnsRecords[].hoststring Yes
$.oneOf[0].allOf[1].Payload.dnsRecords[].valuestring Yes
$.oneOf[0].allOf[1].Payload.dnsRecords[].requiredboolean Yes
$.oneOf[0].allOf[1].Payload.dnsRecords[].statusstring ["pending","verified","missing","advisory"] Yes
$.oneOf[0].allOf[1].Payload.dnsRecords[].observedValuestring No
$.oneOf[0].allOf[1].Payload.lastCheck Yes
$.oneOf[0].allOf[1].Payload.lastCheck.anyOf[0]array Yes
$.oneOf[0].allOf[1].Payload.lastCheck.anyOf[0][]object No
$.oneOf[0].allOf[1].Payload.lastCheck.anyOf[0][].keystring ["ownership","dkim","dmarc","return_path","mta_sts","tls_reporting"] Yes
$.oneOf[0].allOf[1].Payload.lastCheck.anyOf[0][].labelstring Yes
$.oneOf[0].allOf[1].Payload.lastCheck.anyOf[0][].typestring ["TXT","MX"] Yes
$.oneOf[0].allOf[1].Payload.lastCheck.anyOf[0][].hoststring Yes
$.oneOf[0].allOf[1].Payload.lastCheck.anyOf[0][].valuestring Yes
$.oneOf[0].allOf[1].Payload.lastCheck.anyOf[0][].requiredboolean Yes
$.oneOf[0].allOf[1].Payload.lastCheck.anyOf[0][].statusstring ["pending","verified","missing","advisory"] Yes
$.oneOf[0].allOf[1].Payload.lastCheck.anyOf[0][].observedValuestring No
$.oneOf[0].allOf[1].Payload.lastCheck.anyOf[1] = "" Yes
$.oneOf[0].allOf[1].Payload.lastCheck.anyOf[2] = null Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/external_messaging/get_identity_dns_status",
    "RequestUserAlias": "example-user",
    "Payload": {
        "identity": {
            "ID": 0,
            "CreatedDate": "synthetic-example",
            "LastUpdateDate": "synthetic-example",
            "DeletedDate": "synthetic-example",
            "IdentityUUID": "synthetic-example",
            "ATUser_ID": 0,
            "CreatedBy-ATUser_ID": 0,
            "Channel": "email",
            "Stream": "auth",
            "Status": "PendingDNS",
            "Name": "synthetic-example",
            "FromName": "synthetic-example",
            "FromAddress": "synthetic-example",
            "DomainName": "synthetic-example",
            "ReturnPathDomain": "synthetic-example",
            "DKIMSelector": "synthetic-example",
            "DKIMPublicKey": "synthetic-example",
            "DKIMPrivateKeyEnvironmentKey": "synthetic-example",
            "VerificationToken": "synthetic-example",
            "DNSExpectedPayload": [],
            "DNSLastCheckPayload": [],
            "DNSLastCheckTime": "synthetic-example",
            "LastVerifiedTime": "synthetic-example",
            "LastVerifiedBy-ATUser_ID": 0,
            "ATUser_Alias": "synthetic-example"
        },
        "dnsRecords": [],
        "lastCheck": []
    }
}
Machine-readable endpoint documentation
GET

/v1/external_messaging/get_message

#
Returns a queued/sent message by numeric ID or UUID.

Parameters

NameTypeRequiredDefaultDescription
messageID string No "" Message numeric ID or UUID.
Request example (cURL)
curl --get \
  'https://ca.appointmenttrader.com/v1/external_messaging/get_message' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'messageID={{messageID}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$external_messaging_get_message_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.messageobject Yes
$.oneOf[0].allOf[1].Payload.message.IDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.message.ID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.message.ID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.message.CreatedDatestring Yes
$.oneOf[0].allOf[1].Payload.message.LastUpdateDatestring Yes
$.oneOf[0].allOf[1].Payload.message.DeletedDate Yes
$.oneOf[0].allOf[1].Payload.message.DeletedDate.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.message.DeletedDate.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.message.MessageUUIDstring Yes
$.oneOf[0].allOf[1].Payload.message.ATUser_IDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.message.ATUser_ID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.message.ATUser_ID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.message.ImpersonatedBy-ATUser_ID Yes
$.oneOf[0].allOf[1].Payload.message.ImpersonatedBy-ATUser_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.message.ImpersonatedBy-ATUser_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.message.ImpersonatedBy-ATUser_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.message.ImpersonatedBy-ATUser_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.message.Channel = "email" Yes
$.oneOf[0].allOf[1].Payload.message.Streamstring ["auth","transactional","community","bulk","sandbox"] Yes
$.oneOf[0].allOf[1].Payload.message.Modestring ["sandbox","production"] Yes
$.oneOf[0].allOf[1].Payload.message.Statusstring ["Queued","Sending","Sent","Deferred","Suppressed","Failed"] Yes
$.oneOf[0].allOf[1].Payload.message.ATExternalMessagingIdentities_ID Yes
$.oneOf[0].allOf[1].Payload.message.ATExternalMessagingIdentities_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.message.ATExternalMessagingIdentities_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.message.ATExternalMessagingIdentities_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.message.ATExternalMessagingIdentities_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.message.Funding-ATAccounts_ID Yes
$.oneOf[0].allOf[1].Payload.message.Funding-ATAccounts_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.message.Funding-ATAccounts_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.message.Funding-ATAccounts_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.message.Funding-ATAccounts_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.message.Settlement-ATAccountsLedger_ID Yes
$.oneOf[0].allOf[1].Payload.message.Settlement-ATAccountsLedger_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.message.Settlement-ATAccountsLedger_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.message.Settlement-ATAccountsLedger_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.message.Settlement-ATAccountsLedger_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.message.ATAPIAccessLog_ID Yes
$.oneOf[0].allOf[1].Payload.message.ATAPIAccessLog_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.message.ATAPIAccessLog_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.message.ATAPIAccessLog_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.message.ATAPIAccessLog_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.message.Subject Yes
$.oneOf[0].allOf[1].Payload.message.Subject.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.message.Subject.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.message.RecipientsPayload Yes
$.oneOf[0].allOf[1].Payload.message.RecipientsPayload.anyOf[0]object Yes
$.oneOf[0].allOf[1].Payload.message.RecipientsPayload.anyOf[0].toarray Yes
$.oneOf[0].allOf[1].Payload.message.RecipientsPayload.anyOf[0].to[]string No
$.oneOf[0].allOf[1].Payload.message.RecipientsPayload.anyOf[1] = "" Yes
$.oneOf[0].allOf[1].Payload.message.RecipientsPayload.anyOf[2] = null Yes
$.oneOf[0].allOf[1].Payload.message.ContentPayload Yes
$.oneOf[0].allOf[1].Payload.message.ContentPayload.anyOf[0]object Yes
$.oneOf[0].allOf[1].Payload.message.ContentPayload.anyOf[0].htmlBodystring Yes
$.oneOf[0].allOf[1].Payload.message.ContentPayload.anyOf[0].textBodystring Yes
$.oneOf[0].allOf[1].Payload.message.ContentPayload.anyOf[1] = "" Yes
$.oneOf[0].allOf[1].Payload.message.ContentPayload.anyOf[2] = null Yes
$.oneOf[0].allOf[1].Payload.message.HeadersPayload Yes
$.oneOf[0].allOf[1].Payload.message.HeadersPayload.anyOf[0]object Yes
$.oneOf[0].allOf[1].Payload.message.HeadersPayload.anyOf[0].Fromstring Yes
$.oneOf[0].allOf[1].Payload.message.HeadersPayload.anyOf[0].X-AT-External-Messaging-Streamstring ["auth","transactional","community","bulk","sandbox"] Yes
$.oneOf[0].allOf[1].Payload.message.HeadersPayload.anyOf[0].List-Unsubscribestring No
$.oneOf[0].allOf[1].Payload.message.HeadersPayload.anyOf[0].List-Unsubscribe-Post = "List-Unsubscribe=One-Click" No
$.oneOf[0].allOf[1].Payload.message.HeadersPayload.anyOf[1] = "" Yes
$.oneOf[0].allOf[1].Payload.message.HeadersPayload.anyOf[2] = null Yes
$.oneOf[0].allOf[1].Payload.message.PriceAmountDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.message.PriceAmount.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.message.PriceAmount.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.message.PriceUnit Yes
$.oneOf[0].allOf[1].Payload.message.PriceUnit.anyOf[0]string ["USD","Traderpoint"] Yes
$.oneOf[0].allOf[1].Payload.message.PriceUnit.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.message.RecipientCountDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.message.RecipientCount.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.message.RecipientCount.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.message.AttemptCountDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.message.AttemptCount.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.message.AttemptCount.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.message.NextAttemptDate Yes
$.oneOf[0].allOf[1].Payload.message.NextAttemptDate.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.message.NextAttemptDate.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.message.QueuedDate Yes
$.oneOf[0].allOf[1].Payload.message.QueuedDate.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.message.QueuedDate.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.message.SentDate Yes
$.oneOf[0].allOf[1].Payload.message.SentDate.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.message.SentDate.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.message.LastEventDate Yes
$.oneOf[0].allOf[1].Payload.message.LastEventDate.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.message.LastEventDate.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.message.ProviderMessageID Yes
$.oneOf[0].allOf[1].Payload.message.ProviderMessageID.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.message.ProviderMessageID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.message.FailureReason Yes
$.oneOf[0].allOf[1].Payload.message.FailureReason.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.message.FailureReason.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.message.FromAddress Yes
$.oneOf[0].allOf[1].Payload.message.FromAddress.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.message.FromAddress.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.message.DomainName Yes
$.oneOf[0].allOf[1].Payload.message.DomainName.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.message.DomainName.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.message.ATUser_Alias Yes
$.oneOf[0].allOf[1].Payload.message.ATUser_Alias.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.message.ATUser_Alias.anyOf[1]null Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/external_messaging/get_message",
    "RequestUserAlias": "example-user",
    "Payload": {
        "message": {
            "ID": 0,
            "CreatedDate": "synthetic-example",
            "LastUpdateDate": "synthetic-example",
            "DeletedDate": "synthetic-example",
            "MessageUUID": "synthetic-example",
            "ATUser_ID": 0,
            "ImpersonatedBy-ATUser_ID": 0,
            "Channel": "email",
            "Stream": "auth",
            "Mode": "sandbox",
            "Status": "Queued",
            "ATExternalMessagingIdentities_ID": 0,
            "Funding-ATAccounts_ID": 0,
            "Settlement-ATAccountsLedger_ID": 0,
            "ATAPIAccessLog_ID": 0,
            "Subject": "synthetic-example",
            "RecipientsPayload": {
                "to": []
            },
            "ContentPayload": {
                "htmlBody": "synthetic-example",
                "textBody": "synthetic-example"
            },
            "HeadersPayload": {
                "From": "synthetic-example",
                "X-AT-External-Messaging-Stream": "auth"
            },
            "PriceAmount": 0,
            "PriceUnit": "USD",
            "RecipientCount": 0,
            "AttemptCount": 0,
            "NextAttemptDate": "synthetic-example",
            "QueuedDate": "synthetic-example",
            "SentDate": "synthetic-example",
            "LastEventDate": "synthetic-example",
            "ProviderMessageID": "synthetic-example",
            "FailureReason": "synthetic-example",
            "FromAddress": "synthetic-example",
            "DomainName": "synthetic-example",
            "ATUser_Alias": "synthetic-example"
        }
    }
}
Machine-readable endpoint documentation
GET

/v1/external_messaging/get_messages

#
Returns recent messages for the API user.

Parameters

NameTypeRequiredDefaultDescription
channel string No "email" Channel filter.
status string No "" Optional status filter.
limit int No 50 Maximum rows to return.
Request example (cURL)
curl --get \
  'https://ca.appointmenttrader.com/v1/external_messaging/get_messages' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'channel={{channel}}' \
  --data-urlencode 'status={{status}}' \
  --data-urlencode 'limit={{limit}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$external_messaging_get_messages_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.messagesarray Yes
$.oneOf[0].allOf[1].Payload.messages[]object No
$.oneOf[0].allOf[1].Payload.messages[].IDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.messages[].ID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.messages[].ID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.messages[].MessageUUIDstring Yes
$.oneOf[0].allOf[1].Payload.messages[].CreatedDatestring Yes
$.oneOf[0].allOf[1].Payload.messages[].LastUpdateDatestring Yes
$.oneOf[0].allOf[1].Payload.messages[].Channel = "email" Yes
$.oneOf[0].allOf[1].Payload.messages[].Streamstring ["auth","transactional","community","bulk","sandbox"] Yes
$.oneOf[0].allOf[1].Payload.messages[].Modestring ["sandbox","production"] Yes
$.oneOf[0].allOf[1].Payload.messages[].Statusstring ["Queued","Sending","Sent","Deferred","Suppressed","Failed"] Yes
$.oneOf[0].allOf[1].Payload.messages[].Subject Yes
$.oneOf[0].allOf[1].Payload.messages[].Subject.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.messages[].Subject.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.messages[].RecipientCountDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.messages[].RecipientCount.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.messages[].RecipientCount.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.messages[].PriceAmountDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.messages[].PriceAmount.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.messages[].PriceAmount.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.messages[].PriceUnit Yes
$.oneOf[0].allOf[1].Payload.messages[].PriceUnit.anyOf[0]string ["USD","Traderpoint"] Yes
$.oneOf[0].allOf[1].Payload.messages[].PriceUnit.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.messages[].AttemptCountDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.messages[].AttemptCount.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.messages[].AttemptCount.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.messages[].QueuedDate Yes
$.oneOf[0].allOf[1].Payload.messages[].QueuedDate.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.messages[].QueuedDate.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.messages[].SentDate Yes
$.oneOf[0].allOf[1].Payload.messages[].SentDate.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.messages[].SentDate.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.messages[].LastEventDate Yes
$.oneOf[0].allOf[1].Payload.messages[].LastEventDate.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.messages[].LastEventDate.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.messages[].ProviderMessageID Yes
$.oneOf[0].allOf[1].Payload.messages[].ProviderMessageID.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.messages[].ProviderMessageID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.messages[].FailureReason Yes
$.oneOf[0].allOf[1].Payload.messages[].FailureReason.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.messages[].FailureReason.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.messages[].FromAddress Yes
$.oneOf[0].allOf[1].Payload.messages[].FromAddress.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.messages[].FromAddress.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.messages[].DomainName Yes
$.oneOf[0].allOf[1].Payload.messages[].DomainName.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.messages[].DomainName.anyOf[1]null Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/external_messaging/get_messages",
    "RequestUserAlias": "example-user",
    "Payload": {
        "messages": []
    }
}
Machine-readable endpoint documentation
GET

/v1/external_messaging/get_suppressions

#
Returns active suppressions for the API user.

Parameters

NameTypeRequiredDefaultDescription
channel string No "email" Channel filter.
limit int No 50 Maximum rows to return.
Request example (cURL)
curl --get \
  'https://ca.appointmenttrader.com/v1/external_messaging/get_suppressions' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'channel={{channel}}' \
  --data-urlencode 'limit={{limit}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$external_messaging_get_suppressions_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.suppressionsarray Yes
$.oneOf[0].allOf[1].Payload.suppressions[]object No
$.oneOf[0].allOf[1].Payload.suppressions[].IDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.suppressions[].ID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.suppressions[].ID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.suppressions[].CreatedDatestring Yes
$.oneOf[0].allOf[1].Payload.suppressions[].LastUpdateDatestring Yes
$.oneOf[0].allOf[1].Payload.suppressions[].DeletedDate Yes
$.oneOf[0].allOf[1].Payload.suppressions[].DeletedDate.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.suppressions[].DeletedDate.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.suppressions[].ATUser_ID Yes
$.oneOf[0].allOf[1].Payload.suppressions[].ATUser_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.suppressions[].ATUser_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.suppressions[].ATUser_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.suppressions[].ATUser_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.suppressions[].Channelstring Yes
$.oneOf[0].allOf[1].Payload.suppressions[].Scopestring Yes
$.oneOf[0].allOf[1].Payload.suppressions[].ATExternalMessagingIdentities_ID Yes
$.oneOf[0].allOf[1].Payload.suppressions[].ATExternalMessagingIdentities_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.suppressions[].ATExternalMessagingIdentities_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.suppressions[].ATExternalMessagingIdentities_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.suppressions[].ATExternalMessagingIdentities_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.suppressions[].RecipientAddress Yes
$.oneOf[0].allOf[1].Payload.suppressions[].RecipientAddress.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.suppressions[].RecipientAddress.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.suppressions[].RecipientHash Yes
$.oneOf[0].allOf[1].Payload.suppressions[].RecipientHash.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.suppressions[].RecipientHash.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.suppressions[].SuppressionTypestring Yes
$.oneOf[0].allOf[1].Payload.suppressions[].Reason Yes
$.oneOf[0].allOf[1].Payload.suppressions[].Reason.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.suppressions[].Reason.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.suppressions[].ExpiresDate Yes
$.oneOf[0].allOf[1].Payload.suppressions[].ExpiresDate.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.suppressions[].ExpiresDate.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.suppressions[].CreatedBy-ATUser_ID Yes
$.oneOf[0].allOf[1].Payload.suppressions[].CreatedBy-ATUser_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.suppressions[].CreatedBy-ATUser_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.suppressions[].CreatedBy-ATUser_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.suppressions[].CreatedBy-ATUser_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.suppressions[].DeletedBy-ATUser_ID Yes
$.oneOf[0].allOf[1].Payload.suppressions[].DeletedBy-ATUser_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.suppressions[].DeletedBy-ATUser_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.suppressions[].DeletedBy-ATUser_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.suppressions[].DeletedBy-ATUser_ID.anyOf[1]null Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/external_messaging/get_suppressions",
    "RequestUserAlias": "example-user",
    "Payload": {
        "suppressions": []
    }
}
Machine-readable endpoint documentation
POST

/v1/external_messaging/set_billing_account

#
Sets the default AT account used to pay for accepted production messages.

Parameters

NameTypeRequiredDefaultDescription
fundingAccountID int No 0 AT account ID owned by the API user.
channel string No "all" Billing channel. Use all for the default setting.
isWritingRequest bool No false Must be true to update billing settings.
Request example (cURL)
curl --request POST \
  'https://ca.appointmenttrader.com/v1/external_messaging/set_billing_account' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'fundingAccountID={{fundingAccountID}}' \
  --data-urlencode 'channel={{channel}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$external_messaging_set_billing_account_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.Succeeded = true Yes
$.oneOf[0].allOf[1].Payload.BillingSettingsobject Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.IDDatabaseInteger NoInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.BillingSettings.ID.oneOf[0]integer No
$.oneOf[0].allOf[1].Payload.BillingSettings.ID.oneOf[1]string No
$.oneOf[0].allOf[1].Payload.BillingSettings.CreatedDatestring No
$.oneOf[0].allOf[1].Payload.BillingSettings.LastUpdateDatestring No
$.oneOf[0].allOf[1].Payload.BillingSettings.DeletedDate No
$.oneOf[0].allOf[1].Payload.BillingSettings.DeletedDate.anyOf[0]string No
$.oneOf[0].allOf[1].Payload.BillingSettings.DeletedDate.anyOf[1]null No
$.oneOf[0].allOf[1].Payload.BillingSettings.ATUser_IDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.BillingSettings.ATUser_ID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.ATUser_ID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.Channelstring Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFunding-ATAccounts_ID Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFunding-ATAccounts_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFunding-ATAccounts_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFunding-ATAccounts_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFunding-ATAccounts_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.LastSetBy-ATUser_ID No
$.oneOf[0].allOf[1].Payload.BillingSettings.LastSetBy-ATUser_ID.anyOf[0]DatabaseInteger NoInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.BillingSettings.LastSetBy-ATUser_ID.anyOf[0].oneOf[0]integer No
$.oneOf[0].allOf[1].Payload.BillingSettings.LastSetBy-ATUser_ID.anyOf[0].oneOf[1]string No
$.oneOf[0].allOf[1].Payload.BillingSettings.LastSetBy-ATUser_ID.anyOf[1]null No
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0]object Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].Currencystring Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].CurrencySymbolstring Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].CreatedDatestring Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].LastUpdateDatestring Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].Namestring Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].Descriptionstring Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].IDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].ID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].ID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].ATUser_IDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].ATUser_ID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].ATUser_ID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].CurrencyCreditLimitDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].CurrencyCreditLimit.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].CurrencyCreditLimit.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].PayoutDefaultBasisPointsDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].PayoutDefaultBasisPoints.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].PayoutDefaultBasisPoints.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].PointsCreditLimitDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].PointsCreditLimit.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].PointsCreditLimit.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].IsATCorporateAccountDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].IsATCorporateAccount.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].IsATCorporateAccount.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].IsDefaultDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].IsDefault.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].IsDefault.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].IsDepositAccountDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].IsDepositAccount.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].IsDepositAccount.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].CurrencyBalanceDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].CurrencyBalance.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].CurrencyBalance.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].PointsBalanceDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].PointsBalance.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[0].PointsBalance.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.DefaultFundingAccount.anyOf[1] = false Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.PriceSettingsobject Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.PriceSettings.PricePerMessageinteger Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.PriceSettings.PriceUnitstring ["USD","Traderpoint"] Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.PriceSettings.RateLimitPerHourinteger Yes
$.oneOf[0].allOf[1].Payload.BillingSettings.PriceSettings.RecipientLimitPerMessageinteger Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/external_messaging/set_billing_account",
    "RequestUserAlias": "example-user",
    "Payload": {
        "Succeeded": true,
        "BillingSettings": {
            "ATUser_ID": 0,
            "Channel": "synthetic-example",
            "DefaultFunding-ATAccounts_ID": 0,
            "DefaultFundingAccount": {
                "Currency": "synthetic-example",
                "CurrencySymbol": "synthetic-example",
                "CreatedDate": "synthetic-example",
                "LastUpdateDate": "synthetic-example",
                "Name": "synthetic-example",
                "Description": "synthetic-example",
                "ID": 0,
                "ATUser_ID": 0,
                "CurrencyCreditLimit": 0,
                "PayoutDefaultBasisPoints": 0,
                "PointsCreditLimit": 0,
                "IsATCorporateAccount": 0,
                "IsDefault": 0,
                "IsDepositAccount": 0,
                "CurrencyBalance": 0,
                "PointsBalance": 0
            },
            "PriceSettings": {
                "PricePerMessage": 0,
                "PriceUnit": "USD",
                "RateLimitPerHour": 0,
                "RecipientLimitPerMessage": 0
            }
        }
    }
}
Machine-readable endpoint documentation
POST

/v1/external_messaging/set_identity

#
Creates an email sender identity and returns the DNS records needed for verification.

Parameters

NameTypeRequiredDefaultDescription
channel string No "email" Channel to create. Phase one supports email.
fromAddress string No "" Sender email address.
fromName string No "" Human readable sender name.
name string No "" Internal identity label.
stream string No "transactional" Email stream: auth, transactional, community, or bulk.
isWritingRequest bool No false Must be true to create the identity.
Request example (cURL)
curl --request POST \
  'https://ca.appointmenttrader.com/v1/external_messaging/set_identity' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'channel={{channel}}' \
  --data-urlencode 'fromAddress={{fromAddress}}' \
  --data-urlencode 'fromName={{fromName}}' \
  --data-urlencode 'name={{name}}' \
  --data-urlencode 'stream={{stream}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$external_messaging_set_identity_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.Succeeded = true Yes
$.oneOf[0].allOf[1].Payload.Identity Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0]object Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].IDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].ID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].ID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].CreatedDatestring Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].LastUpdateDatestring Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DeletedDate Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DeletedDate.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DeletedDate.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].IdentityUUIDstring Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].ATUser_IDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].ATUser_ID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].ATUser_ID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].CreatedBy-ATUser_ID Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].CreatedBy-ATUser_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].CreatedBy-ATUser_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].CreatedBy-ATUser_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].CreatedBy-ATUser_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].Channel = "email" Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].Streamstring ["auth","transactional","community","bulk","sandbox"] Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].Statusstring ["PendingDNS","Verified","Suspended"] Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].Namestring Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].FromName Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].FromName.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].FromName.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].FromAddress Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].FromAddress.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].FromAddress.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DomainName Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DomainName.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DomainName.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].ReturnPathDomain Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].ReturnPathDomain.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].ReturnPathDomain.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DKIMSelector Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DKIMSelector.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DKIMSelector.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DKIMPublicKey Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DKIMPublicKey.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DKIMPublicKey.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DKIMPrivateKeyEnvironmentKey Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DKIMPrivateKeyEnvironmentKey.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DKIMPrivateKeyEnvironmentKey.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].VerificationToken Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].VerificationToken.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].VerificationToken.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSExpectedPayload Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSExpectedPayload.anyOf[0]array Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSExpectedPayload.anyOf[0][]object No
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSExpectedPayload.anyOf[0][].keystring ["ownership","dkim","dmarc","return_path","mta_sts","tls_reporting"] Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSExpectedPayload.anyOf[0][].labelstring Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSExpectedPayload.anyOf[0][].typestring ["TXT","MX"] Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSExpectedPayload.anyOf[0][].hoststring Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSExpectedPayload.anyOf[0][].valuestring Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSExpectedPayload.anyOf[0][].requiredboolean Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSExpectedPayload.anyOf[0][].statusstring ["pending","verified","missing","advisory"] Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSExpectedPayload.anyOf[0][].observedValuestring No
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSExpectedPayload.anyOf[1] = "" Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSExpectedPayload.anyOf[2] = null Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSLastCheckPayload Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSLastCheckPayload.anyOf[0]array Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSLastCheckPayload.anyOf[0][]object No
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSLastCheckPayload.anyOf[0][].keystring ["ownership","dkim","dmarc","return_path","mta_sts","tls_reporting"] Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSLastCheckPayload.anyOf[0][].labelstring Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSLastCheckPayload.anyOf[0][].typestring ["TXT","MX"] Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSLastCheckPayload.anyOf[0][].hoststring Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSLastCheckPayload.anyOf[0][].valuestring Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSLastCheckPayload.anyOf[0][].requiredboolean Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSLastCheckPayload.anyOf[0][].statusstring ["pending","verified","missing","advisory"] Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSLastCheckPayload.anyOf[0][].observedValuestring No
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSLastCheckPayload.anyOf[1] = "" Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSLastCheckPayload.anyOf[2] = null Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSLastCheckTime Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSLastCheckTime.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].DNSLastCheckTime.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].LastVerifiedTime Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].LastVerifiedTime.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].LastVerifiedTime.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].LastVerifiedBy-ATUser_ID Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].LastVerifiedBy-ATUser_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].LastVerifiedBy-ATUser_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].LastVerifiedBy-ATUser_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].LastVerifiedBy-ATUser_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].ATUser_Alias Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].ATUser_Alias.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[0].ATUser_Alias.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Identity.anyOf[1] = false Yes
$.oneOf[0].allOf[1].Payload.DNSRecordsarray Yes
$.oneOf[0].allOf[1].Payload.DNSRecords[]object No
$.oneOf[0].allOf[1].Payload.DNSRecords[].keystring ["ownership","dkim","dmarc","return_path","mta_sts","tls_reporting"] Yes
$.oneOf[0].allOf[1].Payload.DNSRecords[].labelstring Yes
$.oneOf[0].allOf[1].Payload.DNSRecords[].typestring ["TXT","MX"] Yes
$.oneOf[0].allOf[1].Payload.DNSRecords[].hoststring Yes
$.oneOf[0].allOf[1].Payload.DNSRecords[].valuestring Yes
$.oneOf[0].allOf[1].Payload.DNSRecords[].requiredboolean Yes
$.oneOf[0].allOf[1].Payload.DNSRecords[].statusstring ["pending","verified","missing","advisory"] Yes
$.oneOf[0].allOf[1].Payload.DNSRecords[].observedValuestring No
$.oneOf[0].allOf[1].Payload.DKIMPrivateKeyEnvironmentKeystring Yes
$.oneOf[0].allOf[1].Payload.DKIMPrivateKeyOneTimestring Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/external_messaging/set_identity",
    "RequestUserAlias": "example-user",
    "Payload": {
        "Succeeded": true,
        "Identity": {
            "ID": 0,
            "CreatedDate": "synthetic-example",
            "LastUpdateDate": "synthetic-example",
            "DeletedDate": "synthetic-example",
            "IdentityUUID": "synthetic-example",
            "ATUser_ID": 0,
            "CreatedBy-ATUser_ID": 0,
            "Channel": "email",
            "Stream": "auth",
            "Status": "PendingDNS",
            "Name": "synthetic-example",
            "FromName": "synthetic-example",
            "FromAddress": "synthetic-example",
            "DomainName": "synthetic-example",
            "ReturnPathDomain": "synthetic-example",
            "DKIMSelector": "synthetic-example",
            "DKIMPublicKey": "synthetic-example",
            "DKIMPrivateKeyEnvironmentKey": "synthetic-example",
            "VerificationToken": "synthetic-example",
            "DNSExpectedPayload": [],
            "DNSLastCheckPayload": [],
            "DNSLastCheckTime": "synthetic-example",
            "LastVerifiedTime": "synthetic-example",
            "LastVerifiedBy-ATUser_ID": 0,
            "ATUser_Alias": "synthetic-example"
        },
        "DNSRecords": [],
        "DKIMPrivateKeyEnvironmentKey": "FAKE_DKIM_ENVIRONMENT_KEY",
        "DKIMPrivateKeyOneTime": "FAKE_PRIVATE_KEY_PLACEHOLDER"
    }
}
Machine-readable endpoint documentation
POST

/v1/external_messaging/set_identity_verify_dns

#
Checks DNS records for an email sender identity and marks it verified when required records are present.

Parameters

NameTypeRequiredDefaultDescription
identityID int No 0 Sender identity ID.
isWritingRequest bool No false Must be true to record the DNS check.
Request example (cURL)
curl --request POST \
  'https://ca.appointmenttrader.com/v1/external_messaging/set_identity_verify_dns' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'identityID={{identityID}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$external_messaging_set_identity_verify_dns_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.Succeeded = true Yes
$.oneOf[0].allOf[1].Payload.Statusstring ["PendingDNS","Verified"] Yes
$.oneOf[0].allOf[1].Payload.DNSRecordsarray Yes
$.oneOf[0].allOf[1].Payload.DNSRecords[]object No
$.oneOf[0].allOf[1].Payload.DNSRecords[].keystring ["ownership","dkim","dmarc","return_path","mta_sts","tls_reporting"] Yes
$.oneOf[0].allOf[1].Payload.DNSRecords[].labelstring Yes
$.oneOf[0].allOf[1].Payload.DNSRecords[].typestring ["TXT","MX"] Yes
$.oneOf[0].allOf[1].Payload.DNSRecords[].hoststring Yes
$.oneOf[0].allOf[1].Payload.DNSRecords[].valuestring Yes
$.oneOf[0].allOf[1].Payload.DNSRecords[].requiredboolean Yes
$.oneOf[0].allOf[1].Payload.DNSRecords[].statusstring ["pending","verified","missing","advisory"] Yes
$.oneOf[0].allOf[1].Payload.DNSRecords[].observedValuestring No
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/external_messaging/set_identity_verify_dns",
    "RequestUserAlias": "example-user",
    "Payload": {
        "Succeeded": true,
        "Status": "PendingDNS",
        "DNSRecords": []
    }
}
Machine-readable endpoint documentation
POST

/v1/external_messaging/set_send

#
Queues an external message. Phase one supports email only. Production email requires a verified sender identity and is charged after the first-party MTA records smtp_accepted. Sandbox messages are free and do not submit to the MTA.

Parameters

NameTypeRequiredDefaultDescription
channel string No "email" Channel. Phase one supports email.
identityID int No 0 Sender identity ID.
to string No "" Comma-separated recipient email addresses.
subject string No "" Message subject.
htmlBody string No "" HTML body.
textBody string No "" Plain text body.
stream string No "transactional" Email stream: auth, transactional, community, bulk, or sandbox.
mode string No "sandbox" sandbox or production.
fundingAccountID int No 0 Optional per-message AT funding account override.
isWritingRequest bool No false Must be true to queue the message.
Request example (cURL)
curl --request POST \
  'https://ca.appointmenttrader.com/v1/external_messaging/set_send' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'channel={{channel}}' \
  --data-urlencode 'identityID={{identityID}}' \
  --data-urlencode 'to={{to}}' \
  --data-urlencode 'subject={{subject}}' \
  --data-urlencode 'htmlBody={{htmlBody}}' \
  --data-urlencode 'textBody={{textBody}}' \
  --data-urlencode 'stream={{stream}}' \
  --data-urlencode 'mode={{mode}}' \
  --data-urlencode 'fundingAccountID={{fundingAccountID}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$external_messaging_set_send_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.Succeeded = true Yes
$.oneOf[0].allOf[1].Payload.Message Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0]object Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].IDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].CreatedDatestring Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].LastUpdateDatestring Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].DeletedDate Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].DeletedDate.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].DeletedDate.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].MessageUUIDstring Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ATUser_IDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ATUser_ID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ATUser_ID.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ImpersonatedBy-ATUser_ID Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ImpersonatedBy-ATUser_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ImpersonatedBy-ATUser_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ImpersonatedBy-ATUser_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ImpersonatedBy-ATUser_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].Channel = "email" Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].Streamstring ["auth","transactional","community","bulk","sandbox"] Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].Modestring ["sandbox","production"] Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].Statusstring ["Queued","Sending","Sent","Deferred","Suppressed","Failed"] Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ATExternalMessagingIdentities_ID Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ATExternalMessagingIdentities_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ATExternalMessagingIdentities_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ATExternalMessagingIdentities_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ATExternalMessagingIdentities_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].Funding-ATAccounts_ID Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].Funding-ATAccounts_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].Funding-ATAccounts_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].Funding-ATAccounts_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].Funding-ATAccounts_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].Settlement-ATAccountsLedger_ID Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].Settlement-ATAccountsLedger_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].Settlement-ATAccountsLedger_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].Settlement-ATAccountsLedger_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].Settlement-ATAccountsLedger_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ATAPIAccessLog_ID Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ATAPIAccessLog_ID.anyOf[0]DatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ATAPIAccessLog_ID.anyOf[0].oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ATAPIAccessLog_ID.anyOf[0].oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ATAPIAccessLog_ID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].Subject Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].Subject.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].Subject.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].RecipientsPayload Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].RecipientsPayload.anyOf[0]object Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].RecipientsPayload.anyOf[0].toarray Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].RecipientsPayload.anyOf[0].to[]string No
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].RecipientsPayload.anyOf[1] = "" Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].RecipientsPayload.anyOf[2] = null Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ContentPayload Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ContentPayload.anyOf[0]object Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ContentPayload.anyOf[0].htmlBodystring Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ContentPayload.anyOf[0].textBodystring Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ContentPayload.anyOf[1] = "" Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ContentPayload.anyOf[2] = null Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].HeadersPayload Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].HeadersPayload.anyOf[0]object Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].HeadersPayload.anyOf[0].Fromstring Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].HeadersPayload.anyOf[0].X-AT-External-Messaging-Streamstring ["auth","transactional","community","bulk","sandbox"] Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].HeadersPayload.anyOf[0].List-Unsubscribestring No
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].HeadersPayload.anyOf[0].List-Unsubscribe-Post = "List-Unsubscribe=One-Click" No
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].HeadersPayload.anyOf[1] = "" Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].HeadersPayload.anyOf[2] = null Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].PriceAmountDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].PriceAmount.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].PriceAmount.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].PriceUnit Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].PriceUnit.anyOf[0]string ["USD","Traderpoint"] Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].PriceUnit.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].RecipientCountDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].RecipientCount.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].RecipientCount.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].AttemptCountDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].AttemptCount.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].AttemptCount.oneOf[1]string Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].NextAttemptDate Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].NextAttemptDate.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].NextAttemptDate.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].QueuedDate Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].QueuedDate.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].QueuedDate.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].SentDate Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].SentDate.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].SentDate.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].LastEventDate Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].LastEventDate.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].LastEventDate.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ProviderMessageID Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ProviderMessageID.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ProviderMessageID.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].FailureReason Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].FailureReason.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].FailureReason.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].FromAddress Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].FromAddress.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].FromAddress.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].DomainName Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].DomainName.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].DomainName.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ATUser_Alias Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ATUser_Alias.anyOf[0]string Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[0].ATUser_Alias.anyOf[1]null Yes
$.oneOf[0].allOf[1].Payload.Message.anyOf[1] = false Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/external_messaging/set_send",
    "RequestUserAlias": "example-user",
    "Payload": {
        "Succeeded": true,
        "Message": {
            "ID": 0,
            "CreatedDate": "synthetic-example",
            "LastUpdateDate": "synthetic-example",
            "DeletedDate": "synthetic-example",
            "MessageUUID": "synthetic-example",
            "ATUser_ID": 0,
            "ImpersonatedBy-ATUser_ID": 0,
            "Channel": "email",
            "Stream": "auth",
            "Mode": "sandbox",
            "Status": "Queued",
            "ATExternalMessagingIdentities_ID": 0,
            "Funding-ATAccounts_ID": 0,
            "Settlement-ATAccountsLedger_ID": 0,
            "ATAPIAccessLog_ID": 0,
            "Subject": "synthetic-example",
            "RecipientsPayload": {
                "to": []
            },
            "ContentPayload": {
                "htmlBody": "synthetic-example",
                "textBody": "synthetic-example"
            },
            "HeadersPayload": {
                "From": "synthetic-example",
                "X-AT-External-Messaging-Stream": "auth"
            },
            "PriceAmount": 0,
            "PriceUnit": "USD",
            "RecipientCount": 0,
            "AttemptCount": 0,
            "NextAttemptDate": "synthetic-example",
            "QueuedDate": "synthetic-example",
            "SentDate": "synthetic-example",
            "LastEventDate": "synthetic-example",
            "ProviderMessageID": "synthetic-example",
            "FailureReason": "synthetic-example",
            "FromAddress": "synthetic-example",
            "DomainName": "synthetic-example",
            "ATUser_Alias": "synthetic-example"
        }
    }
}
Machine-readable endpoint documentation
POST

/v1/external_messaging/set_suppression

#
Adds a user-level suppression for a recipient.

Parameters

NameTypeRequiredDefaultDescription
channel string No "email" Channel. Phase one supports email.
recipient string No "" Recipient email address.
type string No "manual" Suppression type.
reason string No "" Operator or application reason.
isWritingRequest bool No false Must be true to create the suppression.
Request example (cURL)
curl --request POST \
  'https://ca.appointmenttrader.com/v1/external_messaging/set_suppression' \
  --data-urlencode 'key={{API_KEY}}' \
  --data-urlencode 'channel={{channel}}' \
  --data-urlencode 'recipient={{recipient}}' \
  --data-urlencode 'type={{type}}' \
  --data-urlencode 'reason={{reason}}' \
  --data-urlencode 'isWritingRequest={{isWritingRequest}}'

Returns

JSON
See the shared response schema and synthetic example.
Response fields
FieldTypeRequiredDescription
$external_messaging_set_suppression_Response Yes
$.oneOf[0] Yes
$.oneOf[0].allOf[0]object Yes
$.oneOf[0].allOf[0].RequestUserAliasstring Yes
$.oneOf[0].allOf[0].RequestPathstring | null Yes
$.oneOf[0].allOf[0].RequestStatus = "Succeeded" Yes
$.oneOf[0].allOf[0].ResponseCodeinteger Yes
$.oneOf[0].allOf[0].ResponseMessageAPIResponseMessage Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1]array Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2]object Yes
$.oneOf[0].allOf[0].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[0].allOf[0].RequestImpersonatedByUserAliasstring No
$.oneOf[0].allOf[1]object Yes
$.oneOf[0].allOf[1].Payloadobject Yes
$.oneOf[0].allOf[1].Payload.Succeeded = true Yes
$.oneOf[0].allOf[1].Payload.SuppressionIDDatabaseInteger YesInteger value; legacy MySQL reads may serialize it as a numeric string.
$.oneOf[0].allOf[1].Payload.SuppressionID.oneOf[0]integer Yes
$.oneOf[0].allOf[1].Payload.SuppressionID.oneOf[1]string Yes
$.oneOf[1]object Yes
$.oneOf[1].RequestUserAliasstring Yes
$.oneOf[1].RequestPathstring | null Yes
$.oneOf[1].RequestStatus = "Failed" Yes
$.oneOf[1].ResponseCodeinteger Yes
$.oneOf[1].ResponseMessageAPIResponseMessage Yes
$.oneOf[1].ResponseMessage.oneOf[0]string | number | boolean | null Yes
$.oneOf[1].ResponseMessage.oneOf[1]array Yes
$.oneOf[1].ResponseMessage.oneOf[1][]APIResponseMessage No
$.oneOf[1].ResponseMessage.oneOf[2]object Yes
$.oneOf[1].ResponseMessage.oneOf[2].*APIResponseMessage No
$.oneOf[1].RequestImpersonatedByUserAliasstring No
Response example
{
    "RequestStatus": "Succeeded",
    "ResponseCode": 100,
    "ResponseMessage": "Synthetic success example.",
    "RequestPath": "/v1/external_messaging/set_suppression",
    "RequestUserAlias": "example-user",
    "Payload": {
        "Succeeded": true,
        "SuppressionID": 0
    }
}
Machine-readable endpoint documentation