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](#operation/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 where the activation is still cancellable. Repeating the call is safe. This operation is safe to repeat: repeating it returns the existing state and performs no further action.
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 completed activation on the same number so it can receive a further code. Chargeable.
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](#operation/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](#operation/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](#operation/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.