{"openapi":"3.1.0","info":{"title":"Digital Nomad API","version":"0.1.0","description":"A fully local, web-verified reference of countries currently offering a digital nomad visa or comparable remote-work residence permit. Fast-changing real policy area; figures are approximate and dated, always reverify officially.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://digitalnomad.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/digitalnomad/docs"},"termsOfService":"https://connectorbay.com/digitalnomad/terms"},"servers":[{"url":"https://digitalnomad.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/digitalnomad/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/country_lookup":{"post":{"operationId":"country_lookup","summary":"One country's digital-nomad/remote-work visa program: name, approximate minimum-income threshold, duration,","description":"One country's digital-nomad/remote-work visa program: name, approximate minimum-income threshold, duration,\n    and key notes. Use for \"what's the income requirement for Portugal's digital nomad visa\", \"how long does\n    Thailand's remote-work visa last\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"country":{"description":"A country or territory name.","examples":["Portugal","Costa Rica","Thailand"],"minLength":1,"title":"Country","type":"string"}},"required":["country"],"title":"country_lookupArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_all_countries":{"post":{"operationId":"list_all_countries","summary":"Every country/territory in the reference, optionally filtered by region. Use for \"which countries have a","description":"Every country/territory in the reference, optionally filtered by region. Use for \"which countries have a\n    digital nomad visa\", \"list digital nomad visas in Europe\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter to a region; omit to list all.","examples":["Europe","Southeast Asia","Caribbean"],"title":"Region"}},"title":"list_all_countriesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/region_list":{"post":{"operationId":"region_list","summary":"Every region covered, with how many countries/territories are in it. Use for \"what regions do you cover\".","description":"Every region covered, with how many countries/territories are in it. Use for \"what regions do you cover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"region_listArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_countries":{"post":{"operationId":"search_countries","summary":"Keyword search across country name, region, program name, and notes. Use for \"any digital nomad visa with a","description":"Keyword search across country name, region, program name, and notes. Use for \"any digital nomad visa with a\n    tax incentive\", \"which programs aren't renewable\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"description":"Keyword to search for.","minLength":1,"title":"Query","type":"string"}},"required":["query"],"title":"search_countriesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/compare_countries":{"post":{"operationId":"compare_countries","summary":"Puts several named countries' digital-nomad-visa programs side by side. Use for \"compare Spain and Portugal's","description":"Puts several named countries' digital-nomad-visa programs side by side. Use for \"compare Spain and Portugal's\n    digital nomad visas\", \"Costa Rica vs Panama remote work visa\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"names":{"description":"Two or more country names to compare.","items":{"type":"string"},"minItems":2,"title":"Names","type":"array"}},"required":["names"],"title":"compare_countriesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/filter_by_max_annual_income":{"post":{"operationId":"filter_by_max_annual_income","summary":"Lists programs whose approximate minimum-income threshold is at or under a stated annual USD figure — a","description":"Lists programs whose approximate minimum-income threshold is at or under a stated annual USD figure — a\n    rough heuristic parsed from the hand-curated text, not a precise currency conversion. Use for \"which digital\n    nomad visas need under $30,000 a year\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"max_annual_usd":{"description":"Maximum approximate annual income threshold, in USD.","examples":[30000],"exclusiveMinimum":0,"title":"Max Annual Usd","type":"number"}},"required":["max_annual_usd"],"title":"filter_by_max_annual_incomeArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/general_eligibility_checklist":{"post":{"operationId":"general_eligibility_checklist","summary":"Requirements commonly shared across most digital nomad visa programs: proof of remote income, insurance, a","description":"Requirements commonly shared across most digital nomad visa programs: proof of remote income, insurance, a\n    clean criminal record, passport validity, and accommodation proof. Use for \"what do most digital nomad visas\n    require in common\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"general_eligibility_checklistArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/tax_residency_note":{"post":{"operationId":"tax_residency_note","summary":"Explains that holding a digital nomad visa is not the same as being a tax resident, and covers the general","description":"Explains that holding a digital nomad visa is not the same as being a tax resident, and covers the general\n    '183-day rule' norm and its caveats. Use for \"does a digital nomad visa make me a tax resident\", \"what's the\n    183-day rule\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"tax_residency_noteArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/visa_glossary":{"post":{"operationId":"visa_glossary","summary":"Definitions of common digital-nomad-visa terms — minimum income threshold, tax residency, the 183-day rule,","description":"Definitions of common digital-nomad-visa terms — minimum income threshold, tax residency, the 183-day rule,\n    path to residency. Use for \"what's a minimum income threshold\", \"what's the 183-day rule\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific term to look up; omit to list all.","title":"Term"}},"title":"visa_glossaryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/data_freshness":{"post":{"operationId":"data_freshness","summary":"When this dataset was last web-verified, and the standing disclaimer that figures change frequently and must","description":"When this dataset was last web-verified, and the standing disclaimer that figures change frequently and must\n    be reverified officially. Use for \"how current is this digital nomad visa data\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"data_freshnessArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}