Send a passport code
Use an ISO alpha-3 passport code and, when needed, a destination and travel date.
Live passport power, mobility scores, visa rules, and entry requirements—delivered through one developer-first API.
One-time license · Partner-led onboarding · Built for production
{
"passport": {
"code": "JPN",
"name": "Japan"
},
"mobility_score": 193,
"global_rank": 1,
"access": {
"visa_free": 141,
"visa_on_arrival": 42,
"eta": 7,
"visa_required": 13
},
"updated_at": "2026-08-10T09:00:00Z"
}
Supporting travel experiences used by teams at
Normalize the world’s entry rules into one reliable response—clear enough for travelers and structured enough for your stack.
Use an ISO alpha-3 passport code and, when needed, a destination and travel date.
Receive normalized categories, stay limits, document notes, and rule context.
Use the response in discovery, booking, check-in, support, or operations workflows.
Predictable REST endpoints, conventional HTTP responses, and useful errors keep integration work focused.
Read the documentationcurl "https://api.passport-api.com/v1/entry?passport=USA&destination=JPN" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"
# 200 OK
{
"passport": "USA",
"destination": "JPN",
"access": "visa_free",
"max_stay_days": 90,
"passport_validity_months": 6
}
$client = new GuzzleHttp\Client();
$response = $client->get(
'https://api.passport-api.com/v1/entry',
[
'headers' => [
'Authorization' => 'Bearer ' . $token,
'Accept' => 'application/json',
],
'query' => [
'passport' => 'USA',
'destination' => 'JPN',
],
]
);
const response = await fetch(
'https://api.passport-api.com/v1/entry?passport=USA&destination=JPN',
{
headers: {
Authorization: `Bearer ${token}`,
Accept: 'application/json'
}
}
);
const entryRule = await response.json();
A one-time licensing fee for production access. Sales and onboarding are handled exclusively through our technology partners.