WebhooksTestEventNotificationSettingsRequest
{
"type": "object",
"example": {
"url": "mollit non ipsum magna",
"oauth_client_id": "nisi",
"oauth_token_url": "dolor Duis",
"oauth_client_secret": "veniam commodo ex sunt"
},
"properties": {
"url": {
"type": "string",
"description": "The URL where you would like the test notification to be sent."
},
"oauth_client_id": {
"type": "string",
"description": "The client ID Twilio SendGrid sends to your OAuth server or service provider to generate an OAuth access token. When passing data in this field, you must also include the oauth_client_secret and oauth_token_url fields."
},
"oauth_token_url": {
"type": "string",
"description": "The URL where Twilio SendGrid sends the Client ID and Client Secret to generate an access token. This should be your OAuth server or service provider. When passing data in this field, you must also include the oauth_client_id and oauth_client_secret fields."
},
"oauth_client_secret": {
"type": "string",
"description": "This secret is needed only once to create an access token. SendGrid will store this secret, allowing you to update your Client ID and Token URL without passing the secret to SendGrid again. When passing data in this field, you must also include the oauth_client_id and oauth_token_url fields."
}
}
}
_metadata
{
"type": "object",
"title": "_metadata",
"properties": {
"next": {
"type": "string",
"format": "uri"
},
"prev": {
"type": "string",
"format": "uri"
},
"self": {
"type": "string",
"format": "uri"
},
"count": {
"type": "integer",
"minimum": 0
}
}
}
abbv-message
{
"type": "object",
"title": "Abbv. Message",
"example": {
"msg_id": "abc123",
"status": "processed",
"subject": "anim Duis sint veniam",
"to_email": "test@test.com",
"from_email": "from@test.com",
"opens_count": 1,
"clicks_count": 2,
"last_event_time": "2017-10-13T18:56:21.000Z"
},
"required": [
"from_email",
"msg_id",
"subject",
"to_email",
"status",
"opens_count",
"clicks_count",
"last_event_time"
],
"properties": {
"msg_id": {
"type": "string"
},
"status": {
"enum": [
"processed",
"delivered",
"not_delivered"
],
"type": "string"
},
"subject": {
"type": "string"
},
"to_email": {
"type": "string"
},
"from_email": {
"type": "string"
},
"opens_count": {
"type": "integer"
},
"clicks_count": {
"type": "integer"
},
"last_event_time": {
"type": "string",
"description": "iso 8601 format"
}
}
}
abtest_summary
{
"type": "object",
"title": "abTest_summary",
"nullable": true,
"required": [
"type",
"winner_criteria",
"test_percentage",
"duration",
"winning_template_id",
"winner_selected_at",
"expiration_date"
],
"properties": {
"type": {
"enum": [
"subject",
"content"
],
"type": "string",
"description": "What differs between the A/B tests"
},
"duration": {
"type": "string",
"description": "How long the A/B Testing will last"
},
"expiration_date": {
"type": "string",
"nullable": true,
"description": "Last day to select an A/B Test Winner"
},
"test_percentage": {
"type": "integer",
"description": "What percentage of your recipient will be included in your A/B testing"
},
"winner_criteria": {
"enum": [
"open",
"click",
"manual"
],
"type": "string",
"description": "How the winner will be decided"
},
"winner_selected_at": {
"type": "string",
"nullable": true,
"description": "When the winner was selected"
},
"winning_template_id": {
"type": "string",
"description": "Winner of the A/B Test"
}
}
}
advanced_stats_clicks
{
"type": "object",
"title": "Stats: Advanced Stats with Clicks",
"properties": {
"clicks": {
"type": "integer",
"description": "The number of links that were clicked in your emails."
},
"unique_clicks": {
"type": "integer",
"description": "The number of unique recipients who clicked links in your emails."
}
},
"description": "The individual events and their stats."
}
advanced_stats_clicks_opens
{
"allOf": [
{
"$ref": "#/components/schemas/advanced_stats_clicks"
},
{
"$ref": "#/components/schemas/advanced_stats_opens"
}
],
"title": "Stats: Advanced Stats with Clicks and Opens",
"description": "The individual events and their stats."
}
advanced_stats_mailbox_provider
{
"allOf": [
{
"$ref": "#/components/schemas/advanced_stats_clicks_opens"
},
{
"type": "object",
"properties": {
"drops": {
"type": "integer",
"description": "The number of emails that were not delivered due to the recipient email address being on a suppression list."
},
"blocks": {
"type": "integer",
"description": "The number of emails that were not allowed to be delivered by ISPs."
},
"bounces": {
"type": "integer",
"description": "The number of emails that bounced instead of being delivered."
},
"deferred": {
"type": "integer",
"description": "The number of emails that temporarily could not be delivered."
},
"requests": {
"type": "integer",
"description": "The number of emails that were requested to be delivered."
},
"delivered": {
"type": "integer",
"description": "The number of emails SendGrid was able to confirm were actually delivered to a recipient."
},
"processed": {
"type": "integer",
"description": "Requests from your website, application, or mail client via SMTP Relay or the Web API that SendGrid processed."
},
"spam_reports": {
"type": "integer",
"description": "The number of recipients who marked your email as spam."
}
},
"description": "The individual events and their stats."
}
],
"title": "Stats: Advanced Stats for Mailbox Provider",
"description": "The individual events and their stats."
}
advanced_stats_opens
{
"type": "object",
"title": "Stats: Advanced Stats with Opens",
"properties": {
"opens": {
"type": "integer",
"description": "The total number of times your emails were opened by recipients."
},
"unique_opens": {
"type": "integer",
"description": "The number of unique recipients who opened your emails."
}
},
"description": "The individual events and their stats."
}
all_segments_response
{
"type": "object",
"title": "all_segments_response",
"required": [
"id",
"name",
"contacts_count",
"created_at",
"updated_at",
"sample_updated_at",
"next_sample_update",
"parent_list_ids",
"query_version",
"status"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"maxLength": 36,
"minLength": 36,
"description": "ID assigned to the segment when created."
},
"name": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Name of the segment."
},
"status": {
"$ref": "#/components/schemas/segment_status_response"
},
"_metadata": {
"$ref": "#/components/schemas/_metadata"
},
"created_at": {
"type": "string",
"description": "ISO8601 timestamp of when the object was created"
},
"updated_at": {
"type": "string",
"description": "ISO8601 timestamp of when the object was last updated"
},
"query_version": {
"type": "string",
"description": "If not set, segment contains a query for use with Segment v1 APIs. If set to '2', segment contains a SQL query for use in v2."
},
"contacts_count": {
"type": "integer",
"description": "Total number of contacts present in the segment"
},
"parent_list_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "The array of list ids to filter contacts on when building this segment. It allows only one such list id for now. We will support more in future",
"uniqueItems": true
},
"sample_updated_at": {
"type": "string",
"description": "ISO8601 timestamp of when the samples were last updated"
},
"next_sample_update": {
"type": "string",
"description": "ISO8601 timestamp of when the samples will be next updated"
}
}
}
api-error
{
"type": "object",
"title": "error",
"required": [
"message",
"field",
"error_id"
],
"properties": {
"field": {
"type": "string"
},
"message": {
"type": "string"
},
"error_id": {
"type": "string"
}
}
}
api-errors
{
"type": "object",
"title": "errors",
"properties": {
"errors": {
"type": "array",
"items": {
"$ref": "#/components/schemas/api-error"
}
}
}
}
api_key_name_id
{
"type": "object",
"title": "API Key Name and ID",
"example": {
"name": "Mail Send",
"api_key_id": "qfTQ6KG0QBiwWdJ0-pCLCA"
},
"properties": {
"name": {
"type": "string",
"description": "The name of your API Key."
},
"api_key_id": {
"type": "string",
"description": "The ID of your API Key. "
}
}
}
api_key_name_id_scopes
{
"allOf": [
{
"type": "object",
"properties": {
"scopes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The permissions this API Key has access to."
}
}
},
{
"$ref": "#/components/schemas/api_key_name_id"
}
],
"title": "API Key Name, ID, and Scopes",
"example": {
"name": "Mail Send",
"scopes": [
"mail.send",
"mail.batch.create",
"mail.batch.read",
"mail.batch.update",
"mail.batch.delete",
"user.scheduled_sends.create",
"user.scheduled_sends.read",
"user.scheduled_sends.update",
"user.scheduled_sends.delete",
"sender_verification_eligible",
"sender_verification_legacy",
"2fa_required"
],
"api_key_id": "qfTQ6KG0QBiwWdJ0-pCLCA"
}
}
authentication_domain
{
"type": "object",
"title": "Domain Authentication - Mandatory Subdomain",
"example": {
"id": 45373692,
"dns": {
"dkim1": {
"data": "s1._domainkey.u7.wl.sendgrid.net",
"host": "s1._domainkey.example.com",
"type": "cname",
"valid": true
},
"dkim2": {
"data": "s2._domainkey.u7.wl.sendgrid.net",
"host": "s2._domainkey.example.com",
"type": "cname",
"valid": true
},
"mail_cname": {
"data": "u7.wl.sendgrid.net",
"host": "mail.example.com",
"type": "cname",
"valid": true
}
},
"ips": [
"127.0.0.1"
],
"valid": true,
"domain": "example.com",
"legacy": false,
"default": true,
"user_id": 66036447,
"username": "jdoe",
"subdomain": "sub",
"custom_spf": false,
"automatic_security": true
},
"required": [
"id",
"user_id",
"subdomain",
"domain",
"username",
"ips",
"custom_spf",
"default",
"legacy",
"automatic_security",
"valid",
"dns"
],
"properties": {
"id": {
"type": "number",
"description": "The ID of the authenticated domain."
},
"dns": {
"type": "object",
"required": [
"mail_cname",
"dkim1",
"dkim2"
],
"properties": {
"dkim1": {
"type": "object",
"required": [
"valid",
"type",
"host",
"data"
],
"properties": {
"data": {
"type": "string",
"description": "The DNS record."
},
"host": {
"type": "string",
"description": "The domain that this DNS record was created for."
},
"type": {
"type": "string",
"description": "The type of DNS record."
},
"valid": {
"type": "boolean",
"description": "Indicates if this is a valid DNS record."
}
},
"description": "A DNS record."
},
"dkim2": {
"type": "object",
"required": [
"valid",
"type",
"host",
"data"
],
"properties": {
"data": {
"type": "string",
"description": "The DNS record."
},
"host": {
"type": "string",
"description": "The domain that this DNS record was created for."
},
"type": {
"type": "string",
"description": "The type of DNS record."
},
"valid": {
"type": "boolean",
"description": "Indicates if this is a valid DNS record."
}
},
"description": "A DNS record."
},
"mail_cname": {
"type": "object",
"required": [
"valid",
"type",
"host",
"data"
],
"properties": {
"data": {
"type": "string",
"description": "The CNAME record."
},
"host": {
"type": "string",
"format": "hostname",
"description": "The domain that this CNAME is created for."
},
"type": {
"type": "string",
"description": "The type of DNS record."
},
"valid": {
"type": "boolean",
"description": "Indicates if this is a valid CNAME."
}
},
"description": "The CNAME for your sending domain that points to sendgrid.net."
}
},
"description": "The DNS records used to authenticate the sending domain."
},
"ips": {
"type": "array",
"items": {
"type": "string"
},
"description": "The IPs to be included in the custom SPF record for this authenticated domain."
},
"valid": {
"type": "boolean",
"description": "Indicates if this is a valid authenticated domain."
},
"domain": {
"type": "string",
"description": "The domain to be authenticated."
},
"legacy": {
"type": "boolean",
"description": "Indicates if this authenticated domain was created using the legacy whitelabel tool. If it is a legacy whitelabel, it will still function, but you'll need to create a new authenticated domain if you need to update it."
},
"default": {
"type": "boolean",
"description": "Indicates if this is the default authenticated domain."
},
"user_id": {
"type": "number",
"description": "The ID of the user that this domain is associated with."
},
"username": {
"type": "string",
"description": "The username that this domain will be associated with."
},
"subdomain": {
"type": "string",
"description": "The subdomain to use for this authenticated domain."
},
"custom_spf": {
"type": "boolean",
"description": "Indicates whether this authenticated domain uses custom SPF."
},
"automatic_security": {
"type": "boolean",
"description": "Indicates if this authenticated domain uses automated security."
}
}
}
automations-link-stats-response
{
"type": "object",
"title": "automations-link-stats-response",
"required": [
"results",
"total_clicks",
"_metadata"
],
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"url",
"step_id",
"clicks"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "This is the URL of the link clicked. If `{{custom_fields}}` are part of the URL, they will be included."
},
"clicks": {
"type": "integer",
"minimum": 1,
"description": "The number of clicks on this particular link."
},
"step_id": {
"type": "string",
"format": "uuid",
"description": "This is the ID of the step if the stats were requested to be grouped by `step_id`."
},
"url_location": {
"type": "integer",
"minimum": 0,
"description": "This is the location of the link clicked in each Automation step. Links are located according to their position within the message; the topmost link has index `0`."
}
}
},
"description": ""
},
"_metadata": {
"$ref": "#/components/schemas/link-tracking-metadata"
},
"total_clicks": {
"type": "integer"
}
}
}
automations-response
{
"type": "object",
"title": "automations-response",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"aggregation",
"step_id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "This is the ID of the Automation you are requesting stats for."
},
"stats": {
"$ref": "#/components/schemas/metrics"
},
"step_id": {
"type": "string",
"default": "all",
"description": "This is the ID of the step if the stats were requested to be grouped by `step_id`."
},
"aggregation": {
"type": "string",
"default": "total",
"description": "This describes the time unit to which the stat is rolled up. It is based on the `aggregated_by` parameter included in the request. It can be \"total\" or the date (in YYYY-MM-DD format) the stats are for."
}
}
}
},
"_metadata": {
"$ref": "#/components/schemas/metadata"
}
}
}
blocks-response
{
"type": "array",
"items": {
"type": "object",
"required": [
"created",
"email",
"reason",
"status"
],
"properties": {
"email": {
"type": "string",
"format": "email",
"description": "The email address that was added to the block list."
},
"reason": {
"type": "string",
"description": "An explanation for the reason of the block."
},
"status": {
"type": "string",
"description": "The status of the block."
},
"created": {
"type": "integer",
"description": "A Unix timestamp indicating when the email address was added to the blocks list."
}
}
},
"title": "Blocks Response",
"example": [
{
"email": "example@example.com",
"reason": "error dialing remote address: dial tcp 10.57.152.165:25: no route to host",
"status": "4.0.0",
"created": 1443651154
}
]
}
bounce_response
{
"type": "object",
"title": "Bounce Response",
"example": {
"email": "example@example.com",
"reason": "550 5.1.1 The email account that you tried to reach does not exist. Please try double-checking the recipient's email address for typos or unnecessary spaces. Learn more at https://support.google.com/mail/answer/6596 o186si2389584ioe.63 - gsmtp ",
"status": "5.1.1",
"created": 1250337600
},
"properties": {
"email": {
"type": "string",
"format": "email",
"description": "The email address that was added to the bounce list."
},
"reason": {
"type": "string",
"description": "The reason for the bounce. This typically will be a bounce code, an enhanced code, and a description."
},
"status": {
"type": "string",
"description": "Enhanced SMTP bounce response"
},
"created": {
"type": "number",
"description": "The unix timestamp for when the bounce record was created at SendGrid."
}
}
}
campaign_request
{
"type": "object",
"title": "Campaigns Request",
"example": {
"id": 986724,
"title": "May Newsletter",
"status": "Draft",
"ip_pool": "marketing",
"subject": "New Products for Summer!",
"list_ids": [
110,
124
],
"sender_id": 124451,
"categories": [
"summer line"
],
"segment_ids": [
110
],
"html_content": "<html><head><title></title></head><body><p>Check out our summer line!</p></body></html>",
"plain_content": "Check out our summer line!",
"suppression_group_id": 42,
"custom_unsubscribe_url": ""
},
"required": [
"title"
],
"properties": {
"title": {
"type": "string",
"description": "The display title of your campaign. This will be viewable by you in the Marketing Campaigns UI."
},
"editor": {
"enum": [
"code",
"design"
],
"type": "string",
"description": "The editor used in the UI."
},
"ip_pool": {
"type": "string",
"nullable": true,
"description": "The pool of IPs that you would like to send this email from."
},
"subject": {
"type": "string",
"nullable": true,
"description": "The subject of your campaign that your recipients will see."
},
"list_ids": {
"type": "array",
"items": {
"type": "integer"
},
"nullable": true,
"description": "The IDs of the lists you are sending this campaign to. You can have both segment IDs and list IDs"
},
"sender_id": {
"type": "integer",
"nullable": true,
"description": "The ID of the \"sender\" identity that you have created. Your recipients will see this as the \"from\" on your marketing emails."
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"nullable": true,
"description": "The categories you would like associated to this campaign."
},
"segment_ids": {
"type": "array",
"items": {
"type": "integer"
},
"nullable": true,
"description": "The segment IDs that you are sending this list to. You can have both segment IDs and list IDs. Segments are limited to 10 segment IDs."
},
"html_content": {
"type": "string",
"nullable": true,
"description": "The HTML of your marketing email."
},
"plain_content": {
"type": "string",
"nullable": true,
"description": "The plain text content of your emails."
},
"suppression_group_id": {
"type": "integer",
"nullable": true,
"description": "The suppression group that this marketing email belongs to, allowing recipients to opt-out of emails of this type."
},
"custom_unsubscribe_url": {
"type": "string",
"nullable": true,
"description": "This is the url of the custom unsubscribe page that you provide for customers to unsubscribe from your suppression groups."
}
}
}
campaign_response
{
"allOf": [
{
"$ref": "#/components/schemas/campaign_request"
},
{
"type": "object",
"required": [
"status"
],
"properties": {
"id": {
"type": "integer"
},
"status": {
"type": "string",
"description": "The status of your campaign."
}
}
}
],
"title": "Campaigns Response"
}
category_stats
{
"type": "object",
"title": "Stats: Category Stats",
"example": {
"date": "2015-01-01T00:00:00.000Z",
"stats": [
{
"name": "cat1",
"type": "category",
"metrics": {
"opens": 0,
"blocks": 0,
"clicks": 0,
"bounces": 0,
"deferred": 0,
"requests": 0,
"delivered": 0,
"processed": 0,
"bounce_drops": 0,
"spam_reports": 0,
"unique_opens": 0,
"unsubscribes": 0,
"unique_clicks": 0,
"invalid_emails": 0,
"spam_report_drops": 0,
"unsubscribe_drops": 0
}
},
{
"name": "cat2",
"type": "category",
"metrics": {
"opens": 0,
"blocks": 0,
"clicks": 0,
"bounces": 0,
"deferred": 0,
"requests": 0,
"delivered": 0,
"processed": 0,
"bounce_drops": 0,
"spam_reports": 0,
"unique_opens": 0,
"unsubscribes": 0,
"unique_clicks": 0,
"invalid_emails": 0,
"spam_report_drops": 0,
"unsubscribe_drops": 0
}
}
]
},
"required": [
"date"
],
"properties": {
"date": {
"type": "string",
"description": "The date the statistics were gathered."
},
"stats": {
"type": "array",
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"name": {
"type": "string",
"description": "The name of the category."
},
"type": {
"type": "string",
"description": "How you are segmenting your statistics."
},
"metrics": {
"type": "object",
"required": [
"blocks",
"bounce_drops",
"bounces",
"clicks",
"deferred",
"delivered",
"invalid_emails",
"opens",
"processed",
"requests",
"spam_report_drops",
"spam_reports",
"unique_clicks",
"unique_opens",
"unsubscribe_drops",
"unsubscribes"
],
"properties": {
"opens": {
"type": "integer",
"description": "The total number of times your emails were opened by recipients."
},
"blocks": {
"type": "integer",
"description": "The number of emails that were not allowed to be delivered by ISPs."
},
"clicks": {
"type": "integer",
"description": "The number of links that were clicked."
},
"bounces": {
"type": "integer",
"description": "The number of emails that bounced instead of being delivered."
},
"deferred": {
"type": "integer",
"description": "The number of emails that temporarily could not be delivered."
},
"requests": {
"type": "integer",
"description": "The number of emails that were requested to be delivered."
},
"delivered": {
"type": "integer",
"description": "The number of emails SendGrid was able to confirm were actually delivered to a recipient."
},
"processed": {
"type": "integer",
"description": "Requests from your website, application, or mail client via SMTP Relay or the API that SendGrid processed."
},
"bounce_drops": {
"type": "integer",
"description": "The number of emails that were dropped because of a bounce."
},
"spam_reports": {
"type": "integer",
"description": "The number of recipients who marked your email as spam."
},
"unique_opens": {
"type": "integer",
"description": "The number of unique recipients who opened your emails."
},
"unsubscribes": {
"type": "integer",
"description": "The number of recipients who unsubscribed from your emails."
},
"unique_clicks": {
"type": "integer",
"description": "The number of unique recipients who clicked links in your emails."
},
"invalid_emails": {
"type": "integer",
"description": "The number of recipients who had malformed email addresses or whose mail provider reported the address as invalid."
},
"spam_report_drops": {
"type": "integer",
"description": "The number of emails that were dropped due to a recipient previously marking your emails as spam."
},
"unsubscribe_drops": {
"type": "integer",
"description": "The number of emails dropped due to a recipient unsubscribing from your emails."
}
}
}
}
}
}
}
}
cc_bcc_email_object
{
"type": "object",
"title": "CC BCC Email Object",
"example": {
"name": "Jane Doe",
"email": "jane_doe@example.com"
},
"required": [
"email"
],
"properties": {
"name": {
"type": "string",
"description": "The intended recipient's name."
},
"email": {
"type": "string",
"format": "email",
"description": "The intended recipient's email address."
}
}
}
click-tracking
{
"type": "object",
"title": "Settings: Click Tracking",
"example": {
"enabled": false,
"enable_text": false
},
"required": [
"enable_text",
"enabled"
],
"properties": {
"enabled": {
"type": "boolean",
"description": "Indicates if click tracking is enabled or disabled."
},
"enable_text": {
"type": "boolean",
"description": "Indicates if click tracking is enabled for plain text emails."
}
}
}
contact-details
{
"type": "object",
"title": "contact-details",
"required": [
"id",
"list_ids",
"created_at",
"updated_at"
],
"properties": {
"id": {
"type": "string"
},
"city": {
"type": "string"
},
"email": {
"type": "string"
},
"country": {
"type": "string"
},
"list_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"_metadata": {
"$ref": "#/components/schemas/selfmetadata"
},
"last_name": {
"type": "string"
},
"created_at": {
"type": "string",
"description": "The ISO8601 timestamp when the contact was created."
},
"first_name": {
"type": "string"
},
"updated_at": {
"type": "string",
"description": "The ISO8601 timestamp when the contact was updated."
},
"postal_code": {
"type": "string"
},
"custom_fields": {
"$ref": "#/components/schemas/custom-fields-by-name"
},
"address_line_1": {
"type": "string"
},
"address_line_2": {
"type": "string"
},
"alternate_emails": {
"type": "array",
"items": {
"type": "string"
}
},
"state_province_region": {
"type": "string"
}
}
}
contact-details2
{
"type": "object",
"title": "contact-details2",
"required": [
"id",
"list_ids",
"created_at",
"updated_at"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"maxLength": 36,
"minLength": 36
},
"city": {
"type": "string"
},
"line": {
"type": "string"
},
"email": {
"type": "string",
"format": "email"
},
"country": {
"type": "string"
},
"facebook": {
"type": "string"
},
"list_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"whatsapp": {
"type": "string"
},
"_metadata": {
"$ref": "#/components/schemas/selfmetadata"
},
"last_name": {
"type": "string"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"first_name": {
"type": "string"
},
"updated_at": {
"type": "string",
"format": "date-time"
},
"postal_code": {
"type": "string"
},
"segment_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"unique_name": {
"type": "string"
},
"phone_number": {
"type": "string"
},
"custom_fields": {
"type": "object"
},
"address_line_1": {
"type": "string"
},
"address_line_2": {
"type": "string"
},
"alternate_emails": {
"type": "array",
"items": {
"type": "string",
"format": "email"
},
"nullable": true
},
"state_province_region": {
"type": "string"
}
}
}
contact-details3
{
"type": "object",
"title": "contact-details3",
"required": [
"id",
"list_ids",
"segment_ids",
"created_at",
"updated_at"
],
"properties": {
"id": {
"type": "string"
},
"city": {
"type": "string"
},
"line": {
"type": "string"
},
"email": {
"type": "string"
},
"country": {
"type": "string"
},
"facebook": {
"type": "string"
},
"list_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"whatsapp": {
"type": "string"
},
"_metadata": {
"$ref": "#/components/schemas/selfmetadata"
},
"last_name": {
"type": "string"
},
"created_at": {
"type": "string"
},
"first_name": {
"type": "string"
},
"updated_at": {
"type": "string"
},
"postal_code": {
"type": "string"
},
"segment_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"unique_name": {
"type": "string"
},
"phone_number": {
"type": "string"
},
"custom_fields": {
"type": "object"
},
"address_line_1": {
"type": "string"
},
"address_line_2": {
"type": "string"
},
"alternate_emails": {
"type": "array",
"items": {
"type": "string"
}
},
"state_province_region": {
"type": "string"
}
}
}
contact-export
{
"type": "object",
"title": "contact-export",
"required": [
"id",
"status",
"created_at",
"updated_at",
"expires_at"
],
"properties": {
"id": {
"type": "string"
},
"urls": {
"type": "array",
"items": {
"type": "string"
},
"description": "One or more download URLs for the contact file if the status is `ready`."
},
"status": {
"enum": [
"pending",
"ready",
"failure"
],
"type": "string",
"description": "The export job's status. Allowed values: `pending`, `ready`, or `failure`."
},
"message": {
"type": "string",
"description": "A human readable message if the status is `failure`."
},
"_metadata": {
"$ref": "#/components/schemas/metadata"
},
"created_at": {
"type": "string",
"description": "The ISO8601 timestamp when the export was begun."
},
"expires_at": {
"type": "string",
"description": "The ISO8601 timestamp when the exported file on S3 will expire."
},
"updated_at": {
"type": "string",
"description": "The ISO8601 timestamp when the export was updated."
},
"completed_at": {
"type": "string",
"description": "The ISO8601 timestamp when the export was completed."
},
"contact_count": {
"type": "integer",
"description": "The total number of exported contacts."
}
}
}
contact-import
{
"type": "object",
"title": "contact-import",
"properties": {
"id": {
"type": "string",
"description": "The job ID."
},
"status": {
"type": "string",
"description": "The job state. Allowed values: `pending`, `completed`, `errored`, or `failed`."
},
"results": {
"type": "object",
"properties": {
"errors_url": {
"type": "string",
"description": "The download URL of the file which provides information about any errors."
},
"created_count": {
"type": "number",
"description": "Created contact count from the import."
},
"deleted_count": {
"type": "number",
"description": "Count of deleted contacts that resulted in error."
},
"errored_count": {
"type": "number",
"description": "Count of imported contacts that resulted in error."
},
"updated_count": {
"type": "number",
"description": "Updated contact count from the import."
},
"requested_count": {
"type": "number",
"description": "Requested contact count from the import."
}
},
"description": "Result map of the import job."
},
"job_type": {
"type": "string",
"description": "The job type. Allowed values: `upsert`, or `delete`."
},
"started_at": {
"type": "string",
"description": "The ISO8601 timestamp when the job was created."
},
"finished_at": {
"type": "string",
"description": "The ISO8601 timestamp when the job was finished."
}
}
}
contact-request
{
"type": "object",
"title": "contact-request",
"required": [
"email"
],
"properties": {
"city": {
"type": "string",
"maxLength": 60,
"description": "The contact's city."
},
"email": {
"type": "string",
"maxLength": 254,
"description": "The contact's primary email. This is required to be a valid email."
},
"country": {
"type": "string",
"maxLength": 50,
"description": "The contact's country. Can be a full name or an abbreviation."
},
"last_name": {
"type": "string",
"maxLength": 50,
"description": "The contact's family name."
},
"first_name": {
"type": "string",
"maxLength": 50,
"description": "The contact's personal name."
},
"postal_code": {
"type": "string",
"description": "The contact's ZIP code or other postal code."
},
"custom_fields": {
"$ref": "#/components/schemas/custom-fields-by-id"
},
"address_line_1": {
"type": "string",
"maxLength": 100,
"description": "The first line of the address."
},
"address_line_2": {
"type": "string",
"maxLength": 100,
"description": "An optional second line for the address."
},
"alternate_emails": {
"type": "array",
"items": {
"type": "string",
"maxLength": 254
},
"maxItems": 5,
"minItems": 0,
"description": "Additional emails associated with the contact."
},
"state_province_region": {
"type": "string",
"maxLength": 50,
"description": "The contact's state, province, or region."
}
}
}
contact-summary
{
"type": "object",
"title": "contact-summary",
"required": [
"id",
"list_ids",
"created_at",
"updated_at"
],
"properties": {
"id": {
"type": "string",
"description": "Contact UUID."
},
"email": {
"type": "string",
"description": "Primary email address."
},
"list_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "List UUID linked with this contact."
},
"_metadata": {
"$ref": "#/components/schemas/selfmetadata"
},
"last_name": {
"type": "string"
},
"created_at": {
"type": "number",
"description": "Unix Epoch Timestamp."
},
"first_name": {
"type": "string"
},
"updated_at": {
"type": "number",
"description": "Unix Epoch Timestamp."
}
}
}
contact_response
{
"type": "object",
"title": "contact_response",
"example": {
"id": "47d23ab0-d895-4359-a0d1-ffc7a6fc7e70",
"city": "Redwood City",
"email": "abcd@gmail.com",
"country": "USA",
"last_name": "Cd",
"first_name": "Ab",
"postal_code": 94063,
"custom_fields": {
"custom_field_name1": "custom_field_value1",
"custom_field_name2": "custom_field_value2"
},
"address_line_1": "street address / P.O. box / CompanyName / c/o",
"address_line_2": "apartment, suite, unit, building, floor etc",
"alternate_emails": [
"abcd@yahoo.com",
"abcd@hotmail.com"
],
"state_province_region": "CA"
},
"required": [
"id",
"email",
"alternate_emails",
"first_name",
"last_name",
"address_line_1",
"address_line_2",
"city",
"state_province_region",
"postal_code",
"country",
"custom_fields"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"maxLength": 36,
"description": "ID assigned to a contact when added to the system."
},
"city": {
"type": "string",
"pattern": "^[a-zA-Z\\u0080-\\u024F\\s\\/\\-\\)\\(\\`\\.\\\"\\']+$",
"minLength": 0,
"description": "City associated with the contact. This is a reserved field."
},
"email": {
"type": "string",
"format": "email",
"maxLength": 254,
"minLength": 3,
"description": "Email of the contact. This is a reserved field."
},
"country": {
"type": "string",
"minLength": 0,
"description": "Country associated with the address of the contact. This is a reserved field."
},
"list_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
},
"description": "IDs of all lists the contact is part of",
"uniqueItems": true
},
"last_name": {
"type": "string",
"minLength": 1,
"description": "Last name of the contact. This is a reserved field."
},
"first_name": {
"type": "string",
"minLength": 1,
"description": "First name of the contact. This is a reserved field."
},
"postal_code": {
"type": "integer",
"description": "Zipcode associated with the address of the contact. This is a reserved field."
},
"segment_ids": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
},
"description": "IDs of all segments the contact is part of",
"uniqueItems": true
},
"custom_fields": {
"type": "object",
"properties": {
"": {
"type": "string"
},
"custom_field_name1": {
"type": "string",
"minLength": 0
},
"custom_field_name2": {
"type": "string",
"minLength": 0
}
},
"description": "The user may choose to create up to 120 custom fields or none at all. This is not a reserved field.",
"minProperties": 0
},
"address_line_1": {
"type": "string",
"minLength": 0,
"description": "First line of address of the contact. This is a reserved field."
},
"address_line_2": {
"type": "string",
"minLength": 0,
"description": "Second line of address of the contact. This is a reserved field."
},
"alternate_emails": {
"type": "array",
"items": {
"type": "string",
"format": "email",
"maxLength": 254,
"minLength": 3
},
"minItems": 0,
"description": "Alternate emails of the contact. This is a reserved field.",
"uniqueItems": true
},
"state_province_region": {
"type": "string",
"minLength": 0,
"description": "State associated with the contact. This is a reserved field."
}
}
}
contactdb_custom_field
{
"type": "object",
"title": "ContactDB Custom field schema.",
"example": {
"name": "first_name",
"type": "text"
},
"properties": {
"name": {
"type": "string",
"description": "The name of the field"
},
"type": {
"enum": [
"date",
"text",
"number"
],
"type": "string",
"description": "The type of the field."
}
}
}
contactdb_custom_field_with_id
{
"allOf": [
{
"$ref": "#/components/schemas/contactdb_custom_field"
},
{
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "The ID of the custom field."
}
}
}
],
"title": "ContactDB Custom field schema with ID."
}
contactdb_custom_field_with_id_value
{
"allOf": [
{
"$ref": "#/components/schemas/contactdb_custom_field_with_id"
},
{
"type": "object",
"properties": {
"value": {
"type": "string",
"nullable": true,
"description": "The value of this recipient's custom field"
}
}
}
],
"title": "ContactDB Custom field schema."
}
contactdb_list
{
"type": "object",
"title": "ContactDB lists",
"example": {
"id": 1,
"name": "listname",
"recipient_count": 0
},
"required": [
"id",
"name",
"recipient_count"
],
"properties": {
"id": {
"type": "integer",
"description": "The reference ID of your list."
},
"name": {
"type": "string",
"description": "The name of your list. Must be unique against all other list and segment names."
},
"recipient_count": {
"type": "integer",
"description": "The count of recipients currently in the list."
}
}
}
contactdb_recipient
{
"type": "object",
"title": "ContactDB: Recipient",
"properties": {
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"email"
],
"properties": {
"id": {
"type": "string",
"description": "The ID of this recipient."
},
"email": {
"type": "string",
"format": "email",
"description": "The email address of this recipient. This is a default custom field that SendGrid provides."
},
"last_name": {
"type": "string",
"nullable": true,
"description": "The last name of the recipient."
},
"created_at": {
"type": "number",
"description": "The time this record was created in your contactdb, in unixtime."
},
"first_name": {
"type": "string",
"nullable": true,
"description": "The first name of this recipient. This is a default custom field that SendGrid provides."
},
"updated_at": {
"type": "number",
"description": "The last update date for this recipient's record."
},
"last_opened": {
"type": "number",
"nullable": true,
"description": "The last time this recipient opened an email from you, in unixtime."
},
"last_clicked": {
"type": "number",
"nullable": true,
"description": "The last time this recipient clicked a link from one of your campaigns, in unixtime."
},
"last_emailed": {
"type": "number",
"nullable": true,
"description": "The last time this user was emailed by one of your campaigns, in unixtime."
},
"custom_fields": {
"type": "array",
"items": {
"$ref": "#/components/schemas/contactdb_custom_field_with_id_value"
},
"description": "The custom fields assigned to this recipient and their values."
}
}
}
}
}
}
contactdb_recipient_count
{
"type": "object",
"title": "ContactDB: Recipient Count",
"example": {
"recipient_count": 1234
},
"required": [
"recipient_count"
],
"properties": {
"recipient_count": {
"type": "number",
"description": "The count of recipients."
}
}
}
contactdb_recipient_response
{
"type": "object",
"title": "ContactDB: Recipient response",
"example": {
"errors": [
{
"message": "Invalid email.",
"error_indices": [
2
]
}
],
"new_count": 2,
"error_count": 1,
"error_indices": [
2
],
"updated_count": 0,
"persisted_recipients": [
"YUBh",
"bWlsbGVyQG1pbGxlci50ZXN0"
]
},
"required": [
"error_count",
"new_count",
"persisted_recipients",
"updated_count"
],
"properties": {
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"error_indices": {
"type": "array",
"items": {
"type": "number"
}
}
}
}
},
"new_count": {
"type": "number",
"default": 0,
"description": "The count of new recipients added to the contactdb."
},
"error_count": {
"type": "number",
"default": 0,
"description": "The number of errors found while adding recipients."
},
"error_indices": {
"type": "array",
"items": {
"type": "number"
},
"default": [],
"description": "The indices of the recipient(s) sent that caused the error. "
},
"updated_count": {
"type": "number",
"default": 0,
"description": "The recipients who were updated from this request."
},
"persisted_recipients": {
"type": "array",
"items": {
"type": "string"
},
"default": [],
"description": "The recipient IDs of the recipients that already existed from this request."
}
}
}
contactdb_segments
{
"type": "object",
"title": "Create a Segment request",
"example": {
"name": "Last Name Miller",
"list_id": 4,
"conditions": [
{
"field": "last_name",
"value": "Miller",
"and_or": "",
"operator": "eq"
},
{
"field": "last_clicked",
"value": "01/02/2015",
"and_or": "and",
"operator": "gt"
},
{
"field": "clicks.campaign_identifier",
"value": "513",
"and_or": "or",
"operator": "eq"
}
],
"recipient_count": 1234
},
"required": [
"name",
"conditions"
],
"properties": {
"name": {
"type": "string",
"description": "The name of this segment."
},
"list_id": {
"type": "integer",
"description": "The list id from which to make this segment. Not including this ID will mean your segment is created from the main contactdb rather than a list."
},
"conditions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/contactdb_segments_conditions"
},
"description": "The conditions for a recipient to be included in this segment."
},
"recipient_count": {
"type": "number",
"description": "The count of recipients in this list. This is not included on creation of segments."
}
}
}
contactdb_segments_conditions
{
"type": "object",
"title": "ContactDB: Segments: Conditions",
"required": [
"field",
"value",
"operator"
],
"properties": {
"field": {
"type": "string"
},
"value": {
"type": "string"
},
"and_or": {
"enum": [
"and",
"or",
""
],
"type": "string"
},
"operator": {
"enum": [
"eq",
"ne",
"lt",
"gt",
"contains"
],
"type": "string"
}
}
}
contactdb_segments_with_id
{
"allOf": [
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "number",
"description": "The ID of the segment."
}
}
},
{
"$ref": "#/components/schemas/contactdb_segments"
}
],
"title": "ContactDB:: Segments with ID"
}
contacts
{
"type": "object",
"title": "Contacts",
"properties": {
"zip": {
"type": "string"
},
"city": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"state": {
"type": "string"
},
"address": {
"type": "string"
},
"company": {
"type": "string"
},
"country": {
"type": "string"
},
"address2": {
"type": "object"
},
"last_name": {
"type": "string"
},
"first_name": {
"type": "string"
}
}
}
create-integration-request
{
"type": "object",
"title": "Create Integration Request",
"required": [
"name",
"enabled",
"signin_url",
"signout_url",
"entity_id"
],
"properties": {
"name": {
"type": "string",
"description": "The name of your integration. This name can be anything that makes sense for your organization (eg. Twilio SendGrid)"
},
"enabled": {
"type": "boolean",
"description": "Indicates if the integration is enabled."
},
"entity_id": {
"type": "string",
"description": "An identifier provided by your IdP to identify Twilio SendGrid in the SAML interaction. This is called the \"SAML Issuer ID\" in the Twilio SendGrid UI."
},
"signin_url": {
"type": "string",
"description": "The IdP's SAML POST endpoint. This endpoint should receive requests and initiate an SSO login flow. This is called the \"Embed Link\" in the Twilio SendGrid UI."
},
"signout_url": {
"type": "string",
"description": "This URL is relevant only for an IdP-initiated authentication flow. If a user authenticates from their IdP, this URL will return them to their IdP when logging out."
},
"completed_integration": {
"type": "boolean",
"description": "Indicates if the integration is complete."
}
}
}
credentials
{
"type": "object",
"title": "Credentials",
"example": {
"zip": "55555",
"city": "Denver",
"email": "example@example.com",
"phone": "(555) 555-5555",
"state": "CO",
"address": "1234 example street",
"company": "Company name",
"country": "US",
"address2": null,
"last_name": "User",
"first_name": "Example"
},
"properties": {
"username": {
"type": "string"
},
"permissions": {
"type": "object",
"properties": {
"api": {
"type": "string"
},
"web": {
"type": "string"
},
"mail": {
"type": "string"
}
}
}
}
}
custom-fields-by-id
{
"type": "object",
"title": "custom-fields-by-id",
"example": {
"e2": "Coffee is a beverage that puts one to sleep when not drank.",
"w1": "2002-10-02T15:00:00.000Z",
"w33": 9.5
}
}
custom-fields-by-name
{
"type": "object",
"title": "custom-fields-by-name",
"example": {
"birthday": "2002-10-02T15:00:00.000Z",
"shoe_size": 9.5,
"favoriteQuote": "Coffee is a beverage that puts one to sleep when not drank."
}
}
custom_field_definitions_response
{
"type": "object",
"title": "custom_field_definitions_response",
"example": {
"id": "a1_D",
"name": "custom_field_name",
"field_type": "Date"
},
"required": [
"id",
"name",
"field_type"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"field_type": {
"enum": [
"Text",
"Number",
"Date"
],
"type": "string"
}
}
}
design-common-fields
{
"allOf": [
{
"$ref": "#/components/schemas/design-duplicate-input"
},
{
"type": "object",
"properties": {
"subject": {
"type": "string",
"maxLength": 5000,
"description": "Subject of the Design."
},
"categories": {
"type": "array",
"items": {
"type": "string",
"maxLength": 255
},
"maxItems": 10,
"description": "The list of categories applied to the design",
"uniqueItems": true
},
"generate_plain_content": {
"type": "boolean",
"default": true,
"description": "If true, plain_content is always generated from html_content. If false, plain_content is not altered."
}
}
}
],
"title": "Design Common Fields"
}
design-duplicate-input
{
"type": "object",
"title": "Design Duplicate Design Input",
"example": {
"name": "Ahoy, Cake or Pie Cafe!",
"editor": "design"
},
"properties": {
"name": {
"type": "string",
"default": "Duplicate: <original design name>",
"description": "The name of the new design."
},
"editor": {
"enum": [
"code",
"design"
],
"type": "string",
"description": "The editor used in the UI."
}
}
}
design-input
{
"allOf": [
{
"$ref": "#/components/schemas/design-duplicate-input"
},
{
"$ref": "#/components/schemas/design-common-fields"
},
{
"type": "object",
"required": [
"html_content"
],
"properties": {
"html_content": {
"type": "string",
"maxLength": 1048576,
"description": "The HTML content of the Design."
},
"plain_content": {
"type": "string",
"default": "<generated from html_content if left empty>",
"maxLength": 1048576,
"description": "Plain text content of the Design."
}
}
}
],
"title": "Design Input",
"example": {
"name": "Ahoy, World!",
"editor": "design",
"subject": "Getting Started",
"html_content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html data-editor-version=\"2\" class=\"sg-campaigns\" xmlns=\"http://www.w3.org/1999/xhtml\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1\">\n <!--[if !mso]><!-->\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\">\n <!--<![endif]-->\n <!--[if (gte mso 9)|(IE)]>\n <xml>\n <o:OfficeDocumentSettings>\n <o:AllowPNG/>\n <o:PixelsPerInch>96</o:PixelsPerInch>\n </o:OfficeDocumentSettings>\n </xml>\n <![endif]-->\n <!--[if (gte mso 9)|(IE)]>\n <style type=\"text/css\">\n body {width: 600px;margin: 0 auto;}\n table {border-collapse: collapse;}\n table, td {mso-table-lspace: 0pt;mso-table-rspace: 0pt;}\n img {-ms-interpolation-mode: bicubic;}\n </style>\n<![endif]-->\n <style type=\"text/css\">\n body, p, div {\n font-family: arial,helvetica,sans-serif;\n font-size: 14px;\n }\n body {\n color: #000000;\n }\n body a {\n color: #1188E6;\n text-decoration: none;\n }\n p { margin: 0; padding: 0; }\n table.wrapper {\n width:100% !important;\n table-layout: fixed;\n -webkit-font-smoothing: antialiased;\n -webkit-text-size-adjust: 100%;\n -moz-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n }\n img.max-width {\n max-width: 100% !important;\n }\n .column.of-2 {\n width: 50%;\n }\n .column.of-3 {\n width: 33.333%;\n }\n .column.of-4 {\n width: 25%;\n }\n ul ul ul ul {\n list-style-type: disc !important;\n }\n ol ol {\n list-style-type: lower-roman !important;\n }\n ol ol ol {\n list-style-type: lower-latin !important;\n }\n ol ol ol ol {\n list-style-type: decimal !important;\n }\n @media screen and (max-width:480px) {\n .preheader .rightColumnContent,\n .footer .rightColumnContent {\n text-align: left !important;\n }\n .preheader .rightColumnContent div,\n .preheader .rightColumnContent span,\n .footer .rightColumnContent div,\n .footer .rightColumnContent span {\n text-align: left !important;\n }\n .preheader .rightColumnContent,\n .preheader .leftColumnContent {\n font-size: 80% !important;\n padding: 5px 0;\n }\n table.wrapper-mobile {\n width: 100% !important;\n table-layout: fixed;\n }\n img.max-width {\n height: auto !important;\n max-width: 100% !important;\n }\n a.bulletproof-button {\n display: block !important;\n width: auto !important;\n font-size: 80%;\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .columns {\n width: 100% !important;\n }\n .column {\n display: block !important;\n width: 100% !important;\n padding-left: 0 !important;\n padding-right: 0 !important;\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .social-icon-column {\n display: inline-block !important;\n }\n }\n </style>\n <!--user entered Head Start--><!--End Head user entered-->\n </head>\n <body>\n <center class=\"wrapper\" data-link-color=\"#1188E6\" data-body-style=\"font-size:14px; font-family:arial,helvetica,sans-serif; color:#000000; background-color:#FFFFFF;\">\n <div class=\"webkit\">\n <table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" class=\"wrapper\" bgcolor=\"#FFFFFF\">\n <tr>\n <td valign=\"top\" bgcolor=\"#FFFFFF\" width=\"100%\">\n <table width=\"100%\" role=\"content-container\" class=\"outer\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tr>\n <td width=\"100%\">\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tr>\n <td>\n <!--[if mso]>\n <center>\n <table><tr><td width=\"600\">\n <![endif]-->\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"width:100%; max-width:600px;\" align=\"center\">\n <tr>\n <td role=\"modules-container\" style=\"padding:0px 0px 0px 0px; color:#000000; text-align:left;\" bgcolor=\"#FFFFFF\" width=\"100%\" align=\"left\"><table class=\"module preheader preheader-hide\" role=\"module\" data-type=\"preheader\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" style=\"display: none !important; mso-hide: all; visibility: hidden; opacity: 0; color: transparent; height: 0; width: 0;\">\n <tr>\n <td role=\"module-content\">\n <p></p>\n </td>\n </tr>\n </table><table class=\"module\" role=\"module\" data-type=\"text\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" style=\"table-layout: fixed;\" data-muid=\"41f90842-501c-4f08-96c9-17c0f74cb841\" data-mc-module-version=\"2019-10-22\">\n <tbody>\n <tr>\n <td style=\"padding:18px 0px 18px 0px; line-height:22px; text-align:inherit;\" height=\"100%\" valign=\"top\" bgcolor=\"\" role=\"module-content\"><div><div style=\"font-family: inherit; text-align: inherit\">Ahoy, World!</div><div></div></div></td>\n </tr>\n </tbody>\n </table><div data-role=\"module-unsubscribe\" class=\"module\" role=\"module\" data-type=\"unsubscribe\" style=\"color:#444444; font-size:12px; line-height:20px; padding:16px 16px 16px 16px; text-align:Center;\" data-muid=\"4e838cf3-9892-4a6d-94d6-170e474d21e5\"><div class=\"Unsubscribe--addressLine\"><p class=\"Unsubscribe--senderName\" style=\"font-size:12px; line-height:20px;\">{{Sender_Name}}</p><p style=\"font-size:12px; line-height:20px;\"><span class=\"Unsubscribe--senderAddress\">{{Sender_Address}}</span>, <span class=\"Unsubscribe--senderCity\">{{Sender_City}}</span>, <span class=\"Unsubscribe--senderState\">{{Sender_State}}</span> <span class=\"Unsubscribe--senderZip\">{{Sender_Zip}}</span></p></div><p style=\"font-size:12px; line-height:20px;\"><a class=\"Unsubscribe--unsubscribeLink\" href=\"{{{unsubscribe}}}\" target=\"_blank\" style=\"\">Unsubscribe</a> - <a href=\"{{{unsubscribe_preferences}}}\" target=\"_blank\" class=\"Unsubscribe--unsubscribePreferences\" style=\"\">Unsubscribe Preferences</a></p></div></td>\n </tr>\n </table>\n <!--[if mso]>\n </td>\n </tr>\n </table>\n </center>\n <![endif]-->\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n </div>\n </center>\n </body>\n </html>",
"plain_content": "Ahoy, World!\n\n{{Sender_Name}}\n\n{{Sender_Address}} , {{Sender_City}} , {{Sender_State}} {{Sender_Zip}}\n\nUnsubscribe ( {{{unsubscribe}}} ) - Unsubscribe Preferences ( {{{unsubscribe_preferences}}} )"
}
}