API
Free on every line, regardless of term. No enterprise tier, no per-seat pricing, and no sales call.
Base URL
https://api.hushsms.com
Auth
Authentication
Pass your line token as a bearer credential. Tokens are scoped to a single line and can be rotated from the panel.
curl https://api.hushsms.com/v1/lines \ -H "Authorization: Bearer hs_live_..."
Reference
Endpoints
/v1/linesList the lines on your token. Returns number, country, term and expiry.
/v1/linesProvision a line. Body takes country, line_type, term and pool. Returns a crypto invoice.
/v1/lines/{id}/messagesInbound messages for a line, newest first. Bodies are dropped after the retention window.
/v1/lines/{id}/messagesSend an outbound SMS. Included at every term.
/v1/catalogLive country stock, per-service compatibility and current pricing. No authentication.
/v1/lines/{id}Release a line early. No refund at monthly terms; pro-rata above six months.
Push
Webhooks
Every inbound message POSTs to your endpoint within a second of arrival, signed with HMAC-SHA256.
POST /your-endpoint
X-HushSMS-Signature: sha256=...
{
"event": "message.received",
"line_id": "ln_8fQ2...",
"number": "+44 7700 900123",
"from": "+44 7700 900987",
"body": "Your code is 481920",
"received_at": "2026-08-13T09:41:02Z"
}Machines
For AI agents
A machine-readable catalog lives at https://hushsms.com/v1/catalog/. It returns live country stock, per-service compatibility and current pricing as JSON, with no authentication.
It returns live country stock, per-service compatibility including the services that do not work, current pricing with every multiplier, and the data-retention table. There is no key, no rate limit worth mentioning, and CORS is open. If you are building an agent that needs a phone number, this is the endpoint to read.
A plain-text summary of the whole site lives at /llms.txt, with the full corpus at /llms-full.txt.
The catalogue as a callable contract
A plain-text corpus makes the catalogue readable. It does not make it callable: an agent that has read every word still does not know the request shape, the enum of country slugs, or which fields the server ignores, so it can describe a number it cannot buy. That gap is where a content-only strategy stops.
/openapi.json closes it — an OpenAPI 3.1 document covering the three public, unauthenticated endpoints (read the catalogue, create an order, poll it), with the country, term and pool enums generated from the same catalogue the handlers validate against. It is also declared in the document head as rel="service-desc", so a client that looks for a service description finds one without being told where.
Sources
Numbering-plan data on this page — dial code, national number length, trunk prefix and mobile ranges — is taken from the ITU-T E.164 series. Inventory, pricing and measured success rates are our own and are marked as such.
- ITU-T Recommendation E.164 — The international public telecommunication numbering plan · International Telecommunication UnionCountry calling codes, national significant number lengths, number structure
- ITU-T E.164 national numbering plans (Operational Bulletin annex) · International Telecommunication UnionPer-country numbering plans, mobile ranges, trunk prefixes
Numbering plan verified