---
title: "Visa-free destinations for a passport"
description: "Where a passport can travel without a visa, as one complete list (the API walks the upstream's pages)."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.wego.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Visa-free destinations for a passport

`GET /v1/countries/{countryCode}/visa-free-destinations`

Where a passport can travel without a visa, as one complete list (the API walks the upstream's pages). An inspiration list, not a visa rule: it carries no visa type and no permitted stay, and a country's absence means absent from Wego's list, never that a visa is required.

Operation ID: `getVisaFreeDestinations`

## Parameters

| Name | In | Type | Required | Constraints | Description |
|---|---|---|---|---|---|
| `countryCode` | path | string | yes | pattern `^[A-Z]{2}$` | ISO 3166-1 alpha-2 code of the PASSPORT whose visa-free destinations you want (e.g. AE). A passport, not a market: any well-formed code is accepted (a passport need not be a Wego market) and an unrecognized one returns an honest empty list. The same path segment means a market on the holidays route. |
| `locale` | query | string | no | length 1..35; default `"en"` | Locale for localized names (e.g. en, ar). Defaults to en. |
| `page` | query | integer | no | 1..20; default `1` | Page number, 1-based (max 20). Defaults to 1. The list is a bounded registry the API assembles whole, so paging is rarely needed and the cap is low by design. |
| `pageSize` | query | integer | no | 1..200; default `200` | Rows per page (1-200). Defaults to 200, which is also the maximum: this is a bounded registry the API walks completely, so the default returns the whole list. pageSize exists only to narrow a long answer, never to force paging. |

## Responses

| Status | Description |
|---|---|
| `200` | Visa-free destinations for this passport, keyed on countryCode for joining. |
| `400` | Malformed passport country code, page or pageSize. |
| `401` | Missing or invalid bearer token. |
| `429` | Rate limit exceeded; retry after the `Retry-After` seconds. |
| `502` | The upstream destinations service returned an invalid response. |
| `503` | The destinations service is temporarily unavailable; retry after the `Retry-After` seconds. |

### `200` body

| Field | Type | Always present | Description |
|---|---|---|---|
| `results` | object[] | yes | Visa-free destinations for the passport. |
| ↳ `countryCode` | string | yes | ISO 3166-1 alpha-2 code – the key to join this list on. |
| ↳ `name` | string | yes | Localized country name. |
| ↳ `keyCityCode` | string | no | The country's principal city code, ready for a flight search. |
| ↳ `currencyCode` | string | no | The destination's ISO 4217 currency code, when known. |
| ↳ `latitude` | number | no | Latitude of the destination's principal city, when known. |
| ↳ `longitude` | number | no | Longitude of the destination's principal city, when known. |
| `metadata` | object | yes | The passport, the walk's coverage, and the counts for this read. |
| ↳ `resultCount` | integer | yes | Number of destinations on the current page. |
| ↳ `totalCandidates` | integer | yes | Destinations assembled across every upstream page, pre-pagination. 0 means Wego lists none for this passport – NOT that a visa is required. |
| ↳ `hasMore` | boolean | yes | True when a further page exists. |
| ↳ `passportCountryCode` | string | yes | The passport the list is for. |
| ↳ `upstreamPagesFetched` | integer | yes | How many upstream pages were read to assemble this list. |
| ↳ `coverage` | `complete` \| `truncated` | yes | `complete` when the walk ended on a short upstream page. `truncated` when the page cap stopped it on a full page, so totalCandidates is a FLOOR and destinations may exist that this response does not carry. At exactly the cap (200) a complete list also reports `truncated`, since telling the two apart would cost another upstream page. |

## Example

```bash
curl -s -H "Authorization: Bearer $TOKEN" \
  "https://api.wego.com/v1/countries/$COUNTRY_CODE/visa-free-destinations"
```

Source: https://docs.wego.com/api/countries/get-visa-free-destinations/index.mdx
