---
title: "Get a single schedule by ID"
method: GET
path: "/v2/schedules/{schedule_id}"
tags: ["schedules-v2"]
---

# Get a single schedule by ID

`GET /v2/schedules/{schedule_id}`

## Request

- Base URL: `https://api.tracklysms.com/api`
- URL: `https://api.tracklysms.com/api/v2/schedules/{schedule_id}`
- Auth: API key in header `X-Api-Key`

## Response `200`

Success

- ScheduleResponse
  - `audiences` string[]: Audience IDs
  - `automated_percent` number: Automated selection percentage
  - `blasts` ScheduleBlast[]: Blast variants
    - `message` string, required: Inline message text; no saved creative required
    - `mms_image_url` string: MMS image URL
    - `offer_links` BlastOfferLink[]: Offer link mappings
      - `custom_url` string: Absolute HTTPS URL resolving to a public address; use instead of offer_id
      - `key` string: Placeholder key (e.g., link1)
      - `offer_id` string: Offer ID
      - `url_params` object: Additional URL parameters
    - `percent_audience` number, required: Percentage of audience (all must sum to 100)
    - `variant_name` string: Variant name for reporting
  - `created_at` string, date-time: Creation timestamp
  - `days_of_week` DaysOfWeek
    - `friday` boolean
    - `monday` boolean
    - `saturday` boolean
    - `sunday` boolean
    - `thursday` boolean
    - `tuesday` boolean
    - `wednesday` boolean
  - `end_date` string, date-time: Repeating end date
  - `filter_bots` boolean: Filter bots
  - `id` string: Schedule ID
  - `ir_revenue` number: Expected revenue
  - `is_cto` boolean: Click-to-open mode
  - `is_mms` boolean: MMS mode
  - `is_repeating` boolean: Whether schedule repeats
  - `is_transactional` boolean: Read-only. True when this schedule is marked transactional and its messages skip TCPA sending restrictions. Settable only in the Trackly UI, which requires an explicit owner acknowledgement.
  - `name` string: Schedule name
  - `send_date` string, date-time: One-time send date
  - `send_time` string: Send time (HH:MM)
  - `send_type` string: Type: blast or automated
  - `skip_within_hours` number: Skip if sent within hours
  - `source_lists` integer[]: Source list IDs
  - `start_date` string, date-time: Repeating start date
  - `status` string: Status: draft, off, on, complete, archive
  - `updated_at` string, date-time: Last update timestamp
  - `use_local_time` boolean: Use recipient local time

## Other responses

- `401`: Authentication error
- `404`: Schedule not found

---

[API](https://skmtc.dev/tracklysms/apis/trackly-sms-api.md) · [All operations](https://skmtc.dev/tracklysms/apis/trackly-sms-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tracklysms/apis/trackly-sms-api/revisions/ac1ad22cb2a9?raw)
