Availability is a band
The catalog returns one of high, medium, low, none or unknown — never a stock count. unknown means we have not confirmed the route recently and is not orderable.
Everything the application does is available over a REST API: browse the catalog, price a route, buy a number and follow the order to its conclusion.
This build issues no credentials
Requests carry a scoped API key in an Authorization: Bearer header. Keys are scoped at creation — a key that only reads the catalog cannot place an order — and are revocable individually without disturbing any other integration.
The secret half of a key is shown exactly once, when it is created, and is never retrievable afterwards. If it is lost, it is rotated rather than recovered.
/api/v1/catalog/countriesCacheableEvery country in the canonical catalog, with its dialling prefix.
/api/v1/catalog/servicesCacheableService categories the platform sells against.
/api/v1/catalog/availabilityCacheableAvailability band per country and service. A band, never a count.
/api/v1/quotesPrice a route before committing. Reads nothing and moves nothing.
/api/v1/ordersIdempotentCreate an order. Requires an Idempotency-Key.
/api/v1/ordersList the orders you own, newest first.
/api/v1/orders/{orderId}One order and its current state.
/api/v1/orders/{orderId}/eventsThe order timeline, including the message once it arrives.
/api/v1/orders/{orderId}/cancelRelease the number early and return the hold.
Order creation requires an Idempotency-Key. Replaying the same key returns the original order rather than creating a second one, so a retry after a network timeout can never double-charge.
POST /api/v1/orders HTTP/1.1
Host: api.example
Authorization: Bearer frs_live_...
Idempotency-Key: 7c9e6679-7425-40de-944b-e07fc1f90ae7
Content-Type: application/json
{
"countryIso2": "DE",
"serviceSlug": "marketplace"
}HTTP/1.1 201 Created
Content-Type: application/json
Cache-Control: private, no-store
{
"id": "ord_01J9T4Z8QF6M2XA7C3KDV0RB",
"reference": "FR-7QK2M4",
"state": "PROVISIONING",
"countryIso2": "DE",
"serviceSlug": "marketplace",
"msisdn": null,
"price": { "amount": "0.94", "currency": "USD" },
"expiresAt": "2026-09-01T09:27:00.000Z"
}The catalog returns one of high, medium, low, none or unknown — never a stock count. unknown means we have not confirmed the route recently and is not orderable.
Responses contain no supplier identity, no upstream identifier and no upstream error code. Your integration depends on our contract, so changing how we source a route never breaks it.
Amounts are transmitted as an exact decimal string with an ISO-4217 code, never as a floating-point number. Parse them as decimals.
Failures return a structured problem document with a stable machine-readable type and a correlation reference you can quote to support.