API reference / JSON:API

post/v3/trips

An itinerary, answered leg by leg

Operation
v3CreateTrip
Authentication
API key

Fans out over the same engine `/v1/check` uses — one evaluation per (passport, destination node). It does not add a trip model.

**Three things it refuses to pretend.** A sub-national region (`CA-BC`, `US-OH`) is answered `unknown`, never coerced to its country. An airport not among the ports we hold is answered `unknown`, never guessed. And a connection is evaluated as an entry, because this body cannot express whether the traveller clears immigration — which over-requires rather than under-requires.

`meta.coverage` is `full`, `partial` or `out_of_coverage`. A trip touching none of our four markets says so explicitly: it is *not* an answer that nothing is required.

Request

Body

dataobjectrequired

Responses

200A JSON:API collection of procedures, one per passport per resolved leg.
metaobjectrequired
dataJsonApiResource[]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

Example

curl
curl -X POST https://api.haavisa.com/v3/trips \
  -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.