Schemas
Detailed overview of all objects used within SendX REST API
Contact
The Contact is a fundamental resource within SendX. It represents your customers, leads, or any person you wish to communicate with through your marketing campaigns.
Once a contact is added to SendX, you can send personalized marketing campaigns, manage their details, and track their interaction with your marketing activities.
SendX provides several key attributes associated with each contact. Additionally, custom fields allow you to add any extra information that may not be covered by the default fields. You can also categorize contacts using tags, and group them into lists for easier targeting in specific campaigns. Below is a detailed overview of the Contact schema.
Field | Type | Description | Example |
---|---|---|---|
id | string | Unique identifier for the contact. Used to reference a contact in your application. | contact_xxxxxxxx |
firstName | string | First name of the contact. | John |
lastName | string | Last name of the contact. | Doe |
string (email) | Email address of the contact. This field is mandatory. | john.doe@example.com | |
company | string | Company associated with the contact. | Acme Corp |
customFields | object | A key-value object of custom field IDs and their values. | { "field_xabc123": "Developer" } |
unsubscribed | boolean | Indicates if the contact has unsubscribed from emails. | true |
bounced | boolean | Indicates if the contact’s email address bounced. | false |
spam | boolean | Indicates if the contact marked your emails as spam. | false |
created | string (date-time) | ISO 8601 date-time when the contact was created. | 2025-06-23T11:01:24.936122Z |
updated | string (date-time) | ISO 8601 date-time when the contact was last updated. | 2025-06-30T10:40:04.606013Z |
blocked | boolean | Indicates if the contact is blocked from receiving emails. | false |
dropped | boolean | Indicates if emails to this contact were dropped. | false |
ltv | integer | Lifetime value (LTV) of the contact in currency units. | 0 |
contactSource | integer | Indicates how the contact was added. | 3 |
pageSource | string | Source page from which the contact was added. | https://google.com |
lastTrackedIp | string | Last known IP address from which the contact was tracked. | 192.168.0.1 |
lists | [string] | List of list IDs associated with the contact. | [ “list_K9ARTjg9U6ycvFvS8J4uRy” ] |
tags | [string] | List of tag IDs associated with the contact. | [ “tag_K9ARTjg9U6ycvFvS8J4uRy”, “tag_xyz456” ] |
SendX REST API allows users to perform operations on any contact based on it’s identifier. Identifier can be either:
- Contact ID of the contact (eg: contact_xxxxxxx)
- Email of the contact (eg: linus@example.com)
Possible contactSource values
Possible contactSource values
- ContactSourceUnknown
- ContactSourceFileImport
- ContactSourceJSAPI
- ContactSourceRESTAPI
- ContactSourceManualAddition
- ContactSourcePopup
- ContactSourceForm
- ContactSourceLandingPage
- ContactSourceInstaPage
- ContactSourceSamCart
- ContactSourceWooCommerce
- ContactSourceStripe
- ContactSourcePaypal
- ContactSourceIntercom
- ContactSourceShopify
- ContactSourceWebPush
- ContactSourceConvertBox
- ContactSourceClickFunnel
- ContactSourceTeachable
- ContactSourceWoorise
List
A List in SendX is a collection of contacts, similar to organizing a guest list for an event. Depending on how the list is configured, there are two types of opt-in mechanisms:
- Single Opt-in: In this type, contacts are directly added to the list once they provide their email address, just like guests who confirm their attendance without any extra steps.
- Double Opt-in: In this type, contacts are sent a confirmation email and must verify their subscription before being fully added to the list. This is like sending a “Save the Date” invitation, where the guest needs to RSVP before they’re officially included.
These opt-in mechanisms help ensure that your contacts are either instantly subscribed (single opt-in) or confirmed (double opt-in) based on their preference. Lists allow you to group your contacts for targeted and personalized marketing campaigns.
Field | Type | Description | Example |
---|---|---|---|
id | string | Encrypted identifier for the list. | list_xxxxxxxx |
name | string | Name of the list. | Customer List |
type | integer | Type of the list.Possible values:0 = SingleOptIn1 = DoubleOptIn | 0 |
sendThankYouMail | boolean | Indicates if a thank-you email should be sent after subscription. | true |
thankYouFromName | string | Name shown as the sender for the thank-you email. | Support Team |
thankYouFromEmail | string | Email address from which the thank-you email is sent. | support@sendx.io |
thankYouMailSubject | string | Subject line of the thank-you email. | Welcome to our newsletter |
thankYouMailMessage | string | Content of the thank-you email. | Thank you for subscribing! |
thankYouSender | string | Sender ID for the thank-you email, if applicable. | sender_xxxxxxxxx |
confirmFromName | string | Name shown as the sender for the confirmation email. | Support Team |
confirmFromEmail | string | Email address from which the confirmation email is sent. | confirm@sendx.io |
confirmMailSubject | string | Subject line of the confirmation email. | Please confirm your subscription |
confirmMailMessage | string | Content of the confirmation email. | Click here to confirm! |
confirmSuccessPage | string | URL of the success page shown after email confirmation. | https://company.com/success |
created | string (date-time) | Timestamp when the list was created. | 2025-06-26T05:09:39.485517Z |
updated | string (date-time) | Timestamp when the list was last updated. | 2025-06-26T05:09:39.485517Z |
confirmSender | string | Sender ID for the confirmation email, if applicable. | sender_xxxxxxxx |
isQuarantined | boolean | Indicates if the list is quarantined. Contact support@sendx.io if you encounter this. | false |
Tag
A Tag in SendX is a versatile tool that allows you to categorize and organize your contacts based on their behaviors, interests, or other attributes. By adding tags to contacts, you can create powerful filters and segments to target specific audiences in your campaigns.
Tags are essential for tracking and understanding your contacts’ journey through your application or business funnel. For instance, if a contact views a product, you can assign a tag like Product X Viewed. Later, you can filter all contacts with this tag to send them personalized follow-up emails or promotional offers. This ability to categorize contacts ensures that your marketing efforts are precise and relevant.
In the world of email marketing, tags are not just a tool—they are a key utility for creating personalized experiences, improving open rates, and driving higher engagement. By leveraging tags effectively, you can ensure that your contacts receive the right message at the right time.
Field | Type | Description | Example |
---|---|---|---|
id | string | Identifier for the tag. | tag_xxxxxxxx |
name | string | Name of the tag. | VIP Customers |
created | string (Date-Time) | Timestamp when the tag was created. | 2024-10-08T09:30:00Z |
updated | string (Date-Time) | Timestamp when the tag was last updated. | 2024-10-08T12:45:00Z |
Campaigns
Campaign is one of the key resources in SendX as an email marketing platform. A campaign allows you to send targeted email messages to specific segments of your audience, helping to engage subscribers, promote products, or share important updates. Why is a Campaign Resource Important? Email campaigns are the cornerstone of email marketing strategies. They help you:
- Engage Customers: Send relevant content that resonates with the audience.
- Automate Communication: Schedule and automate emails to reach the right people at the right time.
- Track Performance: Measure engagement, opens, clicks, and conversions to optimize future campaigns.
For example you might create a campaign called “Holiday Discounts” where you target customers who have shown interest in your products over the last three months. The campaign could send personalized emails with special discounts for the holiday season, encouraging recipients to take action.
The Campaign resource in SendX provides you with a powerful toolset to not only communicate with your audience but also to enhance their experience through targeted, automated, and personalized email strategies.
Property | Type | Description | Example |
---|---|---|---|
id | string | ID of the campaign | campaign_xxxxxxxx |
name | string | Name of the campaign | New Year Promotion |
trackReply | boolean | Indicates if replies to the campaign should be tracked | false |
status | integer | Current status of the campaign which can have these possible values: 0: Draft 1: Scheduled 2: Sending 3: Sent 4: Quarantined | Scheduled |
scheduleType | integer | Type of schedule for the campaign 0: Schedule later 1: Send Now 2. Trigger via automation 3. Recurring | 0 |
scheduleCondition | string | Condition for scheduling the campaign, in case of Send Now this field remains empty. In case of Schedule later, this field denotes the date at which the campaign will be sent in YYYY-MM-DD format | 2024-12-30 |
timeCondition | string | Condition for scheduling the campaign, in case of Send Now this field remains empty. In case of Schedule later, this field denotes the time at which the campaign will be sent in HH:MM AM/PM format | 9:00 AM |
timezone | string | Timezone for the scheduled send. See allowed timezones for the list of allowed timezones | America/New_York |
preferredTimeCondition | string | preferred time condition for the campaign | 9:00 AM |
preferredTimezone | string | Preferred timezone for sending the campaign | America/Los_Angeles |
strategy | string | Strategy for the campaign | Batch sending |
sendInContactsTimezone | boolean | Indicates if the campaign should be sent in the recipient’s timezone | true |
smartSend | boolean | Indicates if smart sending should be used | false |
isArchived | boolean | Indicates if the campaign is archived | false |
sender | string | Unique identifier of the sender of the campaign | sender_123 |
campaignScreenshotUrl | string | URL of the campaign’s screenshot | https://example.com/screenshot.png |
includedSegments | array | List of segment IDs that are included in the campaign as receivers | [“segment_123”, “segment_456”] |
includedTags | array | List of tag IDs that are included in the campaign as receivers | [“tag_123”, “tag_456”] |
includedLists | array | List of list IDs that are included in the campaign as receivers | [“list_123”, “list_456”] |
excludedSegments | array | List of segment IDs that are excluded from the campaign as receivers | [“segment_123”, “segment_456”] |
excludedTags | array | List of tag IDs that are excluded from the campaign as receivers | [“tag_123”, “tag_456”] |
excludedLists | array | List of list IDs that are excluded from the campaign as receivers | [“list_123”, “list_456”] |
PreferredTimeZone and PreferredTimeCondition can are valid only in cases of SmartSend and SendInContactTimeZones, in case the user data is not available the preferredTimeZone and preferredTimeCondition is used.