Developers

GET/v3/getcountries

List countries with numbers in stock

Returns visible countries that currently have at least one number prefix in stock. Each entry includes the calling code, ISO code, country-level mobile and SMS flags, coordinates and a next_function link to the country's areas.

On this page
  1. Request
  2. Response
  3. Errors
  4. Availability and side effects

Start local-number discovery here. The list contains only countries that currently have numbers in stock. It does not reserve anything.

  • Pass isocode to getareas, to getstates (US and CA only) or to other.
  • next_function always points to v3/getareas/{isocode}. For the United States and Canada, you can call getstates first to narrow by state or province.
  • is_mobile and sms_coverage are country-level flags, not guarantees for every number. For the United States, is_mobile is 0 unless your account is enabled for US mobile numbers.
  • Countries with only order-only coverage are not listed. You can still call getareas or other directly for a country that is not listed.
  • Sort the list yourself if you need a particular order.

If no country qualifies, response is null and status.code is 200.

Request

Required: HTTP Basic or Bearer token (see Authentication and API responses). Failed authentication is answered with HTTP 401 before the lookup runs.

GET with no body. The only parameter is the optional pid, sent in the query string.

curl --user "$API_USER:$API_PASSWORD" 'https://api.multitel.net/v3/getcountries'
Query parameters
NameTypeRequiredDescription
pidstringNoAdvanced and optional. Narrows the list to countries flagged for one inventory source. Use only a value provided by MultiTEL, in numeric or 32-character hexadecimal form, and omit it for normal use. pid does not narrow the stock check described in the response. Unrecognised values, zero, and values this endpoint does not accept are ignored without an error; the list then covers all supported sources.

Response

Standard envelope. On success, status.code is 200, status.msg is 'Results: N', status.results is N, and response is a list of countries in no guaranteed order. Fields: countrycode (country calling code without '+'); name (country name); description (same value as name); isocode (ISO 3166-1 alpha-2 code); is_mobile (0 or 1, a country-level catalog flag, always 0 for US unless your account is enabled for US mobile numbers); sms_coverage (0 or 1, a country-level catalog flag); latitude and longitude (country coordinates); next_function ('v3/getareas/{isocode}'). A country is listed only if it is visible and at least one of its prefixes currently has stock in any inventory source. Countries whose coverage is entirely order-only (no stock) are not listed. This stock check is broader than the filters getareas applies, so a listed country can occasionally return 'No areas found' there. If no country qualifies, status.code is 200, status.msg is 'Results: 0', there is no status.results field, and response is null.

Illustrative response shape; not live account data or a current quote.

{
  "status": {
    "code": 200,
    "msg": "Results: 2",
    "results": 2
  },
  "response": [
    {
      "countrycode": "1",
      "name": "United States",
      "description": "United States",
      "isocode": "US",
      "is_mobile": 0,
      "sms_coverage": 1,
      "latitude": "38.0000",
      "longitude": "-97.0000",
      "next_function": "v3/getareas/US"
    },
    {
      "countrycode": "44",
      "name": "United Kingdom",
      "description": "United Kingdom",
      "isocode": "GB",
      "is_mobile": 1,
      "sms_coverage": 0,
      "latitude": "54.0000",
      "longitude": "-2.0000",
      "next_function": "v3/getareas/GB"
    }
  ]
}

Errors

  • 401: Authentication missing or failed. Sent with HTTP status 401 (see Authentication and API responses).

Availability and side effects

  • Lookup only. It does not reserve, order or change anything.
  • Results reflect stock at the time of the request and can change between calls.