OTP API Reference
Every OTP endpoint, grouped by what it does. Requests go through the gateway and are authenticated with your key id and secret — see Authentication.
Activations
Returns your activations, newest first, optionally filtered by status.
Rents a number for a service and country, and starts waiting for its code. The rental is charged on success and the activation begins in `waiting`. `serviceId` identifies the offer to rent and comes from [GET /v1/otp/services](/openapi/otp/catalog/listOtpServices). It is opaque: send it back as published.
Returns one activation, including the received code once it arrives. Poll this after renting a number.
Releases a number before its code arrives and refunds the rental while the activation is still cancellable. Immediately after purchase, cancellation may be temporarily unavailable while the provider enforces a short minimum-hold: during this window the call returns 409 CANCELLATION_NOT_AVAILABLE_YET — wait a short while, then retry. The block lifts on its own, nothing is charged for the refused attempt, and a successful cancellation still refunds the rental. Once it is no longer cancellable — already cancelled, or a code has already arrived — the call returns 409 CONFLICT and nothing changes.
Requests another send of the code on the same number. Subject to a cooldown, and chargeable where the activation carries a resend price.
Reopens an expired or cancelled activation on the same number so it can receive a further code. Chargeable. Only available for a short window after the activation ends, on supported number pools — the `canReactivate` flag on an activation is a best-effort hint from its state, so reactivation can still be refused (409 REACTIVATION_UNAVAILABLE) when the provider window has closed; start a new activation in that case.
Catalog
Returns the number pools available to you, by their public codes. A pool is a grouping of numbers, not something you can rent directly: use its code to filter [GET /v1/otp/services](/openapi/otp/catalog/listOtpServices), and rent with the `serviceId` from a catalog offer — whose first segment is this same code.
Returns the countries with numbers available to you. A `null` starter price means the country has no priced services under your profile.
Returns the services you can rent numbers for, searchable by name. Each entry’s `pools[]` are the individual offers, and each offer carries the `serviceId` you send to [POST /v1/otp/activations](/openapi/otp/activations/createOtpActivation).
Returns the offers for a service across countries and pools — one row per offer, each with the `serviceId` you send to [POST /v1/otp/activations](/openapi/otp/activations/createOtpActivation). The path segment addresses either **one offer**, by the `serviceId` a catalogue response published (`ALPHA-372-alibaba`) — matched exactly, and a 404 when no such offer is sellable to you — or **any service by name**, as free text (`viber`, `alibaba`) matched case-insensitively against a service name or slug. A name that matches nothing is an empty `data` array with `meta.total` 0, not a 404: no result is a result. Offers with no numbers in stock are omitted either way, so a sold-out offer id 404s.