API v3

GET /number_offers

Numbers you can order in a country, with their prepaid price in the currency you choose.

Prices are clean figures in the currency asked for (currency, else your account's own), converted at today's rate: first_payment (first month plus any one-off setup fee) is taken from your prepaid balance in that currency when you order. Premium rate and shared cost numbers are never offered.

Addresshttps://api.voicepro.plus/v3/number_offers
Key permissionread

Fields

NameInType
country *querystringISO 3166 alpha-2, for example GB.
categoryquerymobile | landline | tollfree | national
currencyquerystringShow prices in this currency (one we charge in); default your account's own currency.
limitqueryinteger
cursorquerystringnext_cursor from the previous page.

* required

Example

curl -X GET "https://api.voicepro.plus/v3/number_offers?country=GB&category=landline" \
  -H "Authorization: Bearer vpkey_YOUR_KEY"
Response
{
  "object": "list",
  "data": [
    {
      "object": "number_offer",
      "id": "nof_m3xk7q2zrw4pdn6hc5tbvfya",
      "country": "GB",
      "prefix": "4420",
      "area_name": "London",
      "category": "landline",
      "channels_included": 2,
      "monthly_price": {
        "amount": 150,
        "currency": "USD"
      },
      "setup_price": {
        "amount": 0,
        "currency": "USD"
      },
      "first_payment": {
        "amount": 150,
        "currency": "USD"
      },
      "data_as_of": "2026-10-28T06:00:00Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Errors

Every error has the same shape: { "error": { "type", "code", "message", "param", "request_id" } }.

missing_api_key401: No Authorization header, or not a Bearer key.
invalid_api_key401: The key is not recognised.
api_key_revoked401: The key was revoked in the portal.
api_key_expired401: The key passed the expiry date set on it.
missing_scope403: The key lacks the scope this endpoint needs; param names the scope.
ip_not_allowed403: The key has an IP allowlist and this request came from elsewhere.
account_not_active403: The workspace is suspended or closed.
invalid_parameter400: A query parameter or body field has a bad value; param names it.
missing_parameter400: A required parameter or field is missing; param names it.
unknown_parameter400: A parameter or field that this endpoint does not accept; param names it.
invalid_json400: The body is not valid JSON.
invalid_cursor400: The cursor is malformed, expired or from a different list.
invalid_time_range400: from or to is not an ISO 8601 date-time, or to is not after from.
range_too_long400: The time range is longer than this endpoint allows (stated in the endpoint).
rate_limited429: Too many requests for this key or for the whole account (the message says which); wait Retry-After seconds.
upstream_unavailable503: A network partner or data service behind this endpoint is unavailable.
network_action_unavailable503: This network action is not switched on for the account yet (for example SIM suspend).
internal_error500: Our fault. Quote the request_id to support.
service_unavailable503: API v3 itself is briefly unavailable (for example a configuration problem on our side); the rest of VoicePro is unaffected. Retry later.

More in Numbers