DEVELOPERS

Documentation

Integrate IP lookups and country controls into your application.

Countries, languages and calling codes

These GET endpoints need no key and use no lookup credits. The metadata limit is 120 requests per minute per network prefix. Cache the list instead of fetching it for each visitor.

Field or endpointMeaning
/v1/countriescountries array and attributions
/v1/countries/{code}One country object
/v1/countries/{code}/languagescode and languages array
/v1/countries/{code}/calling-codescode and calling_codes array
curl --max-time 10 'https://orig.ooo/v1/countries/GB'
curl --max-time 10 'https://orig.ooo/v1/countries/GB/languages'
curl --max-time 10 'https://orig.ooo/v1/countries/GB/calling-codes'

Fields and errors

Codes are case-insensitive two-letter ISO codes. A country includes code, name, calling_codes and languages. Language entries contain tag, official_status and population_percent where available. Calling codes such as +44 are strings and can be shared. The bundle covers 249 ISO territories. These metadata languages are not a visitor’s preference.

Unknown codes return 404 country_not_found. Preserve attribution from the full metadata response.

Use metadata without a location lookup

const response = await fetch('https://orig.ooo/v1/countries/GB');
if (!response.ok) throw new Error('Country metadata unavailable');
const country = await response.json();
const callingCodes = country.calling_codes; // array of strings
const rankedInput = country.languages;      // language records
// A country can have multiple codes/languages; do not assume one value.

The manual widgets bundle the same metadata and can run from your own server without IP detection. Language metadata describes a territory; the preselector uses its population ranking to suggest a code while your application preserves saved visitor preferences.

YOUR NEXT BUILD STARTS HERE

Get your free API key.

1,000 monthly credits. No credit card required.

Account services are not connected in this preview. Explore the dashboard or download the implementation from your workspace.
Read the integration guide

Production accounts require verified email. Google OAuth and Paddle need deployment credentials.