---
title: "Create a new offer"
method: POST
path: "/v2/offers"
tags: ["offers-v2"]
---

# Create a new offer

`POST /v2/offers`

## Request

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

## Request body

- OfferCreateRequest
  - `advertiser` string: Advertiser entity ID owned by this account, as returned in the advertiser field of GET /v2/offers
  - `advertiser_id` string: Advertiser ID
  - `dates_timezone` string, nullable: Timezone for start_date/end_date: America/New_York, America/Chicago, America/Denver, America/Los_Angeles or UTC. Null = the account timezone.
  - `day_parting` object: Allow-list of send windows by lowercase weekday, evaluated in Eastern Time. Shape {"monday": [{"start": "HH:MM", "end": "HH:MM"}]}; 24h zero-padded times, start < end (no overnight crossing), max 6 ranges/day; omit a weekday to block it.
  - `day_parting_enabled` boolean: Whether intra-day send-window restrictions apply
  - `end_date` string, nullable: Last day the offer may be sent, inclusive (YYYY-MM-DD, in dates_timezone). Null = no end.
  - `excluded_days_of_week` string[]: Weekdays the SMS ad server will not send this offer (contact-local)
  - `external_id` string: External platform ID
  - `external_platform` string: External platform: tune, everflow, or null
  - `filter_bots` boolean: Whether to filter bots (default: false)
  - `metadata` object: Custom metadata fields
  - `name` string, required: Offer name (max 255 chars)
  - `payout` number: Payout amount (default: 0)
  - `payout_type` string: Payout type: cpa or cpc (default: cpa)
  - `platform_config_id` string: ID of the integration to link this offer to
  - `start_date` string, nullable: First day the offer may be sent (YYYY-MM-DD, in dates_timezone). Null = no start limit.
  - `status` string: Status: active or paused (default: active)
  - `tracking_url` string, required: Tracking URL

## Response `201`

Offer created

- OfferCreateResponse
  - `offer` OfferResponse
    - `advertiser` string, nullable: Advertiser entity ID owned by this account, or null
    - `advertiser_id` string: Advertiser ID
    - `advertiser_name` string: Advertiser name
    - `created_at` string, date-time: Creation timestamp
    - `dates_timezone` string, nullable: Timezone for start_date/end_date: America/New_York, America/Chicago, America/Denver, America/Los_Angeles or UTC. Null = the account timezone.
    - `day_parting` object: Allow-list of send windows by lowercase weekday, evaluated in Eastern Time. Shape {"monday": [{"start": "HH:MM", "end": "HH:MM"}]}; 24h zero-padded times, start < end (no overnight crossing), max 6 ranges/day; omit a weekday to block it.
    - `day_parting_enabled` boolean: Whether intra-day send-window restrictions apply
    - `end_date` string, nullable: Last day the offer may be sent, inclusive (YYYY-MM-DD, in dates_timezone). Null = no end.
    - `excluded_days_of_week` string[]: Weekdays the SMS ad server will not send this offer (contact-local)
    - `external_id` string: External platform ID
    - `external_platform` string: External platform: tune, everflow, or null
    - `filter_bots` boolean: Whether to filter bots
    - `id` string: Offer ID
    - `metadata` object: Custom metadata fields
    - `name` string: Offer name
    - `payout` number: Payout amount
    - `payout_type` string: Payout type: cpa or cpc
    - `platform_config_id` string, nullable: ID of the integration this offer is linked to, or null when unlinked
    - `start_date` string, nullable: First day the offer may be sent (YYYY-MM-DD, in dates_timezone). Null = no start limit.
    - `status` string: Status: active, paused, archived
    - `tracking_url` string: Tracking URL
    - `updated_at` string, date-time: Last update timestamp
  - `success` boolean: Operation success

## Other responses

- `400`: Validation error
- `401`: Authentication error
- `409`: Offer management owns offer writes

---

[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)
