[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"api-page:visa-requirements":3},{"status":4,"api":5,"seo":257},"success",{"blocked":6,"description":7,"about":8,"stats":9,"name":11,"title":12,"slug":13,"logo":14,"created_at":15,"agent":16,"user":28,"endpoint_groups":31,"faqs":183,"features":184,"periodic_plans":185,"payasyougo_plans":243},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.12","Visa Requirements","Visa Requirements API","visa-requirements","https://cdn.jojapi.com/api/caded822-9872-4150-8b67-75a2ba487f37","2025-09-05 12:31:58",{"enabled":17,"closed":18,"request_enabled":6,"catalog_url":19,"discovery_url":20,"directory_url":21,"rails":22,"networks":25,"docs":27},true,null,"https://travelbuddy.jojapi.net/_jojapi/agent/plans","https://travelbuddy.jojapi.net/.well-known/x402","https://agents.jojapi.net/apis/visa-requirements",[23,24],"x402","mpp",[26],"eip155:8453","https://docs.jojapi.com/consumers/agents",{"nick":29,"name":30,"verified":6,"website":18},"travelbuddy","TravelBuddy",[32,143],{"endpoints":33,"name":142,"description":41,"ungrouped":6,"open":6},[34,60,74,94,110,126],{"blocked":6,"hidden":6,"agent_price":18,"credits":35,"flexible_credits_description":18,"consumptions":36,"description":42,"method":43,"name":44,"url_path":45,"root_url":46,"parameters":47,"responses":59,"result_stats":18},0,[37],{"name":38,"slug":39,"cost":40,"label":41,"avg":18},"Credits","credits","0","","List of passport country codes","GET","Passports","/v2/passports","https://travelbuddy.jojapi.net",{"url":48,"header":49,"post":56,"body":57,"path":58},[],[50],{"key":51,"is_auth":17,"example":52,"example_disabled":17,"example_type":53,"name":54,"description":52,"required":17,"always_error":55},"X-JoJAPI-Key","You must log in to get API key","string","JoJ API Key","Please log in to get API key",[],[],[],[],{"blocked":6,"hidden":6,"agent_price":18,"credits":35,"flexible_credits_description":18,"consumptions":61,"description":63,"method":43,"name":64,"url_path":65,"root_url":46,"parameters":66,"responses":73,"result_stats":18},[62],{"name":38,"slug":39,"cost":40,"label":41,"avg":18},"List of destinations country codes","Destinations","/v2/destinations",{"url":67,"header":68,"post":70,"body":71,"path":72},[],[69],{"key":51,"is_auth":17,"example":52,"example_disabled":17,"example_type":53,"name":54,"description":52,"required":17,"always_error":55},[],[],[],[],{"blocked":6,"hidden":6,"agent_price":18,"credits":75,"flexible_credits_description":18,"consumptions":76,"description":79,"method":80,"name":81,"url_path":82,"root_url":46,"parameters":83,"responses":93,"result_stats":18},1,[77],{"name":38,"slug":39,"cost":78,"label":41,"avg":18},"1","Make your custom passport index/rank","POST","CustomPassportRank","/v2/passport/rank/custom",{"url":84,"header":85,"post":87,"body":88,"path":92},[],[86],{"key":51,"is_auth":17,"example":52,"example_disabled":17,"example_type":53,"name":54,"description":52,"required":17,"always_error":55},[],[89],{"key":18,"example":90,"schema":18,"example_disabled":6,"example_type":53,"value_type":53,"enum_values":18,"default_value":41,"required":6,"name":18,"description":91},"{\"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,"hidden":6,"agent_price":18,"credits":75,"flexible_credits_description":18,"consumptions":95,"description":97,"method":80,"name":98,"url_path":99,"root_url":46,"parameters":100,"responses":109,"result_stats":18},[96],{"name":38,"slug":39,"cost":78,"label":41,"avg":18},"Return the color for the primary visa rule","VisaMap","/v2/visa/map",{"url":101,"header":102,"post":104,"body":105,"path":108},[],[103],{"key":51,"is_auth":17,"example":52,"example_disabled":17,"example_type":53,"name":54,"description":52,"required":17,"always_error":55},[],[106],{"key":18,"example":107,"schema":18,"example_disabled":6,"example_type":53,"value_type":53,"enum_values":18,"default_value":41,"required":6,"name":18,"description":91},"{\"passport\":\"CN\"}",[],[],{"blocked":6,"hidden":6,"agent_price":18,"credits":111,"flexible_credits_description":18,"consumptions":112,"description":115,"method":80,"name":116,"url_path":117,"root_url":46,"parameters":118,"responses":125,"result_stats":18},1000,[113],{"name":38,"slug":39,"cost":114,"label":41,"avg":18},"1000","Show data for map for all passports","VisaMapAll","/v2/visa/mapall",{"url":119,"header":120,"post":122,"body":123,"path":124},[],[121],{"key":51,"is_auth":17,"example":52,"example_disabled":17,"example_type":53,"name":54,"description":52,"required":17,"always_error":55},[],[],[],[],{"blocked":6,"hidden":6,"agent_price":18,"credits":75,"flexible_credits_description":18,"consumptions":127,"description":129,"method":80,"name":130,"url_path":131,"root_url":46,"parameters":132,"responses":141,"result_stats":18},[128],{"name":38,"slug":39,"cost":78,"label":41,"avg":18},"Show visa rules for passport -> destination","VisaRequirements","/v2/visa/check",{"url":133,"header":134,"post":136,"body":137,"path":140},[],[135],{"key":51,"is_auth":17,"example":52,"example_disabled":17,"example_type":53,"name":54,"description":52,"required":17,"always_error":55},[],[138],{"key":18,"example":139,"schema":18,"example_disabled":6,"example_type":53,"value_type":53,"enum_values":18,"default_value":41,"required":6,"name":18,"description":91},"{\"passport\":\"CN\",\"destination\":\"AE\"}",[],[],"V2",{"endpoints":144,"name":182,"description":41,"ungrouped":6,"open":6},[145,167],{"blocked":6,"hidden":6,"agent_price":18,"credits":75,"flexible_credits_description":18,"consumptions":146,"description":148,"method":80,"name":149,"url_path":150,"root_url":46,"parameters":151,"responses":166,"result_stats":18},[147],{"name":38,"slug":39,"cost":78,"label":41,"avg":18},"Show the visa requirements for Passport holder","VisaCheck","/",{"url":152,"header":153,"post":155,"body":164,"path":165},[],[154],{"key":51,"is_auth":17,"example":52,"example_disabled":17,"example_type":53,"name":54,"description":52,"required":17,"always_error":55},[156,160],{"key":157,"example":158,"schema":18,"example_disabled":6,"example_type":53,"value_type":53,"enum_values":18,"default_value":41,"required":6,"name":157,"description":159},"passport","US","ISO Alpha-2 country code",{"key":161,"example":162,"schema":18,"example_disabled":6,"example_type":53,"value_type":53,"enum_values":18,"default_value":41,"required":6,"name":163,"description":159},"destination","DE","Destination",[],[],[],{"blocked":6,"hidden":6,"agent_price":18,"credits":75,"flexible_credits_description":18,"consumptions":168,"description":170,"method":80,"name":171,"url_path":172,"root_url":46,"parameters":173,"responses":181,"result_stats":18},[169],{"name":38,"slug":39,"cost":78,"label":41,"avg":18},"Show the color of visa requirements for a Passport holder.","MapColor","/map",{"url":174,"header":175,"post":177,"body":179,"path":180},[],[176],{"key":51,"is_auth":17,"example":52,"example_disabled":17,"example_type":53,"name":54,"description":52,"required":17,"always_error":55},[178],{"key":157,"example":158,"schema":18,"example_disabled":6,"example_type":53,"value_type":53,"enum_values":18,"default_value":41,"required":6,"name":41,"description":41},[],[],[],"V1",[],[],[186,201,212,222,232],{"type":187,"slug":188,"blocked":6,"period":189,"currency":190,"pricing":191,"rate_limit":195,"objects":196,"name":199,"display_name":18,"features":200},"periodic","zg8b5eop7a6r5kd2t6ynrtjp","1 MONTH","usd",{"price":35,"credits":192,"past_due_timeout_num":193,"past_due_timeout_type":194},100,3,"DAY",{"max_requests":75,"time_window":75},[197],{"id":198,"name":38,"slug":39,"quota":192,"tiers":18},"n04eeae82","100 Credits",[],{"type":187,"slug":202,"blocked":6,"period":189,"currency":190,"pricing":203,"rate_limit":206,"objects":208,"name":210,"display_name":18,"features":211},"4pozvfb2rqrd8fap3gmbfdh1",{"price":204,"credits":205,"past_due_timeout_num":193,"past_due_timeout_type":194},4.49,3000,{"max_requests":207,"time_window":75},5,[209],{"id":198,"name":38,"slug":39,"quota":205,"tiers":18},"3,000 Credits",[],{"type":187,"slug":213,"blocked":6,"period":189,"currency":190,"pricing":214,"rate_limit":217,"objects":218,"name":220,"display_name":18,"features":221},"9p3otr3z2j7z6yall8zts10p",{"price":215,"credits":216,"past_due_timeout_num":193,"past_due_timeout_type":194},14.49,30000,{"max_requests":18,"time_window":18},[219],{"id":198,"name":38,"slug":39,"quota":216,"tiers":18},"30,000 Credits",[],{"type":187,"slug":223,"blocked":6,"period":189,"currency":190,"pricing":224,"rate_limit":227,"objects":228,"name":230,"display_name":18,"features":231},"ktdfh4busgaej9z50ocr2d46",{"price":225,"credits":226,"past_due_timeout_num":193,"past_due_timeout_type":194},49.49,1200000,{"max_requests":18,"time_window":18},[229],{"id":198,"name":38,"slug":39,"quota":226,"tiers":18},"1,200,000 Credits",[],{"type":187,"slug":233,"blocked":6,"period":234,"currency":190,"pricing":235,"rate_limit":238,"objects":239,"name":241,"display_name":18,"features":242},"zmcty4kihbto1exoo7mwdfef","1 YEAR",{"price":236,"credits":237,"past_due_timeout_num":193,"past_due_timeout_type":194},494.99,14400000,{"max_requests":18,"time_window":18},[240],{"id":198,"name":38,"slug":39,"quota":237,"tiers":18},"14,400,000 Credits",[],[244],{"type":245,"slug":246,"blocked":6,"period":189,"currency":190,"pricing":247,"rate_limit":250,"objects":251,"name":255,"display_name":18,"features":256},"payasyougo","jn9n2u33aa0adoxges79qaam",[248],{"start":35,"unit_price":249,"start_text":40},0.003,{"max_requests":207,"time_window":75},[252],{"id":198,"name":38,"slug":39,"quota":18,"tiers":253},[254],{"start":35,"unit_price":249,"start_text":40},"Pay as you go",[],{"canonical":258,"page_title":259,"meta":260},"https://jojapi.com/hub/api/visa-requirements","Visa Requirements API Documentation & Playground - JoJ API",{"description":7,"keywords":261},"API,API Documentation,API Playground,Plans & Pricing,Visa Requirements,travelbuddy"]