Border rules in. Clean JSON out.
Make your first request.
All API requests use the base URL https://api.passport-api.com/v1. Request a passport profile with its ISO 3166-1 alpha-3 code and receive structured, AI-ready data suited to applications, agents, and automated travel workflows.
curl "https://api.passport-api.com/v1/passports/USA" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"
Authenticate with a bearer token.
Include your production token in the HTTP Authorization header on every request.
Authorization: Bearer YOUR_TOKEN
Accept: application/json
Tokens identify your integration and should be stored in an encrypted secret manager or protected server environment. If a token is exposed, contact our support team.
Resolve passport power and access totals.
The passport profile endpoint provides a normalized snapshot of mobility, rank, and destinations by access category.
{
"data": {
"passport": {
"code": "USA",
"name": "United States"
},
"mobility_score": 187,
"global_rank": 8,
"access_totals": {
"visa_free": 118,
"visa_on_arrival": 46,
"eta": 8,
"evisa": 15,
"visa_required": 12
},
"updated_at": "03/03/2026"
}
}
Resolve a passport and destination pair.
Pass passport and destination as ISO alpha-3 codes. Add an ISO date when you want the response evaluated in trip context.
{
"data": {
"passport": "USA",
"destination": "JPN",
"travel_date": "03/03/2026",
"access": "visa_free",
"max_stay_days": 90,
"passport_validity_months": 6,
"notes": [
"Entry conditions may depend on onward travel and purpose."
],
"checked_at": "03/03/2026"
}
}
Conventional status codes.
Successful responses return a data object. Errors return a stable error type, human-readable message, and request identifier.
| Status | Meaning | Typical action |
|---|---|---|
| 200 | Request succeeded | Use the response data. |
| 400 | Invalid parameters | Validate country codes and date format. |
| 401 | Authentication failed | Check the bearer token. |
| 404 | Resource not found | Confirm the requested resource code. |
| 429 | Request limit reached | Back off and retry with jitter. |
| 500 | Unexpected service error | Retry safely and retain the request ID. |
Errors that are useful in production.
{
"error": {
"type": "invalid_request",
"message": "destination must be an ISO alpha-3 code",
"param": "destination",
"request_id": "req_01J5PA55P0RT"
}
}
Example requests and schemas on this page illustrate the API shape and may be refined during technical onboarding for your licensed integration.
Ready to build with border intelligence?
Production access is licensed through our technology partners for a one-time fee and includes lifetime integration support.