campaigns

Merchant campaigns only: Shopper campaigns are not listed, and their ids read 404 here and on the campaign's other routes. Declared filters — filter[status] (eq, in), filter[channel] (eq — over messages[].channel), filter[created_at] (gt/gte/lt/lte). Any undeclared filter/sort/expand is 400, never silently ignored.

get/campaigns

Request

  • Base URL
    https://api.pscrpt.com/v1
  • URL
    https://api.pscrpt.com/v1/campaigns
  • Auth
    • HTTP bearer
    • or OAuth 2
      Authorization code: https://api.pscrpt.com/oauth/authorize
      Token URL: https://api.pscrpt.com/oauth/token scopes: campaigns:read

Query parameters

page[limit]integer
page[after]string
filter[status]'draft' | 'scheduled' | 'preparing' | 'active' | 'completed' | 'cancelled' | 'archived' | 'paused'

preparing/active are system-driven; completed/cancelled/archived are terminal (archived via the archive-style DELETE). paused is a migrated campaign whose schedule is carried over but not armed; it never sends until armed.

filter[status][in]CampaignStatus[]
filter[channel]'sms' | 'mms' | 'rcs' | 'email'
filter[created_at][gt]string date-time
filter[created_at][gte]string date-time
filter[created_at][lt]string date-time
filter[created_at][lte]string date-time
sortstring

Comma-separated sort keys; a leading - is descending and its absence is ascending. Allowed fields: created_at, updated_at, name, id. Default: -created_at, -id.

Headers

Postscript-Versionstring date
Example:2026-07-23

Overrides the key's pinned API revision for this request.

Response

One page of campaigns.

Example response

{
  "data": [
    {
      "archived_at": "2026-07-23T17:32:01.123456Z",
      "created_at": "2026-07-23T17:32:01.123456Z",
      "schedule": {
        "send_at": "2026-07-23T17:32:01.123456Z"
      },
      "send_completed_at": "2026-07-23T17:32:01.123456Z",
      "send_started_at": "2026-07-23T17:32:01.123456Z",
      "updated_at": "2026-07-23T17:32:01.123456Z"
    }
  ]
}

Changes