OTP API Reference
Every OTP endpoint, grouped by the role a key needs to call it. Requests go through the gateway and must be signed — see Authentication.
Lifecycle
Rents a number for a service and country, and starts waiting for its code. The rental is charged on success and the order begins in `waiting`. `serviceId` identifies the offer to rent and comes from the catalog — `pools[].serviceId` on [GET /v1/otp/services/{serviceSlug}/{countryCode}](#operation/getOtpServiceOffer) is the usual source. It is opaque: send it back as published.
Returns the current state of an order, including the received code once it arrives. Poll this after requesting a number.
Returns your OTP orders, newest first, optionally filtered by status.
Releases a number before its code arrives and refunds the rental where the order 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 order carries a resend price.
Reopens an expired or completed order on the same number so it can receive a further code. Chargeable.
Refunds
Returns your refund requests and their current decision state.
Asks for an order to be refunded. The request starts in `pending` and is decided by Bitcall; it does not move money by itself.
Withdraws a refund request that is still pending. Repeating the call returns the already-cancelled request. This operation is safe to repeat: repeating it returns the existing state and performs no further action.
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 a number for in one country, with their prices. Each entry’s `pools[]` are the individual offers, and each offer carries the `serviceId` you send to [POST /v1/otp/request](#operation/requestOtpNumber).
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/request](#operation/requestOtpNumber).
Returns one service across countries and pools — one row per offer, each with the `serviceId` you send to [POST /v1/otp/request](#operation/requestOtpNumber). The path takes free text (`viber`).
Returns the countries where one service is available, with their prices.
Returns the offers for a service in a country — one per pool, with price, availability and success rate. This is the last step before renting: each offer carries the `serviceId` you send to [POST /v1/otp/request](#operation/requestOtpNumber).
Overview
Previous Page
Request a number POST
Rents a number for a service and country, and starts waiting for its code. The rental is charged on success and the order begins in `waiting`. `serviceId` identifies the offer to rent and comes from the catalog — `pools[].serviceId` on [GET /v1/otp/services/{serviceSlug}/{countryCode}](#operation/getOtpServiceOffer) is the usual source. It is opaque: send it back as published.