Base URL
All v2 API requests should be made to:Authentication
Authenticated operations use an API key in theX-Api-Key header:
trk_[32-char-alphanumeric]. See Authentication for details.
Enrollment creation is anonymous; enrollment status uses its own limited bearer poll token. These setup operations do not issue an API key or authorize messaging.
SMS for AI agents
Trackly MCP connects compatible assistants to identity, list discovery, preflight, pending sends, key pause, and delivery/reply readback. A person approves the rendered send in Trackly before execution. Follow connection setup and the approved-send walkthrough, or integrate directly with the pending-send endpoints. Use a dedicated sandbox key with confirmation required for initial testing. Sandbox still needs an eligible sending list and may invoke configured webhooks. A preflight success is advisory; accepted live sends must be checked for final delivery.Set up a blast through the API
UsePOST /v2/schedules with send_type: "blast",
your audience IDs, inline message text, and send date/time. No saved creative is required.
The key must have no daily send cap or send-approval requirement, even for drafts. Keys with
list restrictions must specify nonempty, allowed source_lists.
Keep status: "draft" to review it first, or set status: "on" to activate the scheduled blast.
Link placeholders can map to offers from your account or public HTTPS custom URLs.
Optionally set blasts[].save_as_creative: true to also keep a variant’s text and links as
an independent creative for later manual sends; the default is false. The response identifies
saved assets in saved_creatives and reports optional save failures in creative_save_errors,
even when the schedule was successfully created with HTTP 201. The create-schedule reference
includes complete request examples, ID retrieval, and retry guidance.
What’s New in V2
Request Format
- All requests must include
Content-Type: application/json - Phone numbers must be in E.164 format (e.g.,
+14155551234) - Request bodies must be valid JSON
- Maximum payload size: 5 MB
Response Format
All v2 responses use a consistent JSON structure.- Success (2xx)
- Error (4xx)
Pagination
Pagination depends on the endpoint. Page-based collections use parameters such as:
Paginated responses include a
pagination object:
limit and cursor pagination. Pending sends use limit and before. Follow each endpoint’s response and retain known hold IDs for direct reconciliation.
Bulk Operations
Bulk endpoints accept up to 1,000 records per request. Each record is processed individually — partial success is possible. Bulk responses include per-record error details:Available Endpoints
Agent & MCP Guide
Connect an assistant and keep human approval in the send flow
Pending Sends
Hold immutable SMS content, review it, and execute the approved send
Messages
Send single and bulk SMS messages
Raw Messages
Send raw messages with skip options
Contacts
Create, list, and manage contacts
Lists
View sending lists and contact counts
Number Requests
Request number provisioning and track status
Business Verification
Complete verification within number requests
Creatives
Manage message templates with offer links
Audiences
Build dynamic audience segments
Offers
Manage tracking offers and payouts
Schedules
Create and manage scheduled campaigns
Links
Create trackable short links for offers
Revenue
Record revenue attribution
Data Import
Import historical sends, clicks, and revenue
Webhooks
Receive delivery and reply events
Audience Filters
Build complex audience filter queries
Migration from V1
If you’re using the deprecated v1 API, see the Migration Guide for a field-by-field comparison and upgrade path.Next Steps
Send First SMS
Send your first message in 5 minutes
Authentication
Set up your API key