Retrieve an SMS purchase quote
GET/api/v1/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'{
"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
| Field | Type | Description |
|---|---|---|
idrequired | string · path | — |
Response · 200 fields19 fields
| Field | Type | Description |
|---|---|---|
objectrequired | string | — |
idrequired | string | The quote (`squote_…`). |
productrequired | enumten_dlc_brand_registration | ten_dlc_brand_vetting | ten_dlc_campaign | ten_dlc_number | long_code_number | toll_free_number | — |
statusrequired | enumopen | 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). |
labelrequired | string | What is bought, as the dashboard names it. |
brand_idrequired | string | null | — |
registration_idrequired | string | null | The registration the order is for (a brand registration, or the campaign whose number it is). |
messaging_program_idrequired | string | null | — |
countryrequired | string | null | — |
due_now_centsrequired | integer | Charged at the confirm, from the plan's allowance (one-time fees). |
monthly_centsrequired | integer | Charged when the number leases or carriers approve the campaign, then every month. |
currencyrequired | string | — |
line_itemsrequired | object[] | — |
covered_by_unitpostrequired | boolean | This workspace's carrier fees are covered by Unitpost: nothing is charged. |
expires_atrequired | string | Confirm before this (quotes last 10 minutes). |
created_atrequired | string | — |
confirmed_atrequired | string | null | — |
orderrequired | object | null | What the confirmed order made; null until then. |
confirm_token | string | Only in the create response, once: pass it to the confirm. Stored only as a hash; a lost token means a new quote. |