[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"api-page:visa-requirements":3},{"status":4,"api":5,"seo":240},"success",{"blocked":6,"description":7,"about":8,"stats":9,"name":11,"title":12,"slug":13,"logo":14,"created_at":15,"user":16,"endpoint_groups":19,"faqs":173,"periodic_plans":174,"payasyougo_plans":227},false,"Most up-to-date visa requirements with color-coded status indicators covers 200 passports and 211 destinations with accurate, daily-updated data. Custom Passport index, passport rank included. Enhance your travel apps, booking platforms, and immigration tools. Flexible plans, including a free tier.","# 🌍 Travel Buddy AI – Visa Requirements API\n\nMost up-to-date visa requirements with structured rule breakdowns, color-coded map visualization, and customizable passport ranking.  \nSupports **200 passports** and **211 destinations**, updated daily.  \nIdeal for **travel apps, booking engines, and immigration platforms**.  \nFlexible plans available, including a **free tier**.\n\n---\n\n## 🔑 Authentication\n\nAll requests require the following headers:\n\n```bash\n\"X-Api-Key: YOUR_API_KEY\"\n````\n\n---\n\n## 🚀 API Overview\n\n### Version 2 (Recommended)\n\n* **POST `/v2/visa/check`** – Structured visa policy payload with full rule breakdown (primary, secondary, registration, exception).\n* **POST `/v2/visa/map`** – Returns grouped country codes by visa color category (e.g., `{\"green\":\"CA,US\"}`).\n* **POST `/v2/passport/rank/custom`** – Generates custom passport rankings using user-defined category weights.\n* **GET `/v2/health`** – Versioned health probe.\n\n### Version 1 (Legacy)\n\n* **POST `/v1/visa/check`** – Backward-compatible version for older clients.\n* **POST `/v1/visa/map`** – Returns color-coded map data for a passport.\n* **GET `/v1/health`** – Basic health check.\n* **POST `/` (legacy root)** – Auto-routes based on the `request` body parameter for backward compatibility.\n\n---\n\n## 📌 Example: Visa Check (v2)\n\n### Endpoint\n\n**POST** `/v2/visa/check`\n\nThe endpoint provides a detailed breakdown of **visa and entry requirements** for one passport–destination pair.\nIt returns structured data for:\n\n* **Passport & destination metadata** – names, continent, capital, currency, population, area, exchange info, etc.\n* **Mandatory registration** – pre-arrival or online forms (e.g., “e-Arrival”).\n* **Visa rules** – includes both primary and secondary policies (e.g., visa-free, visa on arrival, eVisa, eTA).\n* **Exception rules** – overrides that apply under specific conditions (e.g., travelers holding a U.S. visa).\n\n### Request\n\n```bash\ncurl -X POST https://iisbh.jojapi.net/v2/visa/check \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-JoJAPI-Key: ${JoJ-API-Key}\" \\\n  -d '{\"passport\":\"CN\",\"destination\":\"ID\"}'\n```\n\n### Example Response\n\n```json\n{\n  \"data\": {\n    \"passport\": { \"code\": \"CN\", \"name\": \"China\",\"currency_code\": \"CNY\" },\n    \"destination\": {\n      \"code\": \"ID\", \"name\": \"Indonesia\", \"continent\": \"Asia\", \"capital\": \"Jakarta\",\n      \"currency_code\": \"IDR\", \"currency\": \"Indonesian Rupiah\", \"exchange\": \"0.000425\",\n      \"passport_validity\": \"3 months beyond the period of stay\",\n      \"phone_code\": \"+62\", \"timezone\": \"+08:00\", \"population\": 277329163,\n      \"area_km2\": 1916907, \"embassy_url\": \"https://www.embassypages.com/china#titlePlaceholder2\"\n    },\n    \"mandatory_registration\": {\n      \"name\": \"e-Arrival\", \"color\": \"yellow\",\n      \"link\": \"https://link.travel-buddy.ai/?link=76E321T3\"\n    },\n    \"visa_rules\": {\n      \"primary_rule\": { \"name\": \"Visa on arrival\", \"duration\": \"30 days\", \"color\": \"blue\" },\n      \"secondary_rule\": {\n        \"name\": \"eVisa\", \"duration\": \"30 days\", \"color\": \"blue\",\n        \"link\": \"https://link.travel-buddy.ai/?link=76E323T2\"\n      }\n    }\n  },\n  \"meta\": { \"version\": \"2.0\", \"language\": \"en\", \"generated_at\": \"2025-09-28T11:47:00+00:00\" }\n}\n```\n\n---\n\n### How to Display Visa Rules\n\n| #   | Situation                 | Condition                   | Display                            | Duration Used           | Color Used         |\n\n| --- | ------------------------- | --------------------------- | ---------------------------------- | ----------------------- | ------------------ |\n\n| 1.1 | Only primary exists       | No `secondary_rule`         | **primary_rule – XXX days**        | primary_rule.duration   | primary_rule.color |\n\n| 1.2 | Both exist with durations | Both durations present      | **primary / secondary – XXX days** | primary_rule.duration   | primary_rule.color |\n\n| 1.3 | Primary has no duration   | Only secondary has duration | **primary / secondary – XXX days** | secondary_rule.duration | primary_rule.color |\n\n\n#### 🟨 `exception_rule`\n\nExceptions override the main visa rule when specific traveler criteria apply (e.g., U.S. visa holders, group tours, or transit waivers).\nAlways show these as separate notes — do **not** alter the primary rule color.\n\n#### 🟦 `mandatory_registration`\n\nThese are **free but mandatory** pre-arrival forms such as “e-Arrival” or “ED card.”\nThey are **not visas** and do not affect visa-free eligibility.\n\n---\n\n## 🗺️ Visa Color Map (v2)\n\n### Endpoint\n\n**POST** `/v2/visa/map`\n\nReturns a color-coded overview of visa requirements for **all destinations** from the perspective of one passport.\nUseful for creating visual maps or grouped country lists.\n\n### Request\n\n```bash\ncurl -X POST https://iisbh.jojapi.net/v2/visa/map \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-JoJAPI-Key: ${JoJ-API-Key}\" \\\n  -d '{\"passport\":\"CN\"}'\n```\n\n### Example Response\n\n```json\n{\n  \"data\": {\n    \"passport\": \"CN\",\n    \"colors\": {\n      \"red\": \"AD,AF,AR,AT,...,YE\",\n      \"green\": \"AE,AG,AL,AM,...,ZM\",\n      \"blue\": \"AI,BD,BF,BH,...,ZW\",\n      \"yellow\": \"CI,KE,KN,LK,SC\"\n    }\n  },\n  \"meta\": { \"version\": \"2.0\", \"language\": \"en\", \"generated_at\": \"2025-09-28T11:56:37+00:00\" }\n}\n```\n\n### Color Legend\n\n| Color         | Meaning                 |\n\n| ------------- | ----------------------- |\n\n| 🟩 **green**  | Visa-free               |\n\n| 🟦 **blue**   | Visa on arrival / eVisa |\n\n| 🟨 **yellow** | eTA                     |\n\n| 🟥 **red**    | Visa required  / Online Visa required           |\n\n\n---\n\n## 🏅 Custom Passport Ranking (v2)\n\n### Endpoint\n\n**POST** `/v2/passport/rank/custom`\n\nCalculates global passport rankings using **custom weights** that you define per visa category.\n\n### Request\n\n```bash\ncurl -X POST https://iisbh.jojapi.net/v2/passport/rank/custom \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-JoJAPI-Key: ${JoJ-API-Key}\" \\\n  -d '{\"weights\":{\"Visa-free\":2,\"Visa on arrival\":1,\"Visa required\":0,\"eVisa\":1,\"eTA\":1,\"Freedom of movement\":3,\"Not admitted\":-1}}'\n```\n\n### Example Response\n\n```json\n{\n  \"data\": [\n    {\n      \"rank\": 1, \"score\": 218.0,\n      \"passport\": { \"code\": \"SE\", \"name\": \"Sweden\" },\n      \"categories\": { \"Visa-free\": 120, \"Visa on arrival\": 30, \"Visa required\": 10, \"eVisa\": 5, \"eTA\": 2, \"Freedom of movement\": 12, \"Not admitted\": 1 }\n    },\n    {\n      \"rank\": 2, \"score\": 205.0,\n      \"passport\": { \"code\": \"BG\", \"name\": \"Bulgaria\" },\n      \"categories\": { \"Visa-free\": 95, \"Visa on arrival\": 25, \"Visa required\": 15, \"eVisa\": 8, \"eTA\": 1, \"Freedom of movement\": 5, \"Not admitted\": 2 }\n    }\n  ],\n  \"meta\": { \"version\": \"2.0\", \"language\": \"en\", \"generated_at\": \"2024-09-25T22:47:00Z\" }\n}\n```\n\n### Parameters\n\n| Field                 | Type   | Description                                      |\n\n| --------------------- | ------ | ------------------------------------------------ |\n\n| `weights`             | object | Weight configuration for each visa rule category |\n\n| `Visa-free`           | number | Weight for visa-free destinations                |\n\n| `Visa on arrival`     | number | Weight for visa on arrival destinations          |\n\n| `Visa required`       | number | Weight for visa-required destinations            |\n\n| `eVisa`               | number | Weight for eVisa destinations                    |\n\n| `eTA`                 | number | Weight for eTA destinations                      |\n\n| `Freedom of movement` | number | Weight for unrestricted movement                 |\n\n| `Not admitted`        | number | Negative or zero weight for denied destinations  |\n\n\n---\n\n## ⚠️ Error Codes\n\n| Code | Meaning |\n\n|------|---------|\n\n| 400  | Other domain errors (rare) |\n\n| 401  | Authentication or quota issues |\n\n| 404  | Resource not found (no visa/map data) |\n\n| 405  | Wrong HTTP method (root helper route) |\n\n| 422  | Validation problems – missing/invalid parameters, same passport/destination, bad JSON |\n\n| 500  | Unhandled server error (logged internally) |\n\n\n\n---\n\n## 🆘 Support\n\n📧 **Contact:** [info@travel-buddy.ai](mailto:info@travel-buddy.ai)\nFor technical questions, API key help, or data coverage inquiries.",{"score":10},"2.11","Visa Requirements","Visa Requirements API","visa-requirements","https://cdn.jojapi.com/api/caded822-9872-4150-8b67-75a2ba487f37","2025-09-05 12:31:58",{"nick":17,"name":18},"travelbuddy","TravelBuddy",[20,133],{"endpoints":21,"name":132,"description":30,"ungrouped":6,"open":6},[22,50,64,84,100,116],{"blocked":6,"credits":23,"flexible_credits_description":24,"consumptions":25,"description":31,"method":32,"name":33,"url_path":34,"root_url":35,"parameters":36,"responses":49,"result_stats":24},0,null,[26],{"name":27,"slug":28,"cost":29,"label":30,"avg":24},"Credits","credits","0","","List of passport country codes","GET","Passports","/v2/passports","https://travelbuddy.jojapi.net",{"url":37,"header":38,"post":46,"body":47,"path":48},[],[39],{"key":40,"is_auth":41,"example":42,"example_disabled":41,"example_type":43,"name":44,"description":42,"required":41,"always_error":45},"X-JoJAPI-Key",true,"You must log in to get API key","string","JoJ API Key","Please log in to get API key",[],[],[],[],{"blocked":6,"credits":23,"flexible_credits_description":24,"consumptions":51,"description":53,"method":32,"name":54,"url_path":55,"root_url":35,"parameters":56,"responses":63,"result_stats":24},[52],{"name":27,"slug":28,"cost":29,"label":30,"avg":24},"List of destinations country codes","Destinations","/v2/destinations",{"url":57,"header":58,"post":60,"body":61,"path":62},[],[59],{"key":40,"is_auth":41,"example":42,"example_disabled":41,"example_type":43,"name":44,"description":42,"required":41,"always_error":45},[],[],[],[],{"blocked":6,"credits":65,"flexible_credits_description":24,"consumptions":66,"description":69,"method":70,"name":71,"url_path":72,"root_url":35,"parameters":73,"responses":83,"result_stats":24},1,[67],{"name":27,"slug":28,"cost":68,"label":30,"avg":24},"1","Make your custom passport index/rank","POST","CustomPassportRank","/v2/passport/rank/custom",{"url":74,"header":75,"post":77,"body":78,"path":82},[],[76],{"key":40,"is_auth":41,"example":42,"example_disabled":41,"example_type":43,"name":44,"description":42,"required":41,"always_error":45},[],[79],{"key":24,"example":80,"example_disabled":6,"example_type":43,"value_type":43,"enum_values":24,"default_value":30,"required":6,"name":24,"description":81},"{\"weights\":{\"Visa-free\":2,\"Visa on arrival\":1,\"Visa required\":0,\"eVisa\":1,\"eTA\":1,\"Tourist card\":0,\"Freedom of movement\":3,\"Not admitted\":-1}}","''",[],[],{"blocked":6,"credits":65,"flexible_credits_description":24,"consumptions":85,"description":87,"method":70,"name":88,"url_path":89,"root_url":35,"parameters":90,"responses":99,"result_stats":24},[86],{"name":27,"slug":28,"cost":68,"label":30,"avg":24},"Return the color for the primary visa rule","VisaMap","/v2/visa/map",{"url":91,"header":92,"post":94,"body":95,"path":98},[],[93],{"key":40,"is_auth":41,"example":42,"example_disabled":41,"example_type":43,"name":44,"description":42,"required":41,"always_error":45},[],[96],{"key":24,"example":97,"example_disabled":6,"example_type":43,"value_type":43,"enum_values":24,"default_value":30,"required":6,"name":24,"description":81},"{\"passport\":\"CN\"}",[],[],{"blocked":6,"credits":101,"flexible_credits_description":24,"consumptions":102,"description":105,"method":70,"name":106,"url_path":107,"root_url":35,"parameters":108,"responses":115,"result_stats":24},1000,[103],{"name":27,"slug":28,"cost":104,"label":30,"avg":24},"1000","Show data for map for all passports","VisaMapAll","/v2/visa/mapall",{"url":109,"header":110,"post":112,"body":113,"path":114},[],[111],{"key":40,"is_auth":41,"example":42,"example_disabled":41,"example_type":43,"name":44,"description":42,"required":41,"always_error":45},[],[],[],[],{"blocked":6,"credits":65,"flexible_credits_description":24,"consumptions":117,"description":119,"method":70,"name":120,"url_path":121,"root_url":35,"parameters":122,"responses":131,"result_stats":24},[118],{"name":27,"slug":28,"cost":68,"label":30,"avg":24},"Show visa rules for passport -> destination","VisaRequirements","/v2/visa/check",{"url":123,"header":124,"post":126,"body":127,"path":130},[],[125],{"key":40,"is_auth":41,"example":42,"example_disabled":41,"example_type":43,"name":44,"description":42,"required":41,"always_error":45},[],[128],{"key":24,"example":129,"example_disabled":6,"example_type":43,"value_type":43,"enum_values":24,"default_value":30,"required":6,"name":24,"description":81},"{\"passport\":\"CN\",\"destination\":\"AE\"}",[],[],"V2",{"endpoints":134,"name":172,"description":30,"ungrouped":6,"open":6},[135,157],{"blocked":6,"credits":65,"flexible_credits_description":24,"consumptions":136,"description":138,"method":70,"name":139,"url_path":140,"root_url":35,"parameters":141,"responses":156,"result_stats":24},[137],{"name":27,"slug":28,"cost":68,"label":30,"avg":24},"Show the visa requirements for Passport holder","VisaCheck","/",{"url":142,"header":143,"post":145,"body":154,"path":155},[],[144],{"key":40,"is_auth":41,"example":42,"example_disabled":41,"example_type":43,"name":44,"description":42,"required":41,"always_error":45},[146,150],{"key":147,"example":148,"example_disabled":6,"example_type":43,"value_type":43,"enum_values":24,"default_value":30,"required":6,"name":147,"description":149},"passport","US","ISO Alpha-2 country code",{"key":151,"example":152,"example_disabled":6,"example_type":43,"value_type":43,"enum_values":24,"default_value":30,"required":6,"name":153,"description":149},"destination","DE","Destination",[],[],[],{"blocked":6,"credits":65,"flexible_credits_description":24,"consumptions":158,"description":160,"method":70,"name":161,"url_path":162,"root_url":35,"parameters":163,"responses":171,"result_stats":24},[159],{"name":27,"slug":28,"cost":68,"label":30,"avg":24},"Show the color of visa requirements for a Passport holder.","MapColor","/map",{"url":164,"header":165,"post":167,"body":169,"path":170},[],[166],{"key":40,"is_auth":41,"example":42,"example_disabled":41,"example_type":43,"name":44,"description":42,"required":41,"always_error":45},[168],{"key":147,"example":148,"example_disabled":6,"example_type":43,"value_type":43,"enum_values":24,"default_value":30,"required":6,"name":30,"description":30},[],[],[],"V1",[],[175,189,199,208,217],{"type":176,"slug":177,"blocked":6,"period":178,"currency":179,"pricing":180,"rate_limit":184,"objects":185,"name":188},"periodic","zg8b5eop7a6r5kd2t6ynrtjp","1 MONTH","usd",{"price":23,"credits":181,"past_due_timeout_num":182,"past_due_timeout_type":183},100,3,"DAY",{"max_requests":65,"time_window":65},[186],{"id":187,"name":27,"slug":28,"quota":181,"tiers":24},"n04eeae82","100 Credits",{"type":176,"slug":190,"blocked":6,"period":178,"currency":179,"pricing":191,"rate_limit":194,"objects":196,"name":198},"4pozvfb2rqrd8fap3gmbfdh1",{"price":192,"credits":193,"past_due_timeout_num":182,"past_due_timeout_type":183},4.49,3000,{"max_requests":195,"time_window":65},5,[197],{"id":187,"name":27,"slug":28,"quota":193,"tiers":24},"3,000 Credits",{"type":176,"slug":200,"blocked":6,"period":178,"currency":179,"pricing":201,"rate_limit":204,"objects":205,"name":207},"9p3otr3z2j7z6yall8zts10p",{"price":202,"credits":203,"past_due_timeout_num":182,"past_due_timeout_type":183},14.49,30000,{"max_requests":24,"time_window":24},[206],{"id":187,"name":27,"slug":28,"quota":203,"tiers":24},"30,000 Credits",{"type":176,"slug":209,"blocked":6,"period":178,"currency":179,"pricing":210,"rate_limit":213,"objects":214,"name":216},"ktdfh4busgaej9z50ocr2d46",{"price":211,"credits":212,"past_due_timeout_num":182,"past_due_timeout_type":183},49.49,1200000,{"max_requests":24,"time_window":24},[215],{"id":187,"name":27,"slug":28,"quota":212,"tiers":24},"1,200,000 Credits",{"type":176,"slug":218,"blocked":6,"period":219,"currency":179,"pricing":220,"rate_limit":223,"objects":224,"name":226},"zmcty4kihbto1exoo7mwdfef","1 YEAR",{"price":221,"credits":222,"past_due_timeout_num":182,"past_due_timeout_type":183},494.99,14400000,{"max_requests":24,"time_window":24},[225],{"id":187,"name":27,"slug":28,"quota":222,"tiers":24},"14,400,000 Credits",[228],{"type":229,"slug":230,"blocked":6,"period":178,"currency":179,"pricing":231,"rate_limit":234,"objects":235,"name":239},"payasyougo","jn9n2u33aa0adoxges79qaam",[232],{"start":23,"unit_price":233,"start_text":29},0.003,{"max_requests":195,"time_window":65},[236],{"id":187,"name":27,"slug":28,"quota":24,"tiers":237},[238],{"start":23,"unit_price":233,"start_text":29},"Pay as you go",{"canonical":241,"page_title":242,"meta":243},"https://jojapi.com/hub/api/visa-requirements","Visa Requirements API Documentation & Playground - JoJ API",{"description":7,"keywords":244},"API,API Documentation,API Playground,Plans & Pricing,Visa Requirements,travelbuddy"]