Retrieve an SMS purchase quote

Retrieve an SMS purchase quote

GET/api/v1/sms/quotes/{id}

GET /sms/quotes/{id}
curl -X GET 'https://www.unitpost.com/api/v1/sms/quotes/123' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'User-Agent: my-app/1.0'
Response · 200
{
  "object": "sms_quote",
  "id": "id_123",
  "product": "ten_dlc_brand_registration",
  "status": "open",
  "label": "string",
  "brand_id": "brand_123",
  "registration_id": "registration_123",
  "messaging_program_id": "messaging_program_123",
  "country": "string",
  "due_now_cents": 0,
  "monthly_cents": 0,
  "currency": "usd",
  "line_items": [
    {
      "fee_code": "string",
      "label": "string",
      "amount_cents": 0,
      "cadence": "one_time",
      "starts_when": "on_confirmation"
    }
  ],
  "covered_by_unitpost": false,
  "expires_at": "2026-01-01T00:00:00.000Z",
  "created_at": "2026-01-01T00:00:00.000Z",
  "confirmed_at": "2026-01-01T00:00:00.000Z",
  "order": {
    "registration_id": "registration_123",
    "number_id": "number_123",
    "status": "queued"
  },
  "confirm_token": "string"
}

A quote's price and state: open until confirmed or expired, ordered with what the order made (order.registration_id or order.number_id), pending while the outcome is unknown (the carrier didn't answer: a fee due now is held, monthly fees are committed), or failed when the confirm bought nothing (nothing was charged). A pending quote settles from the billing ledger when it is read: ordered once the fee is captured or the number or campaign goes live, failed once the fee is refunded or the commitments are released. An ordered number or campaign whose commitments are released before it ever goes live reads failed too and stops counting against the cap. Never the confirm token. Requires the sms:read capability.

Parameters1 field
FieldTypeDescription
idrequiredstring · path—
Response · 200 fields19 fields
FieldTypeDescription
objectrequiredstring—
idrequiredstringThe quote (`squote_…`).
productrequiredenumten_dlc_brand_registration | ten_dlc_brand_vetting | ten_dlc_campaign | ten_dlc_number | long_code_number | toll_free_number—
statusrequiredenumopen | expired | confirming | ordered | pending | failed`open` until confirmed or `expires_at`; `ordered` once placed; `pending` while the outcome is unknown (the carrier didn't answer: a fee due now is held, monthly fees are committed, and it settles to `ordered` or `failed` from the billing ledger, so read it again; don't buy the same thing meanwhile); `failed` when the confirm bought nothing (nothing was charged; quote again).
labelrequiredstringWhat is bought, as the dashboard names it.
brand_idrequiredstring | null—
registration_idrequiredstring | nullThe registration the order is for (a brand registration, or the campaign whose number it is).
messaging_program_idrequiredstring | null—
countryrequiredstring | null—
due_now_centsrequiredintegerCharged at the confirm, from the plan's allowance (one-time fees).
monthly_centsrequiredintegerCharged when the number leases or carriers approve the campaign, then every month.
currencyrequiredstring—
line_itemsrequiredobject[]—
covered_by_unitpostrequiredbooleanThis workspace's carrier fees are covered by Unitpost: nothing is charged.
expires_atrequiredstringConfirm before this (quotes last 10 minutes).
created_atrequiredstring—
confirmed_atrequiredstring | null—
orderrequiredobject | nullWhat the confirmed order made; null until then.
confirm_tokenstringOnly in the create response, once: pass it to the confirm. Stored only as a hash; a lost token means a new quote.
200401403404422

Search docs and guides

Search the docs and product guides.