List countries
Returns the countries with numbers available to you. A null starter price means the country has no priced services under your profile.
Authorization
KeyId ApiSecret Your API key id.
In: header
Your API key secret.
In: header
Query Parameters
11 <= value <= 10000501 <= value <= 200Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/otp/countries?page=1&pageSize=50" \ -H "x-key-id: YOUR_KEY_ID" \ -H "x-api-secret: YOUR_API_SECRET"{
"data": [
{
"countryCode": "JM_1",
"name": "Jamaica",
"flag": "https://flagcdn.com/48x36/jm.png",
"serviceCount": 62,
"startingPrice": {
"amount": 0.508725,
"currency": "EUR"
}
},
{
"countryCode": "US_1",
"name": "United States (Virtual)",
"flag": "https://flagcdn.com/48x36/us.png",
"serviceCount": 1270,
"startingPrice": {
"amount": 1.008828,
"currency": "EUR"
}
}
],
"meta": {
"page": 1,
"pageSize": 3,
"total": 170,
"totalPages": 57,
"hasNext": true
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "The request is not valid. See `fields` for what to correct.",
"requestId": "9f1c7b2e-…"
}
}{
"error": {
"code": "AUTHENTICATION_REQUIRED",
"message": "This endpoint requires an API key.",
"requestId": "9f1c7b2e-…"
}
}{
"error": {
"code": "CONFLICT",
"message": "The resource is not in a state that allows this operation.",
"requestId": "9f1c7b2e-…"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Too many requests. Retry after the interval in `Retry-After`.",
"requestId": "9f1c7b2e-…"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Something went wrong on our side.",
"requestId": "9f1c7b2e-…"
}
}{
"error": {
"code": "SERVICE_RESPONSE_INVALID",
"message": "The upstream service returned an unexpected response.",
"requestId": "9f1c7b2e-…"
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "The service is temporarily unavailable. Try again shortly.",
"requestId": "9f1c7b2e-…"
}
}List number pools GET
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.
List services GET
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).