API reference / JSON:API
get
/v3/countriesCountries, 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]querystringfilter[continent]querystringfilter[isoAlpha3][nin]querystringincludequerystringlanguagequerystringResponses
200A JSON:API collection document.
metaobjectrequireddataJsonApiCountryResource[]required400A 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[]required401No key, an unknown key, a revoked key, or an inactive tenant.
errorsobject[]required403The key is valid but does not hold `reference:read`.
errorsobject[]required404No such resource.
errorsobject[]requiredExample
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.