Sign inGet a key

Global Data API · v1

Reference data for applications that cross borders.

Countries, subdivisions, phone formats, postal code rules and address examples. Everything an international checkout form needs, in one consistent shape, with the ISO codes you already index on.

Countries
249
Free tier
25K req
Cached
24h
  • 🇧🇷Brazil+55 · 27 statesBR
  • 🇯🇵Japan+81 · 47 prefecturesJP
  • 🇩🇪Germany+49 · 16 statesDE
  • 🇨🇦Canada+1 · 13 provincesCA
curl https://api.countrykit-api.com/v1/countries/BR \
  -H "Authorization: Bearer data_live_xxxxxxxxxxxxxxxx"

The datasets

Five datasets, one key

Each dataset is a separate endpoint family but shares the same authentication, quota and error contract.

Where it fits

Positioned as infrastructure

This is not a country list. It is the reference layer that keeps forms, validation and storage consistent across every market you sell in.

International checkout
Drive the country select, then swap the subdivision list, postal code mask and phone format to match the selection.
Address validation
Validate postal codes against the country pattern before a shipment is created instead of after it fails.
Onboarding and CRM
Store ISO codes rather than free text, and render localised names from translations at display time.
Localisation
Serve country and subdivision names in Portuguese, Spanish, French or German from the same records.
Driving a checkout form
// 1. Country select
const { countries } = await client.get("/v1/countries?locale=pt");

// 2. Subdivision select for the chosen country
const { subdivisions } = await client.get("/v1/subdivisions/BR?locale=pt");

// 3. Postal code mask and validation
const { postal_code } = await client.get("/v1/postal-code/BR");
const isValid = new RegExp(postal_code.pattern).test(input);

// 4. Phone placeholder and mask
const { example, calling_code } = await client.get("/v1/phone/BR");
input.placeholder = example.national;

Country, subdivision and metadata responses are cacheable for up to 24 hours, which is why this product carries the highest quotas on the platform.

Stop maintaining your own country table.

25,000 requests a month on the free plan, no payment method required, and responses you can cache for a day.