API reference / JSON:API

get/v3/countries

Countries, in JSON:API

Operation
v3ListCountries
Authentication
API key

The country grid with its demonym — `citizenship`, in their vocabulary. Same data as `/v1/countries`, in the envelope another provider’s clients already parse, so a partner moving to us can change the base URL and nothing else.

**Fields deliberately absent:** their country object also carries `visaStatus`, `entryStatus`, `exitStatus`, `lastUpdatedAt` and `lastCheckedAt`. We hold no per-country status or verification date, and a fabricated `lastCheckedAt` is the one field a partner would read as proof the answer is fresh. Omitted, never defaulted.

Request

Parameters

filter[country]querystring
filter[continent]querystring
filter[isoAlpha3][nin]querystring
includequerystring
languagequerystring

Responses

200A JSON:API collection document.
metaobjectrequired
dataJsonApiCountryResource[]required
400A malformed parameter, or a filter/include/language this endpoint cannot honour. Refused rather than ignored: an ignored filter returns a full answer that looks filtered.
errorsobject[]required
401No key, an unknown key, a revoked key, or an inactive tenant.
errorsobject[]required
403The key is valid but does not hold `reference:read`.
errorsobject[]required
404No such resource.
errorsobject[]required

Example

curl
curl -X GET https://api.haavisa.com/v3/countries \
  -H "Authorization: Bearer $HAAVISA_API_KEY"

More in JSON:API

Something unclear? The eligibility guide explains the model behind the answers; the errors guide covers the envelope.