The Orizn API gives you programmatic access to the same visa-policy dataset that powers our Chrome extension and iOS app. It answers a single, deceptively-tricky question for every passport-destination pair in the world: do I need a visa, and if so, what kind?
The API is REST over HTTPS, returns JSON, and uses bearer-token authentication. There are no SOAP envelopes, no XML, and no surprise rate-limit handshakes β just one endpoint that takes two ISO-3166 codes and gives you everything you need to build a great travel UX.
What you can build
A few of the integrations our customers have shipped on top of the Orizn API:
- Flight-search overlays β show a visa badge next to every destination in your results list (this is exactly what our Chrome extension does).
- OTA booking flowsβ surface visa requirements at checkout so travellers don't book a trip they can't take.
- Corporate-travel platformsβ pre-flight checks for duty-of-care: refuse to book a trip if the traveller's passport requires a visa they don't have time to obtain.
- Loyalty / credit-card conciergesβ answer the customer's βdo I need a visa for...β chat question in 80Β ms instead of 8Β minutes.
- Policy-change alerts β subscribe via webhooks and push notifications when a destination changes its visa policy.
Quickstart
The fastest path from zero to your first visa lookup is the five-minute Quickstart. It walks you through obtaining an API key, signing your first request, and parsing the response. If you just want to see the shape of a call, here it is:
curl https://api.orizn.app/visa \
-H "Authorization: Bearer $ORIZN_API_KEY" \
-G \
--data-urlencode "passport=FRA" \
--data-urlencode "destination=JPN"Replace $ORIZN_API_KEY with a key from your dashboard. The response is a JSON object β see the API reference for the full schema.
Popular endpoints
Orizn intentionally exposes a small, opinionated surface. Most integrations only ever touch the visa-lookup endpoint:
| Method | Path | Purpose |
|---|---|---|
GET | /visa | Look up the visa requirement for a passport-destination pair. Reference. |
POST | /webhooks | Subscribe to policy-change events for specific destinations. Reference. |
GET | /destinations | List supported destination ISO codes (rarely used directly β most clients hard-code the ISO-3166 alpha-3 set). |
Official SDKs
We're shipping first-party SDKs for the three languages most of our customers integrate from. They handle authentication, retries, and response typing so you don't have to.
- JavaScript / TypeScript β works in Node 18+ and modern browsers.
- Python β sync + async clients on top of
httpx. - Go β context-aware client with built-in retry.
See the SDKs page for install instructions and the community-maintained list.
Help & support
Stuck? Three ways to get unstuck, in rough order of speed:
- Check the error reference if you've hit a non-2xx response.
- Read the extension FAQ β most integration questions are answered there.
- Email [email protected]. Include your API key prefix (first 8 characters, never the whole key) and the
x-orizn-request-idheader from your failed response, and we'll have an answer the same business day.