Read SlickText contacts, lists, campaigns, analytics and inbox; create and update contacts.
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
WRITE: add one contact to one or more contact lists (it does not change the contact's opt-in status; lists are also campaign audiences). Returns SlickText's count of memberships added. WARNING: SlickText workflows can trigger on this event (Contact Created / Contact Field Changed / Contact Added to List) and may immediately SEND REAL TEXTS or take other actions configured in the brand's workflows. POST /brands/{brand_id}/lists/contacts.
Contact list ids (from slicktext_list_lists).
The contact id (a positive integer).
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
WRITE: add one contact to one or more contact lists (it does not change the contact's opt-in status; lists are also campaign audiences). Returns SlickText's count of memberships added. WARNING: SlickText workflows can trigger on this event (Contact Created / Contact Field Changed / Contact Added to List) and may immediately SEND REAL TEXTS or take other actions configured in the brand's workflows. POST /brands/{brand_id}/lists/contacts.
| Argument | Type | Description |
|---|---|---|
| list_ids* | array | Contact list ids (from slicktext_list_lists). |
| contact_id* | integer | The contact id (a positive integer). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"contact_id",
"list_ids"
],
"properties": {
"list_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 20,
"minItems": 1,
"description": "Contact list ids (from slicktext_list_lists)."
},
"contact_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The contact id (a positive integer).",
"exclusiveMinimum": 0
}
}
}WRITE: add a contact to the brand. By default the contact is created as 'not subscribed' and gets no text. Set opt_in_status='subscribed' ONLY for people who gave explicit permission to receive texts (SlickText has a zero-tolerance policy for unsolicited texts). force_double_opt_in=true makes SlickText SEND A REAL SMS to the number asking the person to confirm. Check slicktext_find_contact first to avoid duplicates. WARNING: SlickText workflows can trigger on this event (Contact Created / Contact Field Changed / Contact Added to List) and may immediately SEND REAL TEXTS or take other actions configured in the brand's workflows. POST /brands/{brand_id}/contacts.
| Argument | Type | Description |
|---|---|---|
| zip | string | |
| city | string | |
| string | ||
| state | string | |
| address | string | |
| country | string | |
| language | string | Primary language code, e.g. "en". |
| timezone | string | Contact time zone (SlickText accepts these four). |
Find contacts by mobile number or email address (exact match). A 10-digit US number is matched as +1XXXXXXXXXX, the way SlickText stores numbers. Use it before creating a contact to avoid duplicates. GET /brands/{brand_id}/contacts?mobile_number=… or ?email=….
| Argument | Type | Description |
|---|---|---|
| string | Exact email address (case-sensitive, as stored). | |
| limit | integer | Results per page (1-100, default 25). |
| offset | integer | Number of results to skip (default 0). Use next_offset from the previous page. |
| mobile_number | string | Mobile number, e.g. +16155553338 or (615) 555-3338. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"email": {
"type": "string",
"maxLength": 254,
"minLength": 3,
"description": "Exact email address (case-sensitive, as stored)."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page (1-100, default 25)."
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Number of results to skip (default 0). Use next_offset from the previous page."
},
"mobile_number": {
"type": "string",
"maxLength": 32,
"minLength": 7,
"description": "Mobile number, e.g. +16155553338 or (615) 555-3338."
}
}
}Brand-level analytics. metric: contacts (current totals), contact_growth, contact_add_delete_events, opt_in_status_events, campaigns, messages (messages sent), message_credits, inbox_users (assignments, closures, response times per user), inbox_tags. Optional group (allowed per metric — contacts: source|opt_in_status; contact_growth/campaigns: contact_source; contact_add_delete_events: contact_source|type; opt_in_status_events: contact_source|contact_unsubscribe_source|opt_in_status; messages: source|status|direction|weekday; message_credits: source|status), a start/end range, frequency (hour/day/month/year) and compare (YoY, QoQ, MoM, WoW, DoD, PoP). GET /brands/{brand_id}/analytics/….
| Argument | Type | Description |
|---|---|---|
| end | string | Range end, YYYY-MM-DD (= end of that day) or YYYY-MM-DD HH:MM[:SS] (SlickText's format, no time zone (passed through as is)). |
| group | string | Group results by this field (allowed values depend on metric; see description). |
| start | string | Range start, YYYY-MM-DD or YYYY-MM-DD HH:MM[:SS] (SlickText's format, no time zone (passed through as is)). |
| metric* | string | Which analytics report. |
| compare | string | Compare with the previous period. |
| frequency | string | Bucket size of the time series. |
Get the SlickText brand this API key belongs to: brand_id, name, website, sending-number registration details, opt-in / double-opt-in messages, inbox settings and the message credit limit. Every other tool works within this brand. GET /brands.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Get one campaign by id: body, media_url, status, audience_size, schedule and completion. GET /brands/{brand_id}/campaigns/{id}.
| Argument | Type | Description |
|---|---|---|
| campaign_id* | integer | The campaign id (a positive integer). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"campaign_id"
],
"properties": {
"campaign_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The campaign id (a positive integer).",
"exclusiveMinimum": 0
}
}
}Performance of one campaign: contacts reached, clicks, click_rate, unique clicks, unsubscribes, unsubscribe_rate, orders, revenue, average order value, revenue per message, plus the campaign, its audiences and links. GET /brands/{brand_id}/analytics/campaigns/{id}.
| Argument | Type | Description |
|---|---|---|
| group | string | Group the results by source. |
| campaign_id* | integer | The campaign id (a positive integer). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"campaign_id"
],
"properties": {
"group": {
"enum": [
"source"
],
"type": "string",
"description": "Group the results by source."
},
"campaign_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The campaign id (a positive integer).",
"exclusiveMinimum": 0
}
}
}Get one contact by id: name, mobile_number, email, birthdate, address, opt_in_status, source, custom_fields, time zone and dates. GET /brands/{brand_id}/contacts/{id}.
| Argument | Type | Description |
|---|---|---|
| contact_id* | integer | The contact id (a positive integer). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"contact_id"
],
"properties": {
"contact_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The contact id (a positive integer).",
"exclusiveMinimum": 0
}
}
}Get the content of one inbox conversation by its id (the _id from slicktext_list_conversations). For the message-by-message history also call slicktext_list_messages with source=InboxThread and source_id=<conversation id>. GET /brands/{brand_id}/inbox-threads/{id}/content.
| Argument | Type | Description |
|---|---|---|
| conversation_id* | string | The conversation _id, e.g. 6744a2ba587c8f2cf4028786. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"conversation_id"
],
"properties": {
"conversation_id": {
"type": "string",
"pattern": "^[A-Za-z0-9]{1,64}$",
"description": "The conversation _id, e.g. 6744a2ba587c8f2cf4028786."
}
}
}Message credits for the current billing period: total_credits (subscription + rollover + purchased), credits_used, credits_available and the credit limit. GET /brands/{brand_id}/usage.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Get one keyword by id, including the contact_list_ids that people who text it are added to. GET /brands/{brand_id}/keywords/{id}.
| Argument | Type | Description |
|---|---|---|
| keyword_id* | integer | The keyword id (a positive integer). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"keyword_id"
],
"properties": {
"keyword_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The keyword id (a positive integer).",
"exclusiveMinimum": 0
}
}
}Get one contact list by id plus its contact count (all statuses: subscribed, not subscribed, unsubscribed, blocked). GET /brands/{brand_id}/lists/{id} and /lists/{id}/contacts/count.
| Argument | Type | Description |
|---|---|---|
| list_id* | integer | The contact list id (a positive integer). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"list_id"
],
"properties": {
"list_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The contact list id (a positive integer).",
"exclusiveMinimum": 0
}
}
}List the brand's SMS/MMS campaigns: name, body, status (e.g. draft, scheduled, queued, sent), scheduled/started/finished times, completion_percentage and audience (lists/segments and size). GET /brands/{brand_id}/campaigns.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Results per page (1-100, default 25). |
| offset | integer | Number of results to skip (default 0). Use next_offset from the previous page. |
| status | string | Exact status, e.g. "sent", "scheduled", "draft". |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page (1-100, default 25)."
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Number of results to skip (default 0). Use next_offset from the previous page."
},
"status": {
"type": "string",
"maxLength": 32,
"description": "Exact status, e.g. \"sent\", \"scheduled\", \"draft\"."
}
}
}List the brand's contacts (subscribers) with name, mobile_number, email, opt_in_status, source, custom_fields and dates. Filters are exact, case-sensitive matches (SlickText has no partial search). Paged: returns count, has_more and next_offset. GET /brands/{brand_id}/contacts.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Results per page (1-100, default 25). |
| offset | integer | Number of results to skip (default 0). Use next_offset from the previous page. |
| last_name | string | Exact last name (case-sensitive). |
| first_name | string | Exact first name (case-sensitive). |
| custom_fields | object | Exact-match filters on custom fields, keyed by internal_name (see slicktext_list_custom_fields), e.g. {"favorite_color": "blue"}. |
| opt_in_status | string | Only contacts with this opt-in status. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page (1-100, default 25)."
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Number of results to skip (default 0). Use next_offset from the previous page."
},
"last_name": {
"type": "string",
"maxLength": 255,
"description": "Exact last name (case-sensitive)."
},
"first_name": {
"type": "string",
"maxLength": 255,
"description": "Exact first name (case-sensitive)."
},
"custom_fields": {
"type": "object",
"description": "Exact-match filters on custom fields, keyed by internal_name (see slicktext_list_custom_fields), e.g. {\"favorite_color\": \"blue\"}.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 1000
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"opt_in_status": {
"enum": [
"not subscribed",
"subscribed",
"unsubscribed",
"blocked"
],
"type": "string",
"description": "Only contacts with this opt-in status."
}
}
}List two-way inbox conversations: status (open, pending, closed), the contact, the last message and its direction/time, assigned user, tags and unread state. GET /brands/{brand_id}/inbox-threads.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Results per page (1-100, default 25). |
| offset | integer | Number of results to skip (default 0). Use next_offset from the previous page. |
| status | string | |
| assigned_to_user_id | integer | Only conversations assigned to this user id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page (1-100, default 25)."
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Number of results to skip (default 0). Use next_offset from the previous page."
},
"status": {
"enum": [
"open",
"pending",
"closed"
],
"type": "string"
},
"assigned_to_user_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only conversations assigned to this user id.",
"exclusiveMinimum": 0
}
}
}List the brand's contact custom fields: name, internal_name (the key used in contact filters and writes), data_type and description. GET /brands/{brand_id}/custom-fields.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Results per page (1-100, default 25). |
| offset | integer | Number of results to skip (default 0). Use next_offset from the previous page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page (1-100, default 25)."
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Number of results to skip (default 0). Use next_offset from the previous page."
}
}
}List the inbox tags used to label conversations (inbox_tag_id, name, color, description). GET /brands/{brand_id}/inbox-tags.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Results per page (1-100, default 25). |
| offset | integer | Number of results to skip (default 0). Use next_offset from the previous page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page (1-100, default 25)."
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Number of results to skip (default 0). Use next_offset from the previous page."
}
}
}List the brand's text-to-join keywords (word, description, active, auto-response and opt-in messages, double opt-in). GET /brands/{brand_id}/keywords.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Results per page (1-100, default 25). |
| active | boolean | true = only active keywords, false = only inactive. |
| offset | integer | Number of results to skip (default 0). Use next_offset from the previous page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page (1-100, default 25)."
},
"active": {
"type": "boolean",
"description": "true = only active keywords, false = only inactive."
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Number of results to skip (default 0). Use next_offset from the previous page."
}
}
}List the contacts in one contact list (paged). GET /brands/{brand_id}/lists/{id}/contacts.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Results per page (1-100, default 25). |
| offset | integer | Number of results to skip (default 0). Use next_offset from the previous page. |
| list_id* | integer | The contact list id (a positive integer). |
| opt_in_status | string | Only contacts with this opt-in status. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"list_id"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page (1-100, default 25)."
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Number of results to skip (default 0). Use next_offset from the previous page."
},
"list_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The contact list id (a positive integer).",
"exclusiveMinimum": 0
},
"opt_in_status": {
"enum": [
"not subscribed",
"subscribed",
"unsubscribed",
"blocked"
],
"type": "string",
"description": "Only contacts with this opt-in status."
}
}
}List the brand's contact lists (contact_list_id, name, description, created). Optional exact name filter. GET /brands/{brand_id}/lists.
| Argument | Type | Description |
|---|---|---|
| name | string | Exact list name (case-sensitive). |
| limit | integer | Results per page (1-100, default 25). |
| offset | integer | Number of results to skip (default 0). Use next_offset from the previous page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"name": {
"type": "string",
"maxLength": 255,
"description": "Exact list name (case-sensitive)."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page (1-100, default 25)."
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Number of results to skip (default 0). Use next_offset from the previous page."
}
}
}List individual SMS/MMS messages sent and received by the brand: to, from, body, direction, source (Campaign, Keyword, InboxThread, API …), status (delivered, undelivered …), credits and the contact. Filters are exact matches; use to/from with a phone number to read one contact's history, or source=InboxThread with source_id = a conversation id. GET /brands/{brand_id}/messages.
| Argument | Type | Description |
|---|---|---|
| to | string | Recipient number (outgoing messages: the contact; incoming: your number). |
| from | string | Sender number (incoming messages: the contact; outgoing: your number). |
| limit | integer | Results per page (1-100, default 25). |
| offset | integer | Number of results to skip (default 0). Use next_offset from the previous page. |
| source | string | Exact source, e.g. "Campaign", "Keyword", "InboxThread", "API". |
| status | string | Exact status, e.g. "delivered", "undelivered". |
| direction | string | |
| source_id | string | Id of the source (a campaign id, a conversation id …). |
List the contacts that currently match one segment (paged). GET /brands/{brand_id}/segments/{id}/contacts.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Results per page (1-100, default 25). |
| offset | integer | Number of results to skip (default 0). Use next_offset from the previous page. |
| segment_id* | integer | The segment id (a positive integer). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"segment_id"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page (1-100, default 25)."
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Number of results to skip (default 0). Use next_offset from the previous page."
},
"segment_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The segment id (a positive integer).",
"exclusiveMinimum": 0
}
}
}List the brand's segments (rule-based contact groups: segment_id, name, description). GET /brands/{brand_id}/segments.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Results per page (1-100, default 25). |
| offset | integer | Number of results to skip (default 0). Use next_offset from the previous page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page (1-100, default 25)."
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Number of results to skip (default 0). Use next_offset from the previous page."
}
}
}WRITE: change fields of an existing contact (only the fields you pass are sent). opt_in_status can mark a contact unsubscribed or blocked; set it to 'subscribed' ONLY when the person explicitly agreed to receive texts. WARNING: SlickText workflows can trigger on this event (Contact Created / Contact Field Changed / Contact Added to List) and may immediately SEND REAL TEXTS or take other actions configured in the brand's workflows. PUT /brands/{brand_id}/contacts/{id}.
| Argument | Type | Description |
|---|---|---|
| zip | string | |
| city | string | |
| string | ||
| state | string | |
| address | string | |
| country | string | |
| language | string | Primary language code, e.g. "en". |
| timezone | string | Contact time zone (SlickText accepts these four). |
| birthdate | string | Birthday, YYYY-MM-DD. |
| birthdate | string | Birthday, YYYY-MM-DD. |
| last_name | string |
| first_name | string |
| custom_fields | object | Custom field values keyed by the field's internal_name (see slicktext_list_custom_fields), e.g. {"favorite_color": "blue"}. |
| mobile_number* | string | Mobile number (required), e.g. +16155553338 or (615) 555-3338. |
| opt_in_status | string | Default 'not subscribed'. 'subscribed' only with the person's explicit consent. |
| force_double_opt_in | boolean | true = SlickText texts the number a double opt-in confirmation (a real SMS). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"mobile_number"
],
"properties": {
"zip": {
"type": "string",
"maxLength": 16
},
"city": {
"type": "string",
"maxLength": 255
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 254
},
"state": {
"type": "string",
"maxLength": 64
},
"address": {
"type": "string",
"maxLength": 255
},
"country": {
"type": "string",
"maxLength": 64
},
"language": {
"type": "string",
"maxLength": 16,
"description": "Primary language code, e.g. \"en\"."
},
"timezone": {
"enum": [
"America/New_York",
"America/Chicago",
"America/Denver",
"America/Los_Angeles"
],
"type": "string",
"description": "Contact time zone (SlickText accepts these four)."
},
"birthdate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Birthday, YYYY-MM-DD."
},
"last_name": {
"type": "string",
"maxLength": 255
},
"first_name": {
"type": "string",
"maxLength": 255
},
"custom_fields": {
"type": "object",
"description": "Custom field values keyed by the field's internal_name (see slicktext_list_custom_fields), e.g. {\"favorite_color\": \"blue\"}.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 1000
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"mobile_number": {
"type": "string",
"maxLength": 32,
"minLength": 7,
"description": "Mobile number (required), e.g. +16155553338 or (615) 555-3338."
},
"opt_in_status": {
"enum": [
"not subscribed",
"subscribed",
"unsubscribed",
"blocked"
],
"type": "string",
"description": "Default 'not subscribed'. 'subscribed' only with the person's explicit consent."
},
"force_double_opt_in": {
"type": "boolean",
"description": "true = SlickText texts the number a double opt-in confirmation (a real SMS)."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"metric"
],
"properties": {
"end": {
"type": "string",
"maxLength": 32,
"description": "Range end, YYYY-MM-DD (= end of that day) or YYYY-MM-DD HH:MM[:SS] (SlickText's format, no time zone (passed through as is))."
},
"group": {
"type": "string",
"maxLength": 64,
"description": "Group results by this field (allowed values depend on metric; see description)."
},
"start": {
"type": "string",
"maxLength": 32,
"description": "Range start, YYYY-MM-DD or YYYY-MM-DD HH:MM[:SS] (SlickText's format, no time zone (passed through as is))."
},
"metric": {
"enum": [
"contacts",
"contact_growth",
"contact_add_delete_events",
"opt_in_status_events",
"campaigns",
"messages",
"message_credits",
"inbox_users",
"inbox_tags"
],
"type": "string",
"description": "Which analytics report."
},
"compare": {
"enum": [
"YoY",
"QoQ",
"MoM",
"WoW",
"DoD",
"PoP"
],
"type": "string",
"description": "Compare with the previous period."
},
"frequency": {
"enum": [
"hour",
"day",
"month",
"year"
],
"type": "string",
"description": "Bucket size of the time series."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"to": {
"type": "string",
"maxLength": 32,
"minLength": 7,
"description": "Recipient number (outgoing messages: the contact; incoming: your number)."
},
"from": {
"type": "string",
"maxLength": 32,
"minLength": 7,
"description": "Sender number (incoming messages: the contact; outgoing: your number)."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page (1-100, default 25)."
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Number of results to skip (default 0). Use next_offset from the previous page."
},
"source": {
"type": "string",
"maxLength": 32,
"description": "Exact source, e.g. \"Campaign\", \"Keyword\", \"InboxThread\", \"API\"."
},
"status": {
"type": "string",
"maxLength": 32,
"description": "Exact status, e.g. \"delivered\", \"undelivered\"."
},
"direction": {
"enum": [
"incoming",
"outgoing"
],
"type": "string"
},
"source_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Id of the source (a campaign id, a conversation id …)."
}
}
}| last_name | string |
| contact_id* | integer | The contact id (a positive integer). |
| first_name | string |
| custom_fields | object | Custom field values keyed by the field's internal_name (see slicktext_list_custom_fields), e.g. {"favorite_color": "blue"}. |
| mobile_number | string | New mobile number. |
| opt_in_status | string | New opt-in status. 'subscribed' only with the person's explicit consent. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"contact_id"
],
"properties": {
"zip": {
"type": "string",
"maxLength": 16
},
"city": {
"type": "string",
"maxLength": 255
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 254
},
"state": {
"type": "string",
"maxLength": 64
},
"address": {
"type": "string",
"maxLength": 255
},
"country": {
"type": "string",
"maxLength": 64
},
"language": {
"type": "string",
"maxLength": 16,
"description": "Primary language code, e.g. \"en\"."
},
"timezone": {
"enum": [
"America/New_York",
"America/Chicago",
"America/Denver",
"America/Los_Angeles"
],
"type": "string",
"description": "Contact time zone (SlickText accepts these four)."
},
"birthdate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Birthday, YYYY-MM-DD."
},
"last_name": {
"type": "string",
"maxLength": 255
},
"contact_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The contact id (a positive integer).",
"exclusiveMinimum": 0
},
"first_name": {
"type": "string",
"maxLength": 255
},
"custom_fields": {
"type": "object",
"description": "Custom field values keyed by the field's internal_name (see slicktext_list_custom_fields), e.g. {\"favorite_color\": \"blue\"}.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 1000
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"mobile_number": {
"type": "string",
"maxLength": 32,
"minLength": 7,
"description": "New mobile number."
},
"opt_in_status": {
"enum": [
"not subscribed",
"subscribed",
"unsubscribed",
"blocked"
],
"type": "string",
"description": "New opt-in status. 'subscribed' only with the person's explicit consent."
}
}
}