{
"id": "6651a3f2e4b0a1c2d3e4f567",
"name": "Weekend Promo Blast",
"status": "on",
"send_type": "blast",
"source_lists": [101, 204],
"audiences": ["665fa1b2c3d4e5f6a7b8c901"],
"is_repeating": true,
"send_time": "14:30",
"send_date": null,
"start_date": "2025-06-01T00:00:00",
"end_date": "2025-08-31T00:00:00",
"days_of_week": {
"monday": false,
"tuesday": false,
"wednesday": false,
"thursday": false,
"friday": true,
"saturday": true,
"sunday": true
},
"skip_within_hours": 24,
"use_local_time": true,
"filter_bots": true,
"is_transactional": false,
"is_mms": false,
"is_cto": false,
"automated_percent": 0,
"ir_revenue": 2.50,
"blasts": [
{
"message": "Flash sale this weekend! Shop now: {{link1}}",
"offer_links": [
{
"key": "link1",
"offer_id": "665fa1b2c3d4e5f6a7b8c902",
"offer_source": "sms",
"product_id": null,
"variant_id": null,
"custom_url": null,
"url_params": {"utm_source": "sms", "utm_campaign": "weekend"}
}
],
"percent_audience": 60,
"variant_name": "Control",
"mms_image_url": null
},
{
"message": "Don't miss out — 20% off everything: {{link1}}",
"offer_links": [
{
"key": "link1",
"offer_id": "665fa1b2c3d4e5f6a7b8c902",
"offer_source": "sms",
"product_id": null,
"variant_id": null,
"custom_url": null,
"url_params": {"utm_source": "sms", "utm_campaign": "weekend"}
}
],
"percent_audience": 40,
"variant_name": "Urgency Variant",
"mms_image_url": null
}
],
"created_at": "2025-05-28T10:15:30",
"updated_at": "2025-06-01T08:00:00"
}
{
"error": "Schedule not found",
"code": "not_found"
}
{
"error": "Invalid credentials",
"code": "invalid_credentials"
}
Schedules (v2)
Get Schedule
Retrieve a single schedule by its ID.
GET
/
v2
/
schedules
/
{id}
{
"id": "6651a3f2e4b0a1c2d3e4f567",
"name": "Weekend Promo Blast",
"status": "on",
"send_type": "blast",
"source_lists": [101, 204],
"audiences": ["665fa1b2c3d4e5f6a7b8c901"],
"is_repeating": true,
"send_time": "14:30",
"send_date": null,
"start_date": "2025-06-01T00:00:00",
"end_date": "2025-08-31T00:00:00",
"days_of_week": {
"monday": false,
"tuesday": false,
"wednesday": false,
"thursday": false,
"friday": true,
"saturday": true,
"sunday": true
},
"skip_within_hours": 24,
"use_local_time": true,
"filter_bots": true,
"is_transactional": false,
"is_mms": false,
"is_cto": false,
"automated_percent": 0,
"ir_revenue": 2.50,
"blasts": [
{
"message": "Flash sale this weekend! Shop now: {{link1}}",
"offer_links": [
{
"key": "link1",
"offer_id": "665fa1b2c3d4e5f6a7b8c902",
"offer_source": "sms",
"product_id": null,
"variant_id": null,
"custom_url": null,
"url_params": {"utm_source": "sms", "utm_campaign": "weekend"}
}
],
"percent_audience": 60,
"variant_name": "Control",
"mms_image_url": null
},
{
"message": "Don't miss out — 20% off everything: {{link1}}",
"offer_links": [
{
"key": "link1",
"offer_id": "665fa1b2c3d4e5f6a7b8c902",
"offer_source": "sms",
"product_id": null,
"variant_id": null,
"custom_url": null,
"url_params": {"utm_source": "sms", "utm_campaign": "weekend"}
}
],
"percent_audience": 40,
"variant_name": "Urgency Variant",
"mms_image_url": null
}
],
"created_at": "2025-05-28T10:15:30",
"updated_at": "2025-06-01T08:00:00"
}
{
"error": "Schedule not found",
"code": "not_found"
}
{
"error": "Invalid credentials",
"code": "invalid_credentials"
}
Fetch a specific schedule by providing its unique identifier. The response returns the API projection of the schedule: the fields listed below, including
is_transactional, blast variants, and timestamps.
Path Parameters
string
required
The unique identifier of the schedule to retrieve.
Response Fields
string
Unique identifier for the schedule.
string
Name of the schedule.
string
Current status. One of:
draft, off, on, complete, archive.string
Type of schedule. One of:
blast or automated.array of integers
IDs of the source sending lists assigned to this schedule.
array of strings
IDs of the audiences targeted by this schedule.
boolean
Whether this schedule repeats on selected days of the week.
string
Time of day to send, in
HH:MM format (24-hour).datetime
The specific date for a one-time (non-repeating) schedule.
datetime
Start date for a repeating schedule.
datetime
End date for a repeating schedule.
object
Which days the repeating schedule is active. Contains boolean fields:
monday, tuesday, wednesday, thursday, friday, saturday, sunday.float
Skip sending to a contact if they were already sent to within this many hours.
boolean
Whether
send_time is interpreted in each recipient’s local timezone.boolean
Whether bot filtering is enabled for this schedule.
boolean
Read-only.
true when this schedule is marked transactional. Messages from a transactional schedule bypass the standard SMS sending-hour window, state quiet-hour and holiday rules, and your account’s contact frequency caps. This field can only be set from the Trackly dashboard, where an account owner must explicitly acknowledge that bypass — it cannot be set through this API.boolean
Whether this schedule sends MMS messages.
boolean
Whether click-to-open mode is enabled.
float
Percentage of the audience allocated to automated creative selection.
float
Expected or target revenue from this send.
array
Array of blast variant objects.
Show Blast object properties
Show Blast object properties
string
Message body text. May contain
{{link1}}, {{link2}}, etc. placeholders for offer links.array
Array of offer link objects. Each contains
key (string), offer_id (string, null when the link uses a custom URL), offer_source (string, the source discriminator for offer_id: sms for an offer in your account’s offer library, oms for a partnership offer), product_id (string, null when the link does not point to a product), variant_id (string, null when the link does not point to a specific product variant), custom_url (string, null when the link uses an offer), and url_params (object of key/value query parameters).float
Percentage of the audience that receives this variant.
string
Display name for this variant.
string
URL of the MMS image attachment, if applicable.
datetime
Timestamp when the schedule was created.
datetime
Timestamp when the schedule was last updated.
Examples
cURL
curl -X GET "https://api.tracklysms.com/api/v2/schedules/6651a3f2e4b0a1c2d3e4f567" \
-H "X-Api-Key: trk_your_api_key_here"
Python
import requests
schedule_id = "6651a3f2e4b0a1c2d3e4f567"
response = requests.get(
f"https://api.tracklysms.com/api/v2/schedules/{schedule_id}",
headers={"X-Api-Key": "trk_your_api_key_here"},
)
schedule = response.json()
print(f"{schedule['name']} — {schedule['status']}")
Node.js
const scheduleId = "6651a3f2e4b0a1c2d3e4f567";
const response = await fetch(
`https://api.tracklysms.com/api/v2/schedules/${scheduleId}`,
{
method: "GET",
headers: {
"X-Api-Key": "trk_your_api_key_here"
}
}
);
const schedule = await response.json();
console.log(`${schedule.name} — ${schedule.status}`);
{
"id": "6651a3f2e4b0a1c2d3e4f567",
"name": "Weekend Promo Blast",
"status": "on",
"send_type": "blast",
"source_lists": [101, 204],
"audiences": ["665fa1b2c3d4e5f6a7b8c901"],
"is_repeating": true,
"send_time": "14:30",
"send_date": null,
"start_date": "2025-06-01T00:00:00",
"end_date": "2025-08-31T00:00:00",
"days_of_week": {
"monday": false,
"tuesday": false,
"wednesday": false,
"thursday": false,
"friday": true,
"saturday": true,
"sunday": true
},
"skip_within_hours": 24,
"use_local_time": true,
"filter_bots": true,
"is_transactional": false,
"is_mms": false,
"is_cto": false,
"automated_percent": 0,
"ir_revenue": 2.50,
"blasts": [
{
"message": "Flash sale this weekend! Shop now: {{link1}}",
"offer_links": [
{
"key": "link1",
"offer_id": "665fa1b2c3d4e5f6a7b8c902",
"offer_source": "sms",
"product_id": null,
"variant_id": null,
"custom_url": null,
"url_params": {"utm_source": "sms", "utm_campaign": "weekend"}
}
],
"percent_audience": 60,
"variant_name": "Control",
"mms_image_url": null
},
{
"message": "Don't miss out — 20% off everything: {{link1}}",
"offer_links": [
{
"key": "link1",
"offer_id": "665fa1b2c3d4e5f6a7b8c902",
"offer_source": "sms",
"product_id": null,
"variant_id": null,
"custom_url": null,
"url_params": {"utm_source": "sms", "utm_campaign": "weekend"}
}
],
"percent_audience": 40,
"variant_name": "Urgency Variant",
"mms_image_url": null
}
],
"created_at": "2025-05-28T10:15:30",
"updated_at": "2025-06-01T08:00:00"
}
{
"error": "Schedule not found",
"code": "not_found"
}
{
"error": "Invalid credentials",
"code": "invalid_credentials"
}
Error Codes
| HTTP Status | Error Code | Description |
|---|---|---|
| 401 | invalid_credentials | API key is missing, invalid, or revoked. |
| 403 | account_suspended | Your account is suspended. Resolve outstanding billing or contact support. |
| 404 | not_found | No schedule exists with the given ID. |
Next Steps
Campaign Scheduling
Scheduling best practices
List Audiences
View audiences