# Tourism API manual

Official tourism statistics for every country in one API: arrivals, nights, spend, departures, occupancy and capacity, with holidays, exchange rates and worked statistics.

- Base URL: `https://api.tourismapi.com/v1`
- Authentication: your key in the `X-API-Key` header
- Format: JSON, every answer is `{"data": ..., "meta": {...}}`
- This file: 25 guides and 75 endpoints, built from the live API on 20 October 2026, 17:34 UTC
- Latest copy: https://tourismapi.com/documentation.md (download: https://tourismapi.com/documentation.md?download=1)
- Also: [OpenAPI 3.1](https://tourismapi.com/openapi.json), [agent skill](https://tourismapi.com/skill.md), [MCP server](https://tourismapi.com/mcp), [llms.txt](https://tourismapi.com/llms.txt), [pricing](https://tourismapi.com/pricing)

## Contents

### Guides

1. [Start with a free key](#start-with-a-free-key): What a free key reaches, and a first request that works straight away.
2. [Getting started](#getting-started): Your first call in five minutes: a key, one request, and how to read what comes back.
3. [Authentication](#authentication): How keys work: the header, live and test keys, rotation with overlap.
4. [MCP server for Claude and ChatGPT](#mcp-server-for-claude-and-chatgpt): Ask about tourism figures in plain English from Claude, ChatGPT or any MCP client.
5. [MCP tools](#mcp-tools): Every tool the MCP server offers, what it answers and its inputs.
6. [What we cover](#what-we-cover): Which countries are held, how far back, how often, and where the edges are.
7. [The whole API in one file](#the-whole-api-in-one-file): Every guide and endpoint as one downloadable file, plus OpenAPI, the agent skill and llms.txt.
8. [Data integrity](#data-integrity): What we check on every load, and how to see it for any country before you rely on it.
9. [Data freshness and release calendar](#data-freshness-and-release-calendar): How far behind each country runs, and when its next figures are expected.
10. [Revisions](#revisions): Offices change published figures. Every change is kept, with both values.
11. [Historical data and bulk downloads](#historical-data-and-bulk-downloads): How far back the archive goes, and how to load it all at once.
12. [The response envelope](#the-response-envelope): Every answer has the same two parts: meta and data.
13. [Schemas](#schemas): The fields of every endpoint's answer, with their type and an example.
14. [Batch requests](#batch-requests): Fetch up to 50 series in one call with the ids parameter.
15. [Pagination](#pagination): Lists come in pages; follow the next cursor until it is empty.
16. [Errors](#errors): One error shape, every code, and the status to expect.
17. [Periods, dates and frequencies](#periods-dates-and-frequencies): Months, quarters and years in one notation, and how ranges work.
18. [Units, scaling and currencies](#units-scaling-and-currencies): What each number means, and how money is converted.
19. [Definitions differ between countries](#definitions-differ-between-countries): Arrivals in one country are not always arrivals in another. How to compare fairly.
20. [Breakdowns](#breakdowns): Origin, purpose, accommodation type and region, and where each is held.
21. [Joining holidays and exchange rates](#joining-holidays-and-exchange-rates): Put public holidays and currency moves beside any tourism series.
22. [How the statistics are made](#how-the-statistics-are-made): The method behind every statistic, what each needs, and where each one stops.
23. [Rate limits](#rate-limits): Per-minute and monthly limits, the headers that report them, and how to back off.
24. [Webhooks for new releases](#webhooks-for-new-releases): Be told the moment a country's new figures land, instead of polling.
25. [Changelog](#changelog): Every change to the API and its coverage, dated, newest first.

### Endpoints

**Countries**

- [GET /v1/countries](#get-v1-countries): Every country and territory held, with depth and freshness (Free)
- [GET /v1/countries/{iso}](#get-v1-countries-iso): One country: measures, first and latest period (Free)
- [GET /v1/countries/{iso}/coverage](#get-v1-countries-iso-coverage): What each measure covers for a country, month by month (Developer)
- [GET /v1/countries/{iso}/latest](#get-v1-countries-iso-latest): The newest figure for every measure in one call (Free)
- [GET /v1/regions](#get-v1-regions): World regions and the countries in each (Free)
- [GET /v1/regions/{region}](#get-v1-regions-region): Regional totals built from national figures (Developer)
- [GET /v1/countries/{iso}/peers](#get-v1-countries-iso-peers): The other countries in the same world region (Free)
- [GET /v1/countries/{iso}/brief](#get-v1-countries-iso-brief): Where a country stands, written and in figures (Analyst)
- [GET /v1/countries/{iso}/rivals](#get-v1-countries-iso-rivals): The destinations a country competes with (Developer)

**Series**

- [GET /v1/series](#get-v1-series): Find series by country, measure, frequency or text (Developer)
- [GET /v1/series/{id}](#get-v1-series-id): One series with its unit, frequency and office (Developer)
- [GET /v1/series/{id}/observations](#get-v1-series-id-observations): Values for any period range, monthly to annual (Developer)
- [GET /v1/series/{id}/revisions](#get-v1-series-id-revisions): Every figure an office later changed, with both values (Analyst)
- [GET /v1/series/{id}/metadata](#get-v1-series-id-metadata): Definitions, units and breaks in the series (Developer)
- [GET /v1/series/search](#get-v1-series-search): Full-text search over two million series names (Developer)
- [GET /v1/tables](#get-v1-tables): The office tables the series come from, by country (Developer)
- [GET /v1/series/{id}/latest](#get-v1-series-id-latest): The newest figure of a series, with a year before (Developer)

**Measures**

- [GET /v1/arrivals](#get-v1-arrivals): Visitor arrivals, any country, any frequency (Developer)
- [GET /v1/nights](#get-v1-nights): Overnight stays in all accommodation (Developer)
- [GET /v1/spend](#get-v1-spend): Visitor spend in local currency or converted (Developer)
- [GET /v1/departures](#get-v1-departures): Residents travelling abroad (Developer)
- [GET /v1/occupancy](#get-v1-occupancy): Bed and room occupancy rates (Developer)
- [GET /v1/capacity](#get-v1-capacity): Establishments, rooms and beds available (Developer)

**Breakdowns**

- [GET /v1/arrivals/by-origin](#get-v1-arrivals-by-origin): Arrivals split by country of residence (Developer)
- [GET /v1/nights/by-accommodation](#get-v1-nights-by-accommodation): Nights by hotels, camping, rentals and more (Developer)
- [GET /v1/nights/by-region](#get-v1-nights-by-region): Nights by province, county or region (Developer)
- [GET /v1/arrivals/by-purpose](#get-v1-arrivals-by-purpose): Leisure, business and visiting friends (Developer)
- [GET /v1/origins/{iso}](#get-v1-origins-iso): Where one country's residents travel to (Developer)

**Compare and rank**

- [GET /v1/compare](#get-v1-compare): Several countries side by side, same definitions (Developer)
- [GET /v1/rank](#get-v1-rank): Countries ranked on any measure and period (Developer)
- [GET /v1/growth](#get-v1-growth): Change on last year, month or quarter (Developer)
- [GET /v1/share](#get-v1-share): A destination's share of a group of markets (Developer)
- [GET /v1/seasonality](#get-v1-seasonality): Seasonal profile and peak months for a series (Developer)
- [GET /v1/movers](#get-v1-movers): The countries rising and falling fastest (Developer)
- [GET /v1/records](#get-v1-records): Each country's best month, and how close it is now (Developer)

**Statistics**

- [GET /v1/stats/trend](#get-v1-stats-trend): Seasonally adjusted figures and the trend (Analyst)
- [GET /v1/stats/recovery](#get-v1-stats-recovery): Each month against the same month of 2019 (Analyst)
- [GET /v1/stats/benchmark](#get-v1-stats-benchmark): A country against its region, on one index (Analyst)
- [GET /v1/stats/stay-length](#get-v1-stats-stay-length): Nights per arrival and its trend (Analyst)
- [GET /v1/stats/forecast](#get-v1-stats-forecast): Up to 24 months ahead, with ranges (Intel)
- [GET /v1/stats/nowcast](#get-v1-stats-nowcast): Months the office has not published yet (Intel)
- [GET /v1/stats/anomalies](#get-v1-stats-anomalies): Months far from what was expected (Intel)
- [GET /v1/stats/origin-shift](#get-v1-stats-origin-shift): Which markets are gaining or losing share (Intel)
- [GET /v1/stats/concentration](#get-v1-stats-concentration): How dependent a destination is on its markets (Intel)
- [GET /v1/stats/fx-sensitivity](#get-v1-stats-fx-sensitivity): How arrivals move with the exchange rate (Intel)
- [GET /v1/stats/tourism-intensity](#get-v1-stats-tourism-intensity): Countries ranked by how much they rely on tourism (Analyst)

**Context**

- [GET /v1/holidays](#get-v1-holidays): Public holidays for every calendar held (Free)
- [GET /v1/holidays/{iso}](#get-v1-holidays-iso): One country's holidays by year (Free)
- [GET /v1/fx](#get-v1-fx): Daily reference exchange rates since 1999 (Free)
- [GET /v1/fx/{currency}](#get-v1-fx-currency): One currency's rate history (Free)
- [GET /v1/convert](#get-v1-convert): Spend converted at each period's rate (Developer)
- [GET /v1/joins/holidays](#get-v1-joins-holidays): Any series with holiday counts per period (Developer)
- [GET /v1/holidays/upcoming](#get-v1-holidays-upcoming): Public holidays in the coming days (Free)
- [GET /v1/fx/latest](#get-v1-fx-latest): The newest exchange rate for every currency (Free)
- [GET /v1/fuel](#get-v1-fuel): Jet fuel and crude oil, month by month (Analyst)
- [GET /v1/fuel/latest](#get-v1-fuel-latest): The newest month of fuel prices (Free)
- [GET /v1/economy/{iso}](#get-v1-economy-iso): A country's economy by year (Analyst)
- [GET /v1/economy/{iso}/tourism](#get-v1-economy-iso-tourism): Tourism's weight in a country's economy (Analyst)
- [GET /v1/economy/outlook](#get-v1-economy-outlook): Growth and inflation outlook for the next three years (Analyst)

**Releases**

- [GET /v1/releases](#get-v1-releases): Figures added or revised, newest first (Developer)
- [GET /v1/releases/latest](#get-v1-releases-latest): The last release for each country (Developer)
- [GET /v1/freshness](#get-v1-freshness): How many months behind each country is (Free)
- [GET /v1/gaps](#get-v1-gaps): Which months each country is missing (Free)
- [GET /v1/calendar](#get-v1-calendar): When each office is next expected to publish (Developer)
- [GET /v1/changelog](#get-v1-changelog): Changes to the API and its coverage (Free)
- [GET /v1/monitor](#get-v1-monitor): The monthly report on world tourism, as data (Free)
- [GET /v1/monitor/editions](#get-v1-monitor-editions): Every edition of the Monitor held (Free)
- [GET /v1/monitor/paper](#get-v1-monitor-paper): The month's paper as one document (Free)
- [GET /v1/monitor/index](#get-v1-monitor-index): The world tourism index, month by month (Analyst)
- [GET /v1/monitor/trust](#get-v1-monitor-trust): How far each country's figures can be trusted (Analyst)

**Bulk and account**

- [GET /v1/bulk/{iso}.csv](#get-v1-bulk-iso-csv): A whole country in one file (Intel)
- [GET /v1/bulk/all.zip](#get-v1-bulk-all-zip): The entire archive in one download (Intel)
- [GET /v1/units](#get-v1-units): Every unit and how values are scaled (Free)
- [GET /v1/usage](#get-v1-usage): Your requests today and this month (Free)
- [GET /v1/status](#get-v1-status): Service status and data freshness (Free)

### Plans at a glance

| Endpoint | Plan needed |
|---|---|
| `/v1/countries` | Free and up |
| `/v1/countries/{iso}` | Free and up |
| `/v1/countries/{iso}/coverage` | Developer and up |
| `/v1/countries/{iso}/latest` | Free and up |
| `/v1/regions` | Free and up |
| `/v1/regions/{region}` | Developer and up |
| `/v1/countries/{iso}/peers` | Free and up |
| `/v1/countries/{iso}/brief` | Analyst and up |
| `/v1/countries/{iso}/rivals` | Developer and up |
| `/v1/series` | Developer and up |
| `/v1/series/{id}` | Developer and up |
| `/v1/series/{id}/observations` | Developer and up |
| `/v1/series/{id}/revisions` | Analyst and up |
| `/v1/series/{id}/metadata` | Developer and up |
| `/v1/series/search` | Developer and up |
| `/v1/tables` | Developer and up |
| `/v1/series/{id}/latest` | Developer and up |
| `/v1/arrivals` | Developer and up |
| `/v1/nights` | Developer and up |
| `/v1/spend` | Developer and up |
| `/v1/departures` | Developer and up |
| `/v1/occupancy` | Developer and up |
| `/v1/capacity` | Developer and up |
| `/v1/arrivals/by-origin` | Developer and up |
| `/v1/nights/by-accommodation` | Developer and up |
| `/v1/nights/by-region` | Developer and up |
| `/v1/arrivals/by-purpose` | Developer and up |
| `/v1/origins/{iso}` | Developer and up |
| `/v1/compare` | Developer and up |
| `/v1/rank` | Developer and up |
| `/v1/growth` | Developer and up |
| `/v1/share` | Developer and up |
| `/v1/seasonality` | Developer and up |
| `/v1/movers` | Developer and up |
| `/v1/records` | Developer and up |
| `/v1/stats/trend` | Analyst and up |
| `/v1/stats/recovery` | Analyst and up |
| `/v1/stats/benchmark` | Analyst and up |
| `/v1/stats/stay-length` | Analyst and up |
| `/v1/stats/forecast` | Intel and up |
| `/v1/stats/nowcast` | Intel and up |
| `/v1/stats/anomalies` | Intel and up |
| `/v1/stats/origin-shift` | Intel and up |
| `/v1/stats/concentration` | Intel and up |
| `/v1/stats/fx-sensitivity` | Intel and up |
| `/v1/stats/tourism-intensity` | Analyst and up |
| `/v1/holidays` | Free and up |
| `/v1/holidays/{iso}` | Free and up |
| `/v1/fx` | Free and up |
| `/v1/fx/{currency}` | Free and up |
| `/v1/convert` | Developer and up |
| `/v1/joins/holidays` | Developer and up |
| `/v1/holidays/upcoming` | Free and up |
| `/v1/fx/latest` | Free and up |
| `/v1/fuel` | Analyst and up |
| `/v1/fuel/latest` | Free and up |
| `/v1/economy/{iso}` | Analyst and up |
| `/v1/economy/{iso}/tourism` | Analyst and up |
| `/v1/economy/outlook` | Analyst and up |
| `/v1/releases` | Developer and up |
| `/v1/releases/latest` | Developer and up |
| `/v1/freshness` | Free and up |
| `/v1/gaps` | Free and up |
| `/v1/calendar` | Developer and up |
| `/v1/changelog` | Free and up |
| `/v1/monitor` | Free and up |
| `/v1/monitor/editions` | Free and up |
| `/v1/monitor/paper` | Free and up |
| `/v1/monitor/index` | Analyst and up |
| `/v1/monitor/trust` | Analyst and up |
| `/v1/bulk/{iso}.csv` | Intel and up |
| `/v1/bulk/all.zip` | Intel and up |
| `/v1/units` | Free and up |
| `/v1/usage` | Free and up |
| `/v1/status` | Free and up |

---

# Guides

## Start with a free key

Sign in with Google and a free key is made for you at once. There is no form and no card. The key is shown once; copy it into an environment variable called TOURISM_API_KEY.

A free key reaches the country list, each country's newest figures, the holidays and exchange rates, and the status and freshness endpoints. Use it to see the shape of every response before you choose a plan.

curl "https://api.tourismapi.com/v1/countries/CL/latest" \
  -H "X-API-Key: $TOURISM_API_KEY"A free key is for building and testing. Plans and their limits are listed on the pricing page.

Online: https://tourismapi.com/documentation/guides/start-with-a-free-key

## Getting started

Every request is a GET to https://api.tourismapi.com/v1 with your key in the X-API-Key header. Answers are JSON in a meta and data envelope.

- Sign in with Google and copy your key.
- Ask for a country's newest figures.
- Read meta.data_as_of to see how fresh the answer is.
curl "https://api.tourismapi.com/v1/arrivals?country=CL,BA&from=2026-01" \
  -H "X-API-Key: $TOURISM_API_KEY"Next, read Periods, dates and frequencies and Definitions differ between countries: the two guides that make a cross-country integration behave.

Online: https://tourismapi.com/documentation/guides/getting-started

## Authentication

Send the key on every request in either of two headers: X-API-Key: your_key, or Authorization: Bearer your_key. Both are read the same way. A key in the address (?key=) is refused with a 400, so keys never land in server logs.

curl https://api.tourismapi.com/v1/countries \
  -H "X-API-Key: $TOURISM_API_KEY"

curl https://api.tourismapi.com/v1/countries \
  -H "Authorization: Bearer $TOURISM_API_KEY"PrefixUseta_live_Production calls, counted against your planta_test_The free key: same shapes, the free endpoints onlyTo rotate, create a second key in your account, deploy it, then revoke the first. Both work during the overlap. We only ever show the first characters of a key after it is made; the secret itself is never stored in readable form.

Browser code exposes any key it ships with. Call the API from your own server and pass the figures on.

Online: https://tourismapi.com/documentation/guides/authentication

## MCP server for Claude and ChatGPT

The same data is offered as a Model Context Protocol server, so an assistant can look figures up for you: "How many nights did Chile record in August, and how does that compare with last year?"

{
  "mcpServers": {
    "tourismapi": {
      "url": "https://tourismapi.com/mcp",
      "headers": { "X-API-Key": "your key" }
    }
  }
}The assistant gets tools for countries, series search, observations, comparisons, holidays and exchange rates, and picks the one that answers the question. Every call counts against your key like any other request.

Online: https://tourismapi.com/documentation/guides/mcp-server-for-claude-and-chatgpt

## MCP tools

The MCP server at https://tourismapi.com/mcp offers 14 tools. An assistant reads this list itself (the tools/list call) and picks the tool that answers the question; each call counts against your key like any other request, and your plan decides what it can read.

list_countries

Every country held, with its region, depth, latest month and measures.

InputTypeRequiredDescriptionmonthly_onlybooleannoOnly countries with monthly figurescountry_profile

One country: what is held by measure, frequency and breakdown, and which statistics it carries.

InputTypeRequiredDescriptioncountrystringyesISO 3166 two-letter country code, such as JPlatest_figures

A country's newest headline figure with its change on a year before.

InputTypeRequiredDescriptioncountrystringyesISO 3166 two-letter country code, such as JPget_measure

Monthly (or quarterly, yearly) figures of one measure for up to ten countries.

InputTypeRequiredDescriptionmeasurestring: arrivals, nights, spend, departures, occupancy, capacityyesWhat is countedcountrystringyesOne or more ISO codes, comma separated, such as JP,TH,FRfreqstring: M, Q, AnofromstringnoFirst period: a year (2019), month (2024-01) or datetostringnoLast period: a year, month or datecompare_countries

Two to ten countries side by side, month by month, for one measure.

InputTypeRequiredDescriptioncountrystringyesOne or more ISO codes, comma separated, such as JP,TH,FRmeasurestring: arrivals, nights, spend, departures, occupancy, capacitynoWhat is countedfromstringnoFirst period: a year (2019), month (2024-01) or datetostringnoLast period: a year, month or daterank_countries

Countries ranked by one measure in one month, with the change on a year before.

InputTypeRequiredDescriptionmeasurestring: arrivals, nights, spend, departures, occupancy, capacitynoWhat is countedperiodstringnoA month such as 2025-08; empty for each country's latestlimitintegernogrowth

Change on a year before, and year to date, for up to 25 countries.

InputTypeRequiredDescriptioncountrystringyesOne or more ISO codes, comma separated, such as JP,TH,FRmeasurestring: arrivals, nights, spend, departures, occupancy, capacitynoWhat is countedperiodstringnoA month (2025-08) or a year (2025)search_series

Find series by words in their names, optionally in one country.

InputTypeRequiredDescriptionqstringyesWords, such as hotel nights foreigncountrystringnoISO 3166 two-letter country code, such as JPseries_figures

Every figure of one series by its id (sr_...) or readable name (jp.arrivals.total.m).

InputTypeRequiredDescriptionidstringyesfromstringnoFirst period: a year (2019), month (2024-01) or datetostringnoLast period: a year, month or dateorigin_markets

A country's arrivals split by where visitors come from, largest first.

InputTypeRequiredDescriptioncountrystringyesISO 3166 two-letter country code, such as JPperiodstringnostatistic

A worked statistic for one country: trend, recovery, benchmark, stay-length, forecast, nowcast, anomalies, origin-shift or concentration.

InputTypeRequiredDescriptionstatstring: trend, recovery, benchmark, stay-length, forecast, nowcast, anomalies, origin-shift, concentrationyescountrystringyesISO 3166 two-letter country code, such as JPholidays

Public holidays for one or more countries in a date range.

InputTypeRequiredDescriptioncountrystringyesOne or more ISO codes, comma separated, such as JP,TH,FRfromstringnoFirst period: a year (2019), month (2024-01) or datetostringnoLast period: a year, month or dateexchange_rates

Daily rates of one currency against the euro.

InputTypeRequiredDescriptioncurrencystringyesISO 4217, such as THBfromstringnoFirst period: a year (2019), month (2024-01) or datetostringnoLast period: a year, month or daterelease_calendar

When each country's next month of figures is expected.

InputTypeRequiredDescriptioncountrystringnoOne or more ISO codes, comma separated, such as JP,TH,FRA call, as the assistant sends it{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "latest_figures",
        "arguments": {
            "country": "JP"
        }
    }
}The answer carries the same JSON the REST endpoint returns, as the tool result's text. Connecting a client is on MCP server for Claude and ChatGPT.

Online: https://tourismapi.com/documentation/guides/mcp-tools

## What we cover

Every country held has annual figures, and many have monthly figures too. The table below is counted from the data each hour.

{{COVER_TABLE}}Live counts are always at /v1/countries and /v1/freshness; this table is a guide, the endpoints are the record.

Online: https://tourismapi.com/documentation/guides/what-we-cover

## The whole API in one file

The whole reference comes as one file you can read offline, search, print, keep in a repository or paste into an assistant. It is built from the live API every time it is opened, so it never falls behind the endpoints.

What the full manual holds

- A contents list linking every guide and every endpoint, grouped as in this documentation.
- A table of the plan each endpoint needs, so you can see at once what your key reaches.
- Every guide in full: keys, limits, errors, dates and periods, coverage, freshness.
- Every endpoint with its parameters, a ready curl call and a real sample answer.
Ways to use it

- Give it to an assistant: add documentation.md to a Claude Project or a custom GPT as knowledge, and it can write correct calls for you.
- Generate a client: point openapi-generator, Postman or Insomnia at openapi.json.
- Work offline: open documentation.md in any markdown reader or editor.
- Agents: install the agent skill, or connect the MCP server for 14 ready tools on your own key.
From the command line

curl -o tourismapi-manual.md https://tourismapi.com/documentation.md
curl -o tourismapi-openapi.json https://tourismapi.com/openapi.json
curl -o SKILL.md https://tourismapi.com/skill.mdAdd ?download=1 to any of these addresses to save the file instead of opening it in the browser. No key is needed to read the documentation; a key is needed only for the calls.

Online: https://tourismapi.com/documentation/guides/the-whole-api-in-one-file

## Data integrity

Every load runs the same checks: no figures dated in the future, no negative counts where a count cannot be negative, no missing months inside a monthly series, and national totals compared with the matching international series.

A month the office did not publish is marked as such, never filled in. A difference between two publishers is reported with its size and cause, for example when two offices count different sets of establishments.

curl "https://api.tourismapi.com/v1/countries/SE/coverage" \
  -H "X-API-Key: $TOURISM_API_KEY"

Online: https://tourismapi.com/documentation/guides/data-integrity

## Data freshness and release calendar

Offices publish on their own timetables, usually four to eight weeks after the month ends. /v1/freshness gives each country's newest finished period and how many months behind today it is; /v1/calendar gives the expected next release.

A month that has not finished yet is never returned as the latest figure.

curl "https://api.tourismapi.com/v1/freshness?freq=M" \
  -H "X-API-Key: $TOURISM_API_KEY"

Online: https://tourismapi.com/documentation/guides/data-freshness-and-release-calendar

## Revisions

When an office revises a figure, the new value replaces the old one in every endpoint, and the change is recorded: period, old value, new value and when we saw it. Use it to keep a model in step without reloading everything.

curl "https://api.tourismapi.com/v1/series/it.nights.total.m/revisions?since=2026-10-01T00:00:00Z" \
  -H "X-API-Key: $TOURISM_API_KEY"

Online: https://tourismapi.com/documentation/guides/revisions

## Historical data and bulk downloads

Annual figures go back to 1926 for some countries, and monthly figures to the 1970s for several. For analysis or model training, take a country or the whole archive as files instead of paging through calls.

curl -O "https://api.tourismapi.com/v1/bulk/AT.csv" -H "X-API-Key: $TOURISM_API_KEY"
curl -O "https://api.tourismapi.com/v1/bulk/all.zip" -H "X-API-Key: $TOURISM_API_KEY"Files are rebuilt after each release and carry the same series ids as the API.

Online: https://tourismapi.com/documentation/guides/historical-data-and-bulk-downloads

## The response envelope

{
  "meta": {
    "request_id": "req_7f3a1c",
    "data_as_of": "2026-10-12T12:01:11Z",
    "count": 2,
    "next": null
  },
  "data": [ ... ]
}data_as_of is when the newest figure in the answer was loaded. Quote request_id when you ask for support.

Online: https://tourismapi.com/documentation/guides/the-response-envelope

## Schemas

Every answer is one envelope, {"meta": {...}, "data": ...} (see The response envelope). Below are the fields of data for every endpoint, read from a real answer of that endpoint, with each field's JSON type and an example. A list is shown by its first item. The same shapes are in /openapi.json, with each endpoint's example.

CountriesGET /v1/countries

data is a list of records.

FieldTypeExampleisostringBTnamestringBhutanregionstringAsia Pacificmonthlybooleantruefirststring2025lateststring2026-09months_behindinteger1measuresarray[2 items]iso3stringBTNwikidata_idstringQ917GET /v1/countries/{iso}

data is one record.

FieldTypeExampleisostringCLnamestringChileregionstringAmericasmonthlybooleantruefirststring2026lateststring2026-08months_behindinteger2measuresarray[3 items]statisticsarray[0 items]iso3stringCHLwikidata_idstringQ298GET /v1/countries/{iso}/coverage

data is a list of records.

FieldTypeExamplemeasurestringarrivalsfreqstringAbreakdownstringtotalseriesinteger2firststring2008laststring2024headlinestringsr_gnvbx5rtGET /v1/countries/{iso}/latest

data is one record.

FieldTypeExampleisostringCLperiodstring2026-08figuresarray[3 items]figures[].measurestringarrivalsfigures[].valueinteger798946figures[].unitstringarrivalsfigures[].yoy_pctnumber-1.8GET /v1/regions

data is a list of records.

FieldTypeExampleregionstringamericasnamestringAmericascountriesarray[3 items]GET /v1/regions/{region}

data is a list of records.

FieldTypeExampleperiodstring2025-01valuenumber51963828countries_reportinginteger37GET /v1/countries/{iso}/peers

data is a list of records.

FieldTypeExampleisostringCAnamestringCanadaregionstringAmericasmonthlybooleantruefirststring1972lateststring2026-09-30months_behindinteger1measuresarray[3 items]iso3stringCANwikidata_idstringQ16GET /v1/countries/{iso}/brief

data is a list of records.

FieldTypeExamplecountrystringTHnamestringThailandmonthstring2026-08headlinestringA stronger August, still short of 201...briefarray[1 items]figuresobject{...}figures.valueinteger2714880figures.yoy_pctnumber6.4figures.vs_2019_pctnumber93.1figures.ytd_yoy_pctnumber4.9figures.region_rankobject{...}figures.region_rank.rankinteger5figures.region_rank.ofinteger12figures.trustobject{...}figures.trust.gradestringAfigures.trust.scoreinteger96last_sixarray[1 items]last_six[].monthstring2026-08last_six[].valueinteger2714880last_six[].yoy_pctnumber6.4last_six[].vs_2019_pctnumber93.1last_six[].vs_3yr_avg_pctnumber12.8outlookarray[1 items]outlook[].monthstring2026-09outlook[].valueinteger2410000outlook[].lowinteger2310000outlook[].highinteger2520000outlook[].yoy_pctnumber5.2contextobject{...}context.jet_fuelobject{...}context.jet_fuel.monthstring2026-08context.jet_fuel.usd_gallonnumber3.724context.jet_fuel.yoy_pctnumber17.8context.currencyobject{...}context.currency.currencystringTHBcontext.currency.per_eurnumber37.12context.currency.yoy_pctnumber-2.1context.growthobject{...}context.growth.yearinteger2026context.growth.pctnumber2.8GET /v1/countries/{iso}/rivals

data is a list of records.

FieldTypeExamplecountrystringVNnamestringVietnamrankinteger1scoreinteger86shared_marketsarray[2 items]shared_markets[].countrystringCNshared_markets[].namestringChinabasisstringshared source markets, season, size a...SeriesGET /v1/series

data is a list of records.

FieldTypeExampleidstringsr_gnvbx5rtaliasstringcl.arrivals.total.acountrystringCLnamestringCHL, _Z, ARRIVALS, PS, _T, _Z, TDS, Ameasurestringarrivalsbreakdownnull or valuenullfreqstringAunitstringPSfirststring2008laststring2024pointsinteger17headlinebooleantrueGET /v1/series/{id}

data is one record.

FieldTypeExampleidstringsr_wxq9yq5valiasstringjp.arrivals.total.mcountrystringJPnamestringVisitor arrivals to Japan from Totalmeasurestringarrivalsbreakdownnull or valuenullfreqstringMunitstringvisitorsfirststring2003-01laststring2026-08pointsinteger284headlinebooleantrueGET /v1/series/{id}/observations

data is a list of records.

FieldTypeExampleperiodstring2025-01valuenumber3781629GET /v1/series/{id}/revisions

data is a list of records.

FieldTypeExampleperiodstring2026-06oldinteger48211904newinteger48390117seen_atstring2026-10-12T10:51:15ZGET /v1/series/{id}/metadata

data is one record.

FieldTypeExampleidstringsr_wxq9yq5valiasstringjp.arrivals.total.mcountrystringJPnamestringVisitor arrivals to Japan from Totalmeasurestringarrivalsbreakdownnull or valuenullfreqstringMunitstringvisitorsfirststring2003-01laststring2026-08pointsinteger284headlinebooleantruetablestringVisitor arrivals to Japan by nationalityderivedbooleanfalselatest_valuenumber3098900currencynull or valuenullscalenull or valuenullrevisionsinteger0last_revisednull or valuenullupdatedstring2026-10-13T02:37:15ZGET /v1/series/search

data is a list of records.

FieldTypeExampleidstringsr_2efm01hsaliasnull or valuenullcountrystringNOnamestringHotels and similar establishments, Fo...measurestringcapacitybreakdownnull or valuenullfreqstringMunitstringfirststring2010-01laststring2019-12pointsinteger120headlinebooleanfalseGET /v1/tables

data is a list of records.

FieldTypeExampletablestringEnterprises and employment in tourismseriesinteger18firststring2008laststring2024measuresarray[0 items]GET /v1/series/{id}/latest

data is one record.

FieldTypeExampleseriesstringsr_wxq9yq5vnamestringVisitor arrivals to Japan from Totalunitstringvisitorsperiodstring2026-08valuenumber3098900year_beforenumber3428406yoy_pctnumber-9.6MeasuresGET /v1/arrivals

data is a list of records.

FieldTypeExamplecountrystringCLseriesstringsr_gnvbx5rtnamestringCHL, _Z, ARRIVALS, PS, _T, _Z, TDS, AunitstringPSfreqstringAobservationsarray[0 items]GET /v1/nights

data is a list of records.

FieldTypeExamplecountrystringCLseriesstringsr_ay31rkhsnamestringCHL, TRIPS, PS, OVERNIGHT, _T, TDS, AunitstringPSfreqstringAobservationsarray[0 items]GET /v1/spend

data is a list of records.

FieldTypeExamplecountrystringCLseriesstringsr_qn2jpsb5namestringTravel spending (debit), CHL, quarterlyunitstringUS dollars, x10^6freqstringQobservationsarray[3 items]observations[].periodstring2025-Q4observations[].valuenumber752348814.62notestringThis series is not in a currency we c...GET /v1/departures

data is a list of records.

FieldTypeExamplecountrystringCLseriesstringsr_r3pa07sbnamestringCHL, _Z, DEPARTURES, PS, _T, _Z, _Z, AunitstringPSfreqstringAobservationsarray[0 items]GET /v1/occupancy

data is a list of records.

FieldTypeExamplecountrystringCLseriesnull or valuenullobservationsarray[0 items]notestringNo occupancy series held for CL.GET /v1/capacity

data is a list of records.

FieldTypeExamplecountrystringCLseriesnull or valuenullobservationsarray[0 items]notestringNo capacity series held for CL.BreakdownsGET /v1/arrivals/by-origin

data is a list of records.

FieldTypeExampleseriesstringsr_4zqx3d8xnamestringCanada, Non-resident visitors enterin...unitstringVisitorsvaluenumber4584611GET /v1/nights/by-accommodation

data is a list of records.

FieldTypeExampleseriesstringsr_85g2v1tanamestringTourist nights in Chile: hotelsunitstringnightsvaluenumber1333264GET /v1/nights/by-region

data is a list of records.

FieldTypeExampleseriesstringsr_d1jex8khnamestringSLOVENIAunitstringvaluenumber17843311GET /v1/arrivals/by-purpose

data is a list of records.

FieldTypeExampleseriesstringsr_qv12q8ksnamestringThe Netherlands, All leisure accommod...unitstringnumbervaluenumber40540800GET /v1/origins/{iso}

data is a list of records.

FieldTypeExampledestinationstringCRnamestringCosta Ricaseriesstringsr_h1jk3ec9unitstringtouristsfreqstringMperiodstring2026-08valuenumber1420Compare and rankGET /v1/compare

data is a list of records.

FieldTypeExampleperiodstring2025-01CLnull or valuenullBAnull or valuenullATnumber3491284GET /v1/rank

data is a list of records.

FieldTypeExamplerankinteger1countrystringHUnamestringHungaryseriesstringsr_8dhrzswdunitstringperiodstring2026-08valuenumber6916472year_beforenumber7340976yoy_pctnumber-5.8GET /v1/growth

data is a list of records.

FieldTypeExamplecountrystringCLnotestringNo arrivals figure held for CL at tha...GET /v1/share

data is one record.

FieldTypeExamplecountrystringAToriginstringDEperiodstring2026-08share_pctnumber41.2groupstringeuropeGET /v1/seasonality

data is a list of records.

FieldTypeExamplemonthinteger1indexnumber106.3lownumber106.3highnumber106.3GET /v1/movers

data is one record.

FieldTypeExamplerisingarray[3 items]rising[].countrystringNCrising[].namestringNew Caledoniarising[].seriesstringsr_ne8xpxntrising[].unitstringtouristsrising[].periodstring2026-08rising[].valuenumber6786rising[].year_beforenumber5260rising[].yoy_pctnumber29fallingarray[3 items]falling[].countrystringPEfalling[].namestringPerufalling[].seriesstringsr_41hhx4bxfalling[].unitstringtouristsfalling[].periodstring2026-06falling[].valuenumber258156falling[].year_beforenumber278218falling[].yoy_pctnumber-7.2GET /v1/records

data is a list of records.

FieldTypeExamplecountrystringBEnamestringBelgiumseriesstringsr_6vm9se5nunitstringNumberrecord_periodstring2026-07record_valuenumber2126258latest_periodstring2026-07latest_valuenumber2126258pct_of_recordnumber100latest_is_recordbooleantrueStatisticsGET /v1/stats/trend

data is a list of records.

FieldTypeExampleperiodstring2018-09adjustednumber2493188.1GET /v1/stats/recovery

data is a list of records.

FieldTypeExampleperiodstring2020-01indexnumber98.95GET /v1/stats/benchmark

data is a list of records.

FieldTypeExampleyearstring2015countrynumber61.9regionnumber74.9GET /v1/stats/stay-length

data is a list of records.

FieldTypeExampleperiodstring2026-07nights_per_arrivalnumber2.18GET /v1/stats/forecast

data is a list of records.

FieldTypeExampleperiodstring2026-09valuenumber2799576lownumber2581010highnumber3036651GET /v1/stats/nowcast

data is a list of records.

FieldTypeExampleperiodstring2026-09valuenumber3090230lownumber2848972highnumber3351918estimatedbooleantrueGET /v1/stats/anomalies

data is a list of records.

FieldTypeExampleperiodstring2020-03scorenumber-6.6expectednumber974204.6GET /v1/stats/origin-shift

data is a list of records.

FieldTypeExampleoriginstringChinashare_pctnumber13.05change_pointsnumber-9.58GET /v1/stats/concentration

data is one record.

FieldTypeExamplehhiinteger1391top3_share_pctnumber58.5windowstring2025-09 to 2026-08marketsinteger39topobject{...}top.South Koreanumber26.5top.Taiwannumber18.9top.Chinainteger13top.United Statesnumber8.5top.Hong Kongnumber6.6GET /v1/stats/fx-sensitivity

data is a list of records.

FieldTypeExampleoriginstringUSnamestringUnited StatescurrencystringUSDseriesstringsr_p4b6agqgmonthsinteger226elasticitynumber-0.47correlationnumber-0.28readingstringA 10% dearer JPY for United States tr...GET /v1/stats/tourism-intensity

data is a list of records.

FieldTypeExamplerankinteger1countrystringADnamestringAndorrayearinteger2019arrivals_per_residentnumber107.684receipts_per_resident_usdnumber24976arrivalsinteger8235000populationinteger76474ContextGET /v1/holidays

data is a list of records.

FieldTypeExamplecountrystringATdatestring2025-01-01namestringNew Year's Daylocal_namestringNeujahrnationalbooleantrueGET /v1/holidays/{iso}

data is a list of records.

FieldTypeExamplecountrystringCLdatestring2026-01-01namestringNew Year's Daylocal_namestringAño NuevonationalbooleantrueGET /v1/fx

data is a list of records.

FieldTypeExamplequotestringAUDbasestringEURdatestring2026-10-13ratenumber1.6033GET /v1/fx/{currency}

data is a list of records.

FieldTypeExamplequotestringTHBbasestringEURdatestring2025-10-20ratenumber38.106GET /v1/convert

data is a list of records.

FieldTypeExampleperiodstring2025-01valuenumber102.5ratenumber1.035373GET /v1/joins/holidays

data is a list of records.

FieldTypeExampleperiodstring2025-01valuenumber3781629holidaysinteger2holiday_listarray[2 items]holiday_list[].datestring2025-01-01holiday_list[].namestringNew Year's DayGET /v1/holidays/upcoming

data is a list of records.

FieldTypeExamplecountrystringCLdatestring2026-10-31namestringReformation Daylocal_namestringDía Nacional de las Iglesias Evangéli...nationalbooleantruein_daysinteger11GET /v1/fx/latest

data is a list of records.

FieldTypeExamplequotestringUSDratenumber1.1225GET /v1/fuel

data is a list of records.

FieldTypeExamplemonthstring2025-01jet_fuel_usd_gallonnumber2.347jet_fuel_usd_litrenumber0.62jet_fuel_indexnumber125jet_fuel_yoy_pctnumber-9.2crude_usd_barrelnumber79.27crude_indexnumber123.2crude_yoy_pctnumber-1.1GET /v1/fuel/latest

data is a list of records.

FieldTypeExamplemonthstring2026-09jet_fuel_usd_gallonnumber4.388jet_fuel_usd_litrenumber1.159jet_fuel_indexnumber233.7jet_fuel_yoy_pctnumber110.1crude_usd_barrelnumber114.16crude_indexnumber177.4crude_yoy_pctnumber67.9GET /v1/economy/{iso}

data is a list of records.

FieldTypeExampleyearinteger2031projectionbooleantruegdp_growth_pctnumber2.3inflation_pctnumber3gdp_usd_bnnumber486.5gdp_per_capita_usdnumber23676population_mnumber20.55unemployment_pctnumber7.8current_account_pct_gdpnumber-1.5GET /v1/economy/{iso}/tourism

data is a list of records.

FieldTypeExampleyearinteger2025receipts_usdnumber3844116835spending_abroad_usdnumber3152653820arrivalsnull or valuenullreceipts_per_arrival_usdnull or valuenullreceipts_share_gdp_pctnumber1.08GET /v1/economy/outlook

data is a list of records.

FieldTypeExamplecountrystringCLnamestringChilegdp_growth_2026number0.6inflation_2026number3.7gdp_growth_2027number2.6inflation_2027number3.5gdp_growth_2028number2.4inflation_2028number3ReleasesGET /v1/releases

data is a list of records.

FieldTypeExampledatestring2026-10-18countrystringATseries_updatedinteger1968latest_periodstring2026-Q1measuresarray[3 items]GET /v1/releases/latest

data is a list of records.

FieldTypeExampledatestring2026-10-19countrystringHUseries_updatedinteger434latest_periodstring2026-08measuresarray[3 items]GET /v1/freshness

data is a list of records.

FieldTypeExampleisostringKInamestringKiribatilateststring2018-12months_behindinteger94GET /v1/gaps

data is a list of records.

FieldTypeExamplecountrystringVNnamestringVietnammeasurestringarrivalsseriesstringsr_k2v8x0q1firststring2008-01lateststring2026-09months_heldinteger220months_missinginteger0months_not_publishedinteger0months_withheldinteger0months_pendinginteger0complete_pctnumber100missingarray[0 items]not_publishedarray[0 items]withheldarray[0 items]checked_atstring2026-10-14T12:00:00ZGET /v1/calendar

data is a list of records.

FieldTypeExamplecountrystringATnamestringAustrialateststring2026-08next_periodstring2026-09expected_instring2026-11usual_delay_monthsinteger2overduebooleanfalseGET /v1/changelog

data is a list of records.

FieldTypeExampledatestring2026-10-14changestringData gaps for every country, month by...GET /v1/monitor

data is one record.

FieldTypeExamplemonthstring2026-07editionstringworldtitlestringWorldbuilt_atstring2026-10-19T15:42:30Zheadlineobject{...}headline.countriesinteger71headline.growinginteger52headline.comparedinteger71headline.yoy_pctinteger4headline.vs_2019_pctnumber104.5headline.recordsinteger13headline.trustinteger99regionsarray[3 items]regions[].regionstringamericasregions[].namestringAmericasregions[].countriesinteger10regions[].yoy_pctnumber4.1regions[].vs_2019_pctnumber101.1risingarray[3 items]rising[].countrystringXKrising[].namestringKosovorising[].regionstringeuroperising[].measurestringarrivalsrising[].unitstringNumberrising[].seriesstringsr_zqr55sk9rising[].basisstringstaysrising[].valueinteger66955rising[].year_beforeinteger50825rising[].yoy_pctnumber31.7rising[].vs_2019_pctnull or valuenullrising[].series_breakbooleantruerising[].pct_of_recordinteger100rising[].recordbooleantruefallingarray[3 items]falling[].countrystringAUfalling[].namestringAustraliafalling[].regionstringasia-pacificfalling[].measurestringarrivalsfalling[].unitstringNUMfalling[].seriesstringsr_bgakrnejGET /v1/monitor/editions

data is a list of records.

FieldTypeExamplemonthstring2026-08editionstringafricacountriesinteger3statusstringcompletebuilt_atstring2026-10-19T15:42:30ZGET /v1/monitor/paper

data is one record.

FieldTypeExamplemonthstring2026-07issueinteger139referencestringTAPI-WTM-2026-07-WLDtitlestringWorld Tourism Monitor, July 2026built_atstring2026-10-19T15:43:15Zedition_built_atstring2026-10-19T15:42:30ZcitestringTourism API (2026). World Tourism Mon...briefstringInternational arrivals moved +4.0% on...kfarray[3 items]kf[].0stringAgainst July 2019kf[].1string104.5%kf[].2stringkey_findingsarray[3 items]sectionsarray[3 items]sections[].nointeger26sections[].kickstringAppendix Bsections[].titlestringEconomic tablessections[].dekstringGrowth, inflation, unemployment and o...sections[].paragraphsarray[0 items]sections[].figuresarray[0 items]sections[].tablesarray[1 items]factsarray[3 items]figuresarray[3 items]figures[].nointeger19figures[].titlestringThe world figure for the next three m...figures[].unitstringChange on a year, %figures[].typestringbandfigures[].dataobject{...}figures[].data.monthsarray[3 items]figures[].data.valuearray[3 items]figures[].data.lowarray[3 items]figures[].data.higharray[3 items]figures[].sourcestringTourism API, /v1/stats/forecast, comb...figures[].callstring/v1/stats/forecast?country=ES&horizon=3tablesarray[3 items]tables[].nointeger21tables[].titlestringEconomic figures by countrytables[].headarray[3 items]tables[].rowsarray[3 items]tables[].rows[].0string5.5GET /v1/monitor/index

data is a list of records.

FieldTypeExamplemonthstring2025-01countriesinteger90yoy_pctnumber13.4vs_2019_pctnumber109.8growinginteger69comparedinteger88recordsinteger8trustinteger97GET /v1/monitor/trust

data is a list of records.

FieldTypeExamplecountrystringLKnamestringSri Lankaregionstringasia-pacificmeasurestringarrivalsseriesstringsr_mman287yfreshinteger100completeinteger38stableinteger100officialinteger100scoreinteger81gradestringBBulk and accountGET /v1/bulk/{iso}.csv

data is one record.

No fields: the endpoint answers a file or a status.

GET /v1/bulk/all.zip

data is one record.

FieldTypeExamplefilestringall.zipcountriesinteger199built_atstring2026-10-12T09:41:07Zmanifeststring/v1/bulk/manifest.jsonGET /v1/units

data is one record.

FieldTypeExamplecountsarray[3 items]counts[].unitstringnightscounts[].scaleinteger1ratesarray[2 items]rates[].unitstringpercentrates[].scaleinteger1currenciesarray[3 items]periodsarray[3 items]GET /v1/usage

data is one record.

FieldTypeExampletodayinteger214monthinteger3880by_endpointobject{...}by_endpoint./v1/arrivalsinteger120by_endpoint./v1/series/{id}/observationsinteger94GET /v1/status

data is one record.

FieldTypeExampleokbooleantruelast_loadstring2026-10-20T04:14:01Zcountriesinteger214monthly_countriesinteger125monthly_within_2_monthsinteger55endpoints_liveinteger75status_pagestringhttps://tourismapi.com/status

Online: https://tourismapi.com/documentation/guides/schemas

## Batch requests

Pass several series ids, comma separated, and get every series back in one response, keyed by id. One batch counts as one request.

curl "https://api.tourismapi.com/v1/series/observations?ids=jp.arrivals.total.m,ba.arrivals.total.m&from=2026-01" \
  -H "X-API-Key: $TOURISM_API_KEY"

Online: https://tourismapi.com/documentation/guides/batch-requests

## Pagination

List endpoints return limit rows (100 by default, up to 1,000) and a meta.next cursor while more remain. Pass it back as cursor. Cursors are stable while you page, even if new figures arrive.

curl "https://api.tourismapi.com/v1/series?country=AT&limit=1000&cursor=c2" \
  -H "X-API-Key: $TOURISM_API_KEY"

Online: https://tourismapi.com/documentation/guides/pagination

## Errors

{
  "error": {
    "code": "not_found",
    "message": "No series cl.arrivals.total.q",
    "request_id": "req_7f3a1c"
  }
}400 bad_requestA parameter is missing or not in the accepted form.401 no_keyNo X-API-Key header, or the key is not recognised.403 not_in_planThe endpoint or history depth is outside your plan.404 not_foundNo country, series or period by that name.429 rate_limitedToo many requests; retry after Retry-After seconds.503 refreshingA release is loading; retry in a minute.

Online: https://tourismapi.com/documentation/guides/errors

## Periods, dates and frequencies

FormMeans2026-08August 20262026-Q2April to June 20262026The calendar year 20262026-10-12A day (holidays and exchange rates)from and to are inclusive. A quarter ends in its last month and a year ends in December, so a year that has not finished is never treated as newer than a finished month. Timestamps are UTC.

Online: https://tourismapi.com/documentation/guides/periods-dates-and-frequencies

## Units, scaling and currencies

Counts are stored as published, scale 1. Money is in the country's own currency unless you pass currency; then each period is converted at that period's average reference rate, never one rate for all.

curl "https://api.tourismapi.com/v1/convert?id=cl.adr.total.m&currency=USD&from=2026-06" \
  -H "X-API-Key: $TOURISM_API_KEY"The full list is at /v1/units.

Online: https://tourismapi.com/documentation/guides/units-scaling-and-currencies

## Definitions differ between countries

Offices count different things. Some count arrivals at the border, others guests checking in at accommodation, and the set of establishments counted varies. We never blend definitions: each series says what it counts in /v1/series/{id}/metadata, and /v1/compare notes the definition for each country beside its figures.

For like-for-like comparison across Europe, compare nights in tourist accommodation, which most offices publish on one shared definition.

Online: https://tourismapi.com/documentation/guides/definitions-differ-between-countries

## Breakdowns

Beyond totals, many countries publish splits: where visitors live, why they travelled, the type of accommodation and the region they stayed in. Each has its own endpoint, and /v1/countries/{iso} lists which a country carries.

curl "https://api.tourismapi.com/v1/arrivals/by-origin?iso=BA&period=2026-08" \
  -H "X-API-Key: $TOURISM_API_KEY"

Online: https://tourismapi.com/documentation/guides/breakdowns

## Joining holidays and exchange rates

Public holidays for 204 countries (1999 to 2027) and daily reference rates for 44 currencies (from 1999) are held alongside the tourism figures. /v1/joins/holidays returns a series with the holiday and weekend-day count of each period, ready for a model.

curl "https://api.tourismapi.com/v1/joins/holidays?id=jp.arrivals.total.m&from=2025-01" \
  -H "X-API-Key: $TOURISM_API_KEY"

Online: https://tourismapi.com/documentation/guides/joining-holidays-and-exchange-rates

## How the statistics are made

Every statistic is worked out each night from the published figures we hold, never from anyone else's model. A country only carries a statistic it has the history for; /v1/countries/{iso} lists which.

StatisticMethodNeedsTrendMultiplicative decomposition, 2x12 centred average60 unbroken monthsRecoveryMonth against the same month of 20192019 heldBenchmarkYearly index, 2019 = 100, against the regionWhole years, 3 peersForecastHolt-Winters on logs, damped slope, fitted from reopening36 months since reopeningNowcastSame month last year times the recent year-on-year changeA forecastable seriesAnomaliesRemainder after trend and season, robust standard deviationsTrendOrigin shift, concentrationShares of the latest 12 months against the 12 before5 or more monthly marketsForecasts are tested every night on the last 12 published months, and that error is returned with every forecast. Where it is high, it is shown, not hidden.

A nowcast is an estimate and always says so. It is replaced by the published figure the moment the office releases it.

Online: https://tourismapi.com/documentation/guides/how-the-statistics-are-made

## Rate limits

Every response carries your limits and what is left:

X-RateLimit-Limit: ...
X-RateLimit-Remaining: ...
X-RateLimit-Reset: 1760270400When you go over, the answer is 429 with Retry-After in seconds. Wait that long, then carry on; retrying sooner only extends the wait. Limits for each plan are on the pricing page.

Online: https://tourismapi.com/documentation/guides/rate-limits

## Webhooks for new releases

Register an HTTPS endpoint and we send a signed POST when figures are added or revised for the countries you choose.

{
  "event": "release.loaded",
  "country": "CL",
  "to": "2026-08",
  "new": 45,
  "revised": 0,
  "at": "2026-10-12T12:01:11Z"
}Check the X-Signature header against your webhook secret before trusting a delivery. Failed deliveries are retried with growing gaps for a day.

Online: https://tourismapi.com/documentation/guides/webhooks-for-new-releases

## Changelog

Additions, changes and retirements are announced here and at /v1/changelog before they take effect. Nothing is removed without notice.

DateChange2026-10-12Chile monthly accommodation figures, with RevPAR and ADR2026-10-12Bosnia and Herzegovina monthly arrivals and nights by origin

Online: https://tourismapi.com/documentation/guides/changelog

---

# Endpoints

## GET /v1/countries

Every country and territory held, with depth and freshness. Lists every place we hold with how far back each goes, how fresh its newest month is, and which measures it carries. Start here to see what you can ask for.

- Group: Countries
- Plan: Free and up
- Online: https://tourismapi.com/documentation/endpoints/countries

| Parameter | In | Description | Example |
|---|---|---|---|
| `freq` | query | Frequency: monthly, quarterly or annual | `M` |
| `limit` | query | Rows per page, 1 to 1000 | `100` |
| `format` | query | Response format | `json` |

```
curl "https://api.tourismapi.com/v1/countries" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_6f6c5c58fe",
        "data_as_of": "2026-10-20T04:47:58Z",
        "count": 214
    },
    "data": [
        {
            "iso": "BT",
            "name": "Bhutan",
            "region": "Asia Pacific",
            "monthly": true,
            "first": "2025",
            "latest": "2026-09",
            "months_behind": 1,
            "measures": [
                "arrivals",
                "spend"
            ],
            "iso3": "BTN",
            "wikidata_id": "Q917"
        },
        {
            "iso": "CA",
            "name": "Canada",
            "region": "Americas",
            "monthly": true,
            "first": "1972",
            "latest": "2026-09-30",
            "months_behind": 1,
            "measures": [
                "arrivals",
                "nights",
                "spend"
            ],
            "iso3": "CAN",
            "wikidata_id": "Q16"
        },
        {
            "iso": "CR",
            "name": "Costa Rica",
            "region": "Americas",
            "monthly": true,
            "first": "2019",
            "latest": "2026-09",
            "months_behind": 1,
            "measures": [
                "arrivals",
                "nights",
                "spend"
            ],
            "iso3": "CRI",
            "wikidata_id": "Q800"
        }
    ]
}
```

## GET /v1/countries/{iso}

One country: measures, first and latest period. Everything held for one country: each measure, its frequency, first and latest period, and the series behind it.

- Group: Countries
- Plan: Free and up
- Online: https://tourismapi.com/documentation/endpoints/countries-iso

| Parameter | In | Description | Example |
|---|---|---|---|
| `iso` | path | ISO 3166 two-letter country code | `CL` |

```
curl "https://api.tourismapi.com/v1/countries/CL" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_854b538771",
        "data_as_of": "2026-10-20T04:47:58Z",
        "count": 1
    },
    "data": {
        "iso": "CL",
        "name": "Chile",
        "region": "Americas",
        "monthly": true,
        "first": "2026",
        "latest": "2026-08",
        "months_behind": 2,
        "measures": [
            "arrivals",
            "nights",
            "spend"
        ],
        "statistics": [],
        "iso3": "CHL",
        "wikidata_id": "Q298"
    }
}
```

## GET /v1/countries/{iso}/coverage

What each measure covers for a country, month by month. A month-by-month grid of which measures have a value, so you can see gaps before you query.

- Group: Countries
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/countries-iso-coverage

| Parameter | In | Description | Example |
|---|---|---|---|
| `iso` | path | ISO 3166 two-letter country code | `CL` |
| `from` | query | First period to return | `2025-01` |
| `to` | query | Last period to return | `2026-08` |

```
curl "https://api.tourismapi.com/v1/countries/CL/coverage" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_9e29ea8228",
        "data_as_of": "2026-10-20T04:47:58Z",
        "count": 17,
        "country": "CL",
        "name": "Chile"
    },
    "data": [
        {
            "measure": "arrivals",
            "freq": "A",
            "breakdown": "total",
            "series": 2,
            "first": "2008",
            "last": "2024",
            "headline": "sr_gnvbx5rt"
        },
        {
            "measure": "arrivals",
            "freq": "M",
            "breakdown": "accommodation",
            "series": 1,
            "first": "2026-06",
            "last": "2026-08",
            "headline": null
        },
        {
            "measure": "capacity",
            "freq": "M",
            "breakdown": "total",
            "series": 6,
            "first": "2026-06",
            "last": "2026-08",
            "headline": null
        }
    ]
}
```

## GET /v1/countries/{iso}/latest

The newest figure for every measure in one call. The newest finished period for every measure in a single response, with the change on the same period last year.

- Group: Countries
- Plan: Free and up
- Online: https://tourismapi.com/documentation/endpoints/countries-iso-latest

| Parameter | In | Description | Example |
|---|---|---|---|
| `iso` | path | ISO 3166 two-letter country code | `CL` |
| `currency` | query | Convert money to this ISO 4217 currency at each period's rate | `USD` |

```
curl "https://api.tourismapi.com/v1/countries/CL/latest?currency=USD" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_7f3a1c",
        "data_as_of": "2026-10-12T12:01:11Z",
        "count": 1,
        "next": null
    },
    "data": {
        "iso": "CL",
        "period": "2026-08",
        "figures": [
            {
                "measure": "arrivals",
                "value": 798946,
                "unit": "arrivals",
                "yoy_pct": -1.8
            },
            {
                "measure": "nights",
                "value": 1696082,
                "unit": "nights",
                "yoy_pct": -0.7
            },
            {
                "measure": "adr",
                "value": 89828,
                "unit": "CLP",
                "yoy_pct": 1.6
            }
        ]
    }
}
```

## GET /v1/regions

World regions and the countries in each. The regions used across the API and the ISO codes in each.

- Group: Countries
- Plan: Free and up
- Online: https://tourismapi.com/documentation/endpoints/regions

```
curl "https://api.tourismapi.com/v1/regions" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_bb79abe3b1",
        "data_as_of": "2026-10-20T04:47:58Z",
        "count": 5
    },
    "data": [
        {
            "region": "americas",
            "name": "Americas",
            "countries": [
                "VE",
                "HT",
                "GY"
            ]
        },
        {
            "region": "asia-pacific",
            "name": "Asia Pacific",
            "countries": [
                "FM",
                "AS",
                "MM"
            ]
        },
        {
            "region": "europe",
            "name": "Europe",
            "countries": [
                "KG",
                "BY",
                "FO"
            ]
        }
    ]
}
```

## GET /v1/regions/{region}

Regional totals built from national figures. Totals for a region built from its countries' own figures, with how many countries reported in each period.

- Group: Countries
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/regions-region

| Parameter | In | Description | Example |
|---|---|---|---|
| `region` | path | Region code from /v1/regions | `europe` |
| `measure` | query | arrivals, nights, spend, departures, occupancy or capacity | `arrivals` |
| `from` | query | First period to return | `2025-01` |
| `to` | query | Last period to return | `2026-08` |

```
curl "https://api.tourismapi.com/v1/regions/europe?measure=arrivals&from=2025-01&to=2026-08" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_ac2f4bfa96",
        "data_as_of": "2026-10-20T04:47:58Z",
        "count": 20,
        "region": "europe",
        "name": "Europe",
        "measure": "arrivals",
        "countries": [
            "FR",
            "GI",
            "IE",
            "SI",
            "AT",
            "CH",
            "EE",
            "ES",
            "FI",
            "GB",
            "HR",
            "HU",
            "IS",
            "IT",
            "LV",
            "ME",
            "NL",
            "NO",
            "TR",
            "AL",
            "BE",
            "BG",
            "CY",
            "CZ",
            "DE",
            "DK",
            "GR",
            "LI",
            "LT",
            "LU",
            "MK",
            "PL",
            "PT",
            "RO",
            "RS",
            "SE",
            "SK",
            "SM",
            "XK"
        ],
        "note": "The sum of each country's own headline series; countries count arrivals in their own way, and a month with fewer countries reporting is not comparable."
    },
    "data": [
        {
            "period": "2025-01",
            "value": 51963828,
            "countries_reporting": 37
        },
        {
            "period": "2025-02",
            "value": 55290486,
            "countries_reporting": 37
        },
        {
            "period": "2025-03",
            "value": 63097748,
            "countries_reporting": 36
        }
    ]
}
```

## GET /v1/countries/{iso}/peers

The other countries in the same world region. Every other country in the same world region, with how far back and how fresh each is. A quick list to compare against.

- Group: Countries
- Plan: Free and up
- Online: https://tourismapi.com/documentation/endpoints/countries-iso-peers

| Parameter | In | Description | Example |
|---|---|---|---|
| `iso` | path | ISO 3166 two-letter country code | `CL` |

```
curl "https://api.tourismapi.com/v1/countries/CL/peers" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_b3c11016b0",
        "data_as_of": "2026-10-20T04:47:58Z",
        "count": 40,
        "iso": "CL",
        "region": "Americas"
    },
    "data": [
        {
            "iso": "CA",
            "name": "Canada",
            "region": "Americas",
            "monthly": true,
            "first": "1972",
            "latest": "2026-09-30",
            "months_behind": 1,
            "measures": [
                "arrivals",
                "nights",
                "spend"
            ],
            "iso3": "CAN",
            "wikidata_id": "Q16"
        },
        {
            "iso": "CR",
            "name": "Costa Rica",
            "region": "Americas",
            "monthly": true,
            "first": "2019",
            "latest": "2026-09",
            "months_behind": 1,
            "measures": [
                "arrivals",
                "nights",
                "spend"
            ],
            "iso3": "CRI",
            "wikidata_id": "Q800"
        },
        {
            "iso": "CW",
            "name": "Curaçao",
            "region": "Americas",
            "monthly": true,
            "first": "2016",
            "latest": "2026-09",
            "months_behind": 1,
            "measures": [
                "arrivals",
                "nights",
                "spend"
            ],
            "iso3": "CUW",
            "wikidata_id": "Q25279"
        }
    ]
}
```

## GET /v1/countries/{iso}/brief

Where a country stands, written and in figures. The country's latest month in a short written brief, checked against the figures, with the fact sheet behind it: the change on a year, against 2019 and year to date, the last six months, its rank in the region, its rivals, jet fuel, its currency, growth and the forecast for the next three months. Remade when a new month is published.

- Group: Countries
- Plan: Analyst and up
- Online: https://tourismapi.com/documentation/endpoints/countries-iso-brief

```
curl "https://api.tourismapi.com/v1/countries/{iso}/brief" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_7f3a1c",
        "data_as_of": "2026-10-14T06:00:00Z",
        "count": 1,
        "next": null
    },
    "data": [
        {
            "country": "TH",
            "name": "Thailand",
            "month": "2026-08",
            "headline": "A stronger August, still short of 2019, with nearby rivals growing faster",
            "brief": [
                "Thailand recorded 2,714,880 visitor arrivals in August 2026, +6.4% on a year and 93.1% of the August 2019 level."
            ],
            "figures": {
                "value": 2714880,
                "yoy_pct": 6.4,
                "vs_2019_pct": 93.1,
                "ytd_yoy_pct": 4.9,
                "region_rank": {
                    "rank": 5,
                    "of": 12
                },
                "trust": {
                    "grade": "A",
                    "score": 96
                }
            },
            "last_six": [
                {
                    "month": "2026-08",
                    "value": 2714880,
                    "yoy_pct": 6.4,
                    "vs_2019_pct": 93.1,
                    "vs_3yr_avg_pct": 12.8
                }
            ],
            "outlook": [
                {
                    "month": "2026-09",
                    "value": 2410000,
                    "low": 2310000,
                    "high": 2520000,
                    "yoy_pct": 5.2
                }
            ],
            "context": {
                "jet_fuel": {
                    "month": "2026-08",
                    "usd_gallon": 3.724,
                    "yoy_pct": 17.8
                },
                "currency": {
                    "currency": "THB",
                    "per_eur": 37.12,
                    "yoy_pct": -2.1
                },
                "growth": {
                    "year": 2026,
                    "pct": 2.8,
                    "projected": true
                }
            },
            "rivals": [
                {
                    "country": "VN",
                    "name": "Vietnam",
                    "score": 86,
                    "shared_markets": [
                        "China",
                        "Korea",
                        "Taiwan"
                    ],
                    "month": "2026-08",
                    "yoy_pct": 18.2
                }
            ],
            "rival_for": [
                "KH",
                "LA",
                "LK"
            ]
        }
    ]
}
```

## GET /v1/countries/{iso}/rivals

The destinations a country competes with. Up to six destinations competing for the same travellers, scored 0 to 100 from the source markets they share, how alike their seasons are, their size and region, with the shared markets named, and the countries that count this one as a rival. Remade every day.

- Group: Countries
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/countries-iso-rivals

```
curl "https://api.tourismapi.com/v1/countries/{iso}/rivals" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_7f3a1c",
        "data_as_of": "2026-10-14T06:00:00Z",
        "count": 1,
        "next": null
    },
    "data": [
        {
            "country": "VN",
            "name": "Vietnam",
            "rank": 1,
            "score": 86,
            "shared_markets": [
                {
                    "country": "CN",
                    "name": "China"
                },
                {
                    "country": "KR",
                    "name": "South Korea"
                }
            ],
            "basis": "shared source markets, season, size and region"
        }
    ]
}
```

## GET /v1/series

Find series by country, measure, frequency or text. Browse the 2.75 million series. Filter by country, measure and frequency; every result carries its id for the calls below.

- Group: Series
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/series

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | One or more ISO codes, comma separated | `CL,BA,AT` |
| `measure` | query | arrivals, nights, spend, departures, occupancy or capacity | `arrivals` |
| `freq` | query | Frequency: monthly, quarterly or annual | `M` |
| `limit` | query | Rows per page, 1 to 1000 | `100` |
| `cursor` | query | The next value from the previous page |  |

```
curl "https://api.tourismapi.com/v1/series?country=CL&measure=arrivals" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_0ba6034bd6",
        "data_as_of": "2026-10-20T04:47:58Z",
        "count": 3,
        "next_cursor": null,
        "page": 1,
        "per_page": 100,
        "total": 3,
        "total_pages": 1,
        "next_page": null,
        "prev_page": null
    },
    "data": [
        {
            "id": "sr_gnvbx5rt",
            "alias": "cl.arrivals.total.a",
            "country": "CL",
            "name": "CHL, _Z, ARRIVALS, PS, _T, _Z, TDS, A",
            "measure": "arrivals",
            "breakdown": null,
            "freq": "A",
            "unit": "PS",
            "first": "2008",
            "last": "2024",
            "points": 17,
            "headline": true
        },
        {
            "id": "sr_f93x9ssn",
            "alias": null,
            "country": "CL",
            "name": "CHL, _Z, ARRIVALS, PS, SAME_DAY, _Z, TDS, A",
            "measure": "arrivals",
            "breakdown": null,
            "freq": "A",
            "unit": "PS",
            "first": "2008",
            "last": "2024",
            "points": 17,
            "headline": false
        },
        {
            "id": "sr_swj304b6",
            "alias": null,
            "country": "CL",
            "name": "Tourist arrivals in Chile: hotels",
            "measure": "arrivals",
            "breakdown": "accommodation",
            "freq": "M",
            "unit": "arrivals",
            "first": "2026-06",
            "last": "2026-08",
            "points": 3,
            "headline": false
        }
    ]
}
```

## GET /v1/series/{id}

One series with its unit, frequency and office. The definition of one series: name, unit, frequency, first and latest period and the breakdown it belongs to.

- Group: Series
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/series-id

| Parameter | In | Description | Example |
|---|---|---|---|
| `id` | path | Series id from /v1/series | `jp.arrivals.total.m` |

```
curl "https://api.tourismapi.com/v1/series/jp.arrivals.total.m" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_890bd7da3e",
        "data_as_of": "2026-10-20T04:47:58Z",
        "count": 1
    },
    "data": {
        "id": "sr_wxq9yq5v",
        "alias": "jp.arrivals.total.m",
        "country": "JP",
        "name": "Visitor arrivals to Japan from Total",
        "measure": "arrivals",
        "breakdown": null,
        "freq": "M",
        "unit": "visitors",
        "first": "2003-01",
        "last": "2026-08",
        "points": 284,
        "headline": true
    }
}
```

## GET /v1/series/{id}/observations

Values for any period range, monthly to annual. The values of one series for any range. Missing months are listed as null with a reason, never silently dropped.

- Group: Series
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/series-id-observations

| Parameter | In | Description | Example |
|---|---|---|---|
| `id` | path | Series id from /v1/series | `jp.arrivals.total.m` |
| `from` | query | First period to return | `2025-01` |
| `to` | query | Last period to return | `2026-08` |
| `format` | query | Response format | `json` |

```
curl "https://api.tourismapi.com/v1/series/jp.arrivals.total.m/observations?from=2025-01&to=2026-08" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_db5940af9c",
        "data_as_of": "2026-10-20T04:47:58Z",
        "count": 20,
        "series": "sr_wxq9yq5v",
        "name": "Visitor arrivals to Japan from Total",
        "unit": "visitors",
        "freq": "M"
    },
    "data": [
        {
            "period": "2025-01",
            "value": 3781629
        },
        {
            "period": "2025-02",
            "value": 3258491
        },
        {
            "period": "2025-03",
            "value": 3497755
        }
    ]
}
```

## GET /v1/series/{id}/revisions

Every figure an office later changed, with both values. Each time a published figure was changed: the period, the old and new value and when we saw the change.

- Group: Series
- Plan: Analyst and up
- Online: https://tourismapi.com/documentation/endpoints/series-id-revisions

| Parameter | In | Description | Example |
|---|---|---|---|
| `id` | path | Series id from /v1/series | `jp.arrivals.total.m` |
| `since` | query | Only changes after this UTC time | `2026-10-01T00:00:00Z` |

```
curl "https://api.tourismapi.com/v1/series/jp.arrivals.total.m/revisions" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_7f3a1c",
        "data_as_of": "2026-10-12T12:01:11Z",
        "count": 1,
        "next": null
    },
    "data": [
        {
            "period": "2026-06",
            "old": 48211904,
            "new": 48390117,
            "seen_at": "2026-10-12T10:51:15Z"
        }
    ]
}
```

## GET /v1/series/{id}/metadata

Definitions, units and breaks in the series. What the series counts, how values are scaled and any breaks where the method changed.

- Group: Series
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/series-id-metadata

| Parameter | In | Description | Example |
|---|---|---|---|
| `id` | path | Series id from /v1/series | `jp.arrivals.total.m` |

```
curl "https://api.tourismapi.com/v1/series/jp.arrivals.total.m/metadata" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_89b193ab42",
        "data_as_of": "2026-10-20T04:47:58Z",
        "count": 1
    },
    "data": {
        "id": "sr_wxq9yq5v",
        "alias": "jp.arrivals.total.m",
        "country": "JP",
        "name": "Visitor arrivals to Japan from Total",
        "measure": "arrivals",
        "breakdown": null,
        "freq": "M",
        "unit": "visitors",
        "first": "2003-01",
        "last": "2026-08",
        "points": 284,
        "headline": true,
        "table": "Visitor arrivals to Japan by nationality",
        "derived": false,
        "latest_value": 3098900,
        "currency": null,
        "scale": null,
        "revisions": 0,
        "last_revised": null,
        "updated": "2026-10-13T02:37:15Z"
    }
}
```

## GET /v1/series/search

Full-text search over two million series names. Free-text search across series names in every language held, ranked by match and freshness.

- Group: Series
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/series-search

| Parameter | In | Description | Example |
|---|---|---|---|
| `q` | query | Words to match in series names | `hotel nights foreign` |
| `country` | query | One or more ISO codes, comma separated | `CL,BA,AT` |
| `limit` | query | Rows per page, 1 to 1000 | `100` |

```
curl "https://api.tourismapi.com/v1/series/search?q=hotel nights foreign" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_80ea08050d",
        "data_as_of": "2026-10-20T04:48:00Z",
        "count": 25,
        "q": "hotel nights foreign"
    },
    "data": [
        {
            "id": "sr_2efm01hs",
            "alias": null,
            "country": "NO",
            "name": "Hotels and similar establishments, Foreign national, total, Guest nights",
            "measure": "capacity",
            "breakdown": null,
            "freq": "M",
            "unit": "",
            "first": "2010-01",
            "last": "2019-12",
            "points": 120,
            "headline": false
        },
        {
            "id": "sr_yj47ah45",
            "alias": null,
            "country": "NO",
            "name": "Hotels and similar establishments, Foreign national, total, Guest nights so far this year",
            "measure": "capacity",
            "breakdown": null,
            "freq": "M",
            "unit": "",
            "first": "2010-01",
            "last": "2019-12",
            "points": 120,
            "headline": false
        },
        {
            "id": "sr_sn352fer",
            "alias": null,
            "country": "BE",
            "name": "Nights spent at accommodation: Foreign country, Hotels; holiday and other short-stay accommodation; camping grounds, recreational vehicle parks and trailer parks",
            "measure": "nights",
            "breakdown": "origin",
            "freq": "M",
            "unit": "Number",
            "first": "1990-01",
            "last": "2026-07",
            "points": 439,
            "headline": false
        }
    ]
}
```

## GET /v1/tables

The office tables the series come from, by country. The published tables behind the series for a country, with how many series each holds.

- Group: Series
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/tables

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | One or more ISO codes, comma separated | `CL,BA,AT` |
| `limit` | query | Rows per page, 1 to 1000 | `100` |

```
curl "https://api.tourismapi.com/v1/tables?country=CL" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_fc141bc7cb",
        "data_as_of": "2026-10-20T04:48:00Z",
        "count": 12,
        "country": "CL"
    },
    "data": [
        {
            "table": "Enterprises and employment in tourism",
            "series": 18,
            "first": "2008",
            "last": "2024",
            "measures": []
        },
        {
            "table": "Chile monthly tourist accommodation survey",
            "series": 15,
            "first": "2026-06",
            "last": "2026-08",
            "measures": [
                "nights",
                "occupancy",
                "spend"
            ]
        },
        {
            "table": "Outbound tourism",
            "series": 9,
            "first": "2008",
            "last": "2024",
            "measures": [
                "departures"
            ]
        }
    ]
}
```

## GET /v1/series/{id}/latest

The newest figure of a series, with a year before. The newest figure your plan can see for one series, the same period a year before, and the change in percent.

- Group: Series
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/series-id-latest

| Parameter | In | Description | Example |
|---|---|---|---|
| `id` | path | Series id from /v1/series | `jp.arrivals.total.m` |

```
curl "https://api.tourismapi.com/v1/series/jp.arrivals.total.m/latest" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_d440128e7b",
        "data_as_of": "2026-10-20T04:48:00Z",
        "count": 1
    },
    "data": {
        "series": "sr_wxq9yq5v",
        "name": "Visitor arrivals to Japan from Total",
        "unit": "visitors",
        "period": "2026-08",
        "value": 3098900,
        "year_before": 3428406,
        "yoy_pct": -9.6
    }
}
```

## GET /v1/arrivals

Visitor arrivals, any country, any frequency. Total visitor arrivals for one or more countries, in each country's own headline definition, monthly where the country publishes monthly.

- Group: Measures
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/arrivals

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | One or more ISO codes, comma separated | `CL,BA,AT` |
| `freq` | query | Frequency: monthly, quarterly or annual | `M` |
| `from` | query | First period to return | `2025-01` |
| `to` | query | Last period to return | `2026-08` |
| `format` | query | Response format | `json` |

```
curl "https://api.tourismapi.com/v1/arrivals?country=CL,BA,AT&from=2025-01&to=2026-08" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_6bf614b1dc",
        "data_as_of": "2026-10-20T04:48:00Z",
        "count": 3,
        "measure": "arrivals"
    },
    "data": [
        {
            "country": "CL",
            "series": "sr_gnvbx5rt",
            "name": "CHL, _Z, ARRIVALS, PS, _T, _Z, TDS, A",
            "unit": "PS",
            "freq": "A",
            "observations": []
        },
        {
            "country": "BA",
            "series": null,
            "observations": [],
            "note": "No arrivals series held for BA."
        },
        {
            "country": "AT",
            "series": "sr_tn5yvzzv",
            "name": "Arrivals at accommodation: Total, Hotels; holiday and other short-stay accommodation; camping grounds, recreational vehicle parks and trailer parks",
            "unit": "Number",
            "freq": "M",
            "observations": [
                {
                    "period": "2026-05",
                    "value": 3378684
                },
                {
                    "period": "2026-06",
                    "value": 4093346
                },
                {
                    "period": "2026-07",
                    "value": 5429162
                }
            ]
        }
    ]
}
```

## GET /v1/nights

Overnight stays in all accommodation. Nights spent in tourist accommodation, total and split by residents and non-residents where published.

- Group: Measures
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/nights

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | One or more ISO codes, comma separated | `CL,BA,AT` |
| `freq` | query | Frequency: monthly, quarterly or annual | `M` |
| `from` | query | First period to return | `2025-01` |
| `to` | query | Last period to return | `2026-08` |
| `format` | query | Response format | `json` |

```
curl "https://api.tourismapi.com/v1/nights?country=CL,BA,AT&from=2025-01&to=2026-08" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_9f83727052",
        "data_as_of": "2026-10-20T04:48:00Z",
        "count": 3,
        "measure": "nights"
    },
    "data": [
        {
            "country": "CL",
            "series": "sr_ay31rkhs",
            "name": "CHL, TRIPS, PS, OVERNIGHT, _T, TDS, A",
            "unit": "PS",
            "freq": "A",
            "observations": []
        },
        {
            "country": "BA",
            "series": "sr_226y4v9p",
            "name": "Tourist nights in Bosnia and Herzegovina: total",
            "unit": "nights",
            "freq": "M",
            "observations": [
                {
                    "period": "2026-06",
                    "value": 388414
                },
                {
                    "period": "2026-07",
                    "value": 510876
                },
                {
                    "period": "2026-08",
                    "value": 560221
                }
            ]
        },
        {
            "country": "AT",
            "series": "sr_09pbgpx5",
            "name": "Nights, Carinthia <AT21>, Netherlands <25>",
            "unit": "nights",
            "freq": "M",
            "observations": [
                {
                    "period": "2026-06",
                    "value": 86625
                },
                {
                    "period": "2026-07",
                    "value": 304633
                },
                {
                    "period": "2026-08",
                    "value": 273538
                }
            ]
        }
    ]
}
```

## GET /v1/spend

Visitor spend in local currency or converted. What visitors spent, in local currency, or converted at each period's reference rate.

- Group: Measures
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/spend

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | One or more ISO codes, comma separated | `CL,BA,AT` |
| `freq` | query | Frequency: monthly, quarterly or annual | `M` |
| `from` | query | First period to return | `2025-01` |
| `to` | query | Last period to return | `2026-08` |
| `currency` | query | Convert money to this ISO 4217 currency at each period's rate | `USD` |

```
curl "https://api.tourismapi.com/v1/spend?country=CL,JP,IE&from=2025-01&to=2026-08&currency=USD" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_b34a6c9ee0",
        "data_as_of": "2026-10-20T04:48:00Z",
        "count": 3,
        "measure": "spend",
        "currency": "USD",
        "converted_at": "the average rate of each period"
    },
    "data": [
        {
            "country": "CL",
            "series": "sr_qn2jpsb5",
            "name": "Travel spending (debit), CHL, quarterly",
            "unit": "US dollars, x10^6",
            "freq": "Q",
            "observations": [
                {
                    "period": "2025-Q4",
                    "value": 752348814.62
                },
                {
                    "period": "2026-Q1",
                    "value": 975684952.45
                },
                {
                    "period": "2026-Q2",
                    "value": 770375501.44
                }
            ],
            "note": "This series is not in a currency we can convert; shown as published."
        },
        {
            "country": "JP",
            "series": "sr_6xrp44rt",
            "name": "Travel receipts (credit), JPN, quarterly",
            "unit": "US dollars, x10^6",
            "freq": "Q",
            "observations": [
                {
                    "period": "2025-Q4",
                    "value": 16806923240.334
                },
                {
                    "period": "2026-Q1",
                    "value": 15080441399.437
                },
                {
                    "period": "2026-Q2",
                    "value": 16225839715.666
                }
            ],
            "note": "This series is not in a currency we can convert; shown as published."
        },
        {
            "country": "IE",
            "series": "sr_918xs3ky",
            "name": "Mean Nightly Accommodation Costs of Overnight Foreign Visitors, USA & Canada",
            "unit": "USD",
            "freq": "M",
            "observations": [
                {
                    "period": "2026-06",
                    "value": 131.31,
                    "rate": 1.1518
                },
                {
                    "period": "2026-07",
                    "value": 129.02,
                    "rate": 1.141748
                },
                {
                    "period": "2026-08",
                    "value": 125.21,
                    "rate": 1.15931
                }
            ]
        }
    ]
}
```

## GET /v1/departures

Residents travelling abroad. Trips abroad by residents of a country: the outbound side of the same flows.

- Group: Measures
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/departures

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | One or more ISO codes, comma separated | `CL,BA,AT` |
| `freq` | query | Frequency: monthly, quarterly or annual | `M` |
| `from` | query | First period to return | `2025-01` |
| `to` | query | Last period to return | `2026-08` |

```
curl "https://api.tourismapi.com/v1/departures?country=CL,BA,AT&from=2025-01&to=2026-08" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_3ad052948b",
        "data_as_of": "2026-10-20T04:48:00Z",
        "count": 3,
        "measure": "departures"
    },
    "data": [
        {
            "country": "CL",
            "series": "sr_r3pa07sb",
            "name": "CHL, _Z, DEPARTURES, PS, _T, _Z, _Z, A",
            "unit": "PS",
            "freq": "A",
            "observations": []
        },
        {
            "country": "BA",
            "series": null,
            "observations": [],
            "note": "No departures series held for BA."
        },
        {
            "country": "AT",
            "series": "sr_f8fd0f1e",
            "name": "Trips by duration, purpose and main destination: All countries of the world, Total, 1 night or over",
            "unit": "Number",
            "freq": "A",
            "observations": [
                {
                    "period": "2025",
                    "value": 30456817
                }
            ]
        }
    ]
}
```

## GET /v1/occupancy

Bed and room occupancy rates. Bed and room occupancy as a percentage, with the rate per room where the country publishes it.

- Group: Measures
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/occupancy

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | One or more ISO codes, comma separated | `CL,BA,AT` |
| `freq` | query | Frequency: monthly, quarterly or annual | `M` |
| `from` | query | First period to return | `2025-01` |
| `to` | query | Last period to return | `2026-08` |

```
curl "https://api.tourismapi.com/v1/occupancy?country=CL,BA,AT&from=2025-01&to=2026-08" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_df49822e84",
        "data_as_of": "2026-10-20T04:48:00Z",
        "count": 3,
        "measure": "occupancy"
    },
    "data": [
        {
            "country": "CL",
            "series": null,
            "observations": [],
            "note": "No occupancy series held for CL."
        },
        {
            "country": "BA",
            "series": null,
            "observations": [],
            "note": "No occupancy series held for BA."
        },
        {
            "country": "AT",
            "series": "sr_jsdezbr0",
            "name": "Net occupancy of bed places and rooms: Bedrooms",
            "unit": "Percentage",
            "freq": "M",
            "observations": [
                {
                    "period": "2026-05",
                    "value": 41
                },
                {
                    "period": "2026-06",
                    "value": 53.5
                },
                {
                    "period": "2026-07",
                    "value": 67.1
                }
            ]
        }
    ]
}
```

## GET /v1/capacity

Establishments, rooms and beds available. Supply: open establishments, rooms and bed places by period.

- Group: Measures
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/capacity

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | One or more ISO codes, comma separated | `CL,BA,AT` |
| `freq` | query | Frequency: monthly, quarterly or annual | `M` |
| `from` | query | First period to return | `2025-01` |
| `to` | query | Last period to return | `2026-08` |

```
curl "https://api.tourismapi.com/v1/capacity?country=CL,BA,AT&from=2025-01&to=2026-08" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_24786a4ab7",
        "data_as_of": "2026-10-20T04:48:00Z",
        "count": 3,
        "measure": "capacity"
    },
    "data": [
        {
            "country": "CL",
            "series": null,
            "observations": [],
            "note": "No capacity series held for CL."
        },
        {
            "country": "BA",
            "series": null,
            "observations": [],
            "note": "No capacity series held for BA."
        },
        {
            "country": "AT",
            "series": "sr_ckgy7wbt",
            "name": "Accommodation capacity: Bedplaces, Hotels; holiday and other short-stay accommodation; camping grounds, recreational vehicle parks and trailer parks",
            "unit": "Number",
            "freq": "A",
            "observations": [
                {
                    "period": "2025",
                    "value": 1167138
                }
            ]
        }
    ]
}
```

## GET /v1/arrivals/by-origin

Arrivals split by country of residence. Arrivals in one country broken down by where visitors live, ranked by size.

- Group: Breakdowns
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/arrivals-by-origin

| Parameter | In | Description | Example |
|---|---|---|---|
| `iso` | path | ISO 3166 two-letter country code | `CL` |
| `period` | query | One period; defaults to the latest finished one | `2026-08` |
| `limit` | query | Rows per page, 1 to 1000 | `100` |

```
curl "https://api.tourismapi.com/v1/arrivals/by-origin?iso=CA" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_d00a016153",
        "data_as_of": "2026-10-20T04:48:11Z",
        "count": 50,
        "country": "CA",
        "measure": "arrivals",
        "breakdown": "origin",
        "period": "2026-07",
        "freq": "M"
    },
    "data": [
        {
            "series": "sr_4zqx3d8x",
            "name": "Canada, Non-resident visitors entering Canada",
            "unit": "Visitors",
            "value": 4584611
        },
        {
            "series": "sr_khdrh7f3",
            "name": "Canada, United States of America residents entering Canada",
            "unit": "Visitors",
            "value": 3547732
        },
        {
            "series": "sr_2q7mr73c",
            "name": "Ontario, Non-resident visitors entering Canada",
            "unit": "Visitors",
            "value": 2022507
        }
    ]
}
```

## GET /v1/nights/by-accommodation

Nights by hotels, camping, rentals and more. Nights split by type of accommodation for one country and period.

- Group: Breakdowns
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/nights-by-accommodation

| Parameter | In | Description | Example |
|---|---|---|---|
| `iso` | path | ISO 3166 two-letter country code | `CL` |
| `period` | query | One period; defaults to the latest finished one | `2026-08` |

```
curl "https://api.tourismapi.com/v1/nights/by-accommodation?iso=CL&period=2026-08" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_97fd15c176",
        "data_as_of": "2026-10-20T04:48:12Z",
        "count": 1,
        "country": "CL",
        "measure": "nights",
        "breakdown": "accommodation",
        "period": "2026-08",
        "freq": "M"
    },
    "data": [
        {
            "series": "sr_85g2v1ta",
            "name": "Tourist nights in Chile: hotels",
            "unit": "nights",
            "value": 1333264
        }
    ]
}
```

## GET /v1/nights/by-region

Nights by province, county or region. Nights for each region inside a country, in the country's own regional units.

- Group: Breakdowns
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/nights-by-region

| Parameter | In | Description | Example |
|---|---|---|---|
| `iso` | path | ISO 3166 two-letter country code | `CL` |
| `period` | query | One period; defaults to the latest finished one | `2026-08` |

```
curl "https://api.tourismapi.com/v1/nights/by-region?iso=SI" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_1566e78b1e",
        "data_as_of": "2026-10-20T04:48:14Z",
        "count": 50,
        "country": "SI",
        "measure": "nights",
        "breakdown": "region",
        "period": "2025",
        "freq": "A"
    },
    "data": [
        {
            "series": "sr_d1jex8kh",
            "name": "SLOVENIA",
            "unit": "",
            "value": 17843311
        },
        {
            "series": "sr_dtkwatyh",
            "name": "Nights spent, NUTS 2 regions: Total, Hotels; holiday and other short-stay accommodation; camping grounds, recreational vehicle parks and trailer parks, Slovenija",
            "unit": "Number",
            "value": 17827408
        },
        {
            "series": "sr_re4a2m9s",
            "name": "SLOVENIA, Foreign, Overnight stays",
            "unit": "",
            "value": 13358792
        }
    ]
}
```

## GET /v1/arrivals/by-purpose

Leisure, business and visiting friends. Arrivals by purpose of trip where the country asks visitors why they came.

- Group: Breakdowns
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/arrivals-by-purpose

| Parameter | In | Description | Example |
|---|---|---|---|
| `iso` | path | ISO 3166 two-letter country code | `CL` |
| `period` | query | One period; defaults to the latest finished one | `2026-08` |

```
curl "https://api.tourismapi.com/v1/arrivals/by-purpose?iso=NL" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_42ffdfc566",
        "data_as_of": "2026-10-20T04:48:15Z",
        "count": 50,
        "country": "NL",
        "measure": "arrivals",
        "breakdown": "purpose",
        "period": "2010",
        "freq": "A"
    },
    "data": [
        {
            "series": "sr_qv12q8ks",
            "name": "The Netherlands, All leisure accommodation, Netherlands (x1 000), year",
            "unit": "number",
            "value": 40540800
        },
        {
            "series": "sr_e6x7v623",
            "name": "The Netherlands, Holiday parks, Netherlands (x1 000), year",
            "unit": "number",
            "value": 21176900
        },
        {
            "series": "sr_x3qbr2e9",
            "name": "The Netherlands, Camp sites, Netherlands (x1 000), year",
            "unit": "number",
            "value": 16043700
        }
    ]
}
```

## GET /v1/origins/{iso}

Where one country's residents travel to. Reverses the by-origin tables: every destination that counts visitors from this country.

- Group: Breakdowns
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/origins-iso

| Parameter | In | Description | Example |
|---|---|---|---|
| `iso` | path | ISO 3166 two-letter country code | `CL` |
| `period` | query | One period; defaults to the latest finished one | `2026-08` |
| `limit` | query | Rows per page, 1 to 1000 | `100` |

```
curl "https://api.tourismapi.com/v1/origins/CL?period=2026-08" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_5f00866b9c",
        "data_as_of": "2026-10-20T04:48:17Z",
        "count": 7,
        "origin": "CL",
        "note": "Each destination's own count and latest period; units differ (hotel guests, border arrivals or visitors), so read them side by side, not as one total."
    },
    "data": [
        {
            "destination": "CR",
            "name": "Costa Rica",
            "series": "sr_h1jk3ec9",
            "unit": "tourists",
            "freq": "M",
            "period": "2026-08",
            "value": 1420
        },
        {
            "destination": "CW",
            "name": "Curaçao",
            "series": "sr_vhv39yc1",
            "unit": "visitors",
            "freq": "M",
            "period": "2026-08",
            "value": 786
        },
        {
            "destination": "TH",
            "name": "Thailand",
            "series": "sr_gzg0tnrr",
            "unit": "tourists",
            "freq": "M",
            "period": "2026-08",
            "value": 755
        }
    ]
}
```

## GET /v1/compare

Several countries side by side, same definitions. One measure for several countries on a shared period grid, with each country's definition noted.

- Group: Compare and rank
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/compare

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | One or more ISO codes, comma separated | `CL,BA,AT` |
| `measure` | query | arrivals, nights, spend, departures, occupancy or capacity | `arrivals` |
| `from` | query | First period to return | `2025-01` |
| `to` | query | Last period to return | `2026-08` |

```
curl "https://api.tourismapi.com/v1/compare?country=CL,BA,AT&measure=arrivals&from=2025-01&to=2026-08" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_332f112500",
        "data_as_of": "2026-10-20T04:48:17Z",
        "count": 19,
        "measure": "arrivals",
        "series": {
            "CL": null,
            "BA": null,
            "AT": "sr_tn5yvzzv"
        }
    },
    "data": [
        {
            "period": "2025-01",
            "CL": null,
            "BA": null,
            "AT": 3491284
        },
        {
            "period": "2025-02",
            "CL": null,
            "BA": null,
            "AT": 3524043
        },
        {
            "period": "2025-03",
            "CL": null,
            "BA": null,
            "AT": 3144123
        }
    ]
}
```

## GET /v1/rank

Countries ranked on any measure and period. Every reporting country ranked on one measure for one period.

- Group: Compare and rank
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/rank

| Parameter | In | Description | Example |
|---|---|---|---|
| `measure` | query | arrivals, nights, spend, departures, occupancy or capacity | `arrivals` |
| `period` | query | One period; defaults to the latest finished one | `2026-08` |
| `limit` | query | Rows per page, 1 to 1000 | `100` |

```
curl "https://api.tourismapi.com/v1/rank?measure=arrivals&period=2026-08" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_9c3babe112",
        "data_as_of": "2026-10-20T04:48:17Z",
        "count": 40,
        "measure": "arrivals",
        "period": "2026-08",
        "note": "Each country's own headline series; units can differ (arrivals at hotels, at the border, or visitors)."
    },
    "data": [
        {
            "rank": 1,
            "country": "HU",
            "name": "Hungary",
            "series": "sr_8dhrzswd",
            "unit": "",
            "period": "2026-08",
            "value": 6916472,
            "year_before": 7340976,
            "yoy_pct": -5.8
        },
        {
            "rank": 2,
            "country": "HK",
            "name": "Hong Kong",
            "series": "sr_3e3rjawd",
            "unit": "persons",
            "period": "2026-08",
            "value": 5456645,
            "year_before": 5153244,
            "yoy_pct": 5.9
        },
        {
            "rank": 3,
            "country": "MX",
            "name": "Mexico",
            "series": "sr_dr2x8n1d",
            "unit": "visitors",
            "period": "2026-08",
            "value": 4216916,
            "year_before": 4094085,
            "yoy_pct": 3
        }
    ]
}
```

## GET /v1/growth

Change on last year, month or quarter. Percentage change on the same period last year, the previous period, and year to date.

- Group: Compare and rank
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/growth

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | One or more ISO codes, comma separated | `CL,BA,AT` |
| `measure` | query | arrivals, nights, spend, departures, occupancy or capacity | `arrivals` |
| `period` | query | One period; defaults to the latest finished one | `2026-08` |

```
curl "https://api.tourismapi.com/v1/growth?country=CL,JP,TH&measure=arrivals&period=2026-08" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_e295df5140",
        "data_as_of": "2026-10-20T04:48:17Z",
        "count": 3,
        "measure": "arrivals"
    },
    "data": [
        {
            "country": "CL",
            "note": "No arrivals figure held for CL at that period."
        },
        {
            "country": "JP",
            "series": "sr_wxq9yq5v",
            "unit": "visitors",
            "period": "2026-08",
            "value": 3098900,
            "year_before": 3428406,
            "yoy_pct": -9.6,
            "ytd": 27626262,
            "ytd_year_before": 28384099,
            "ytd_pct": -2.7
        },
        {
            "country": "TH",
            "series": "sr_mvtdw63b",
            "unit": "persons",
            "period": "2026-08",
            "value": 2515320,
            "year_before": 2583640,
            "yoy_pct": -2.6,
            "ytd": 20935150,
            "ytd_year_before": 21599460,
            "ytd_pct": -3.1
        }
    ]
}
```

## GET /v1/share

A destination's share of a group of markets. One destination's share of arrivals from a source market across a group of destinations.

- Group: Compare and rank
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/share

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | One or more ISO codes, comma separated | `CL,BA,AT` |
| `origin` | query | Country of residence of the visitor | `DE` |
| `period` | query | One period; defaults to the latest finished one | `2026-08` |

```
curl "https://api.tourismapi.com/v1/share?country=CL&period=2026-08" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_7f3a1c",
        "data_as_of": "2026-10-12T12:01:11Z",
        "count": 1,
        "next": null
    },
    "data": {
        "country": "AT",
        "origin": "DE",
        "period": "2026-08",
        "share_pct": 41.2,
        "group": "europe"
    }
}
```

## GET /v1/seasonality

Seasonal profile and peak months for a series. The average shape of a year for a series, peak and low months, and how strong the swing is.

- Group: Compare and rank
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/seasonality

| Parameter | In | Description | Example |
|---|---|---|---|
| `id` | path | Series id from /v1/series | `jp.arrivals.total.m` |
| `from` | query | First period to return | `2025-01` |
| `to` | query | Last period to return | `2026-08` |

```
curl "https://api.tourismapi.com/v1/seasonality?id=jp.arrivals.total.m&from=2025-01&to=2026-08" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_95d5ab4a86",
        "data_as_of": "2026-10-20T04:48:17Z",
        "count": 12,
        "series": "sr_wxq9yq5v",
        "years": [
            "2025"
        ],
        "index": "each month as a percentage of its year's monthly average (median across years); 100 is an average month"
    },
    "data": [
        {
            "month": 1,
            "index": 106.3,
            "low": 106.3,
            "high": 106.3
        },
        {
            "month": 2,
            "index": 91.6,
            "low": 91.6,
            "high": 91.6
        },
        {
            "month": 3,
            "index": 98.3,
            "low": 98.3,
            "high": 98.3
        }
    ]
}
```

## GET /v1/movers

The countries rising and falling fastest. Every country with a monthly headline, latest month against the same month a year before: the biggest risers and fallers on one measure.

- Group: Compare and rank
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/movers

| Parameter | In | Description | Example |
|---|---|---|---|
| `measure` | query | arrivals, nights, spend, departures, occupancy or capacity | `arrivals` |
| `limit` | query | Rows per page, 1 to 1000 | `100` |

```
curl "https://api.tourismapi.com/v1/movers?measure=arrivals" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_efe0e5b6d9",
        "data_as_of": "2026-10-20T04:48:18Z",
        "count": 1,
        "measure": "arrivals",
        "compared": 109,
        "note": "Each country's own latest month against the same month a year before."
    },
    "data": {
        "rising": [
            {
                "country": "NC",
                "name": "New Caledonia",
                "series": "sr_ne8xpxnt",
                "unit": "tourists",
                "period": "2026-08",
                "value": 6786,
                "year_before": 5260,
                "yoy_pct": 29
            },
            {
                "country": "XK",
                "name": "Kosovo",
                "series": "sr_xqz9ffw9",
                "unit": "Number",
                "period": "2026-07",
                "value": 99053,
                "year_before": 77481,
                "yoy_pct": 27.8
            },
            {
                "country": "SI",
                "name": "Slovenia",
                "series": "sr_k8n6ecam",
                "unit": "",
                "period": "2026-08",
                "value": 101002,
                "year_before": 80614,
                "yoy_pct": 25.3
            }
        ],
        "falling": [
            {
                "country": "PE",
                "name": "Peru",
                "series": "sr_41hhx4bx",
                "unit": "tourists",
                "period": "2026-06",
                "value": 258156,
                "year_before": 278218,
                "yoy_pct": -7.2
            },
            {
                "country": "MS",
                "name": "Montserrat",
                "series": "sr_qzb4d6p3",
                "unit": "visitors",
                "period": "2026-06",
                "value": 441,
                "year_before": 475,
                "yoy_pct": -7.2
            },
            {
                "country": "GI",
                "name": "Gibraltar",
                "series": "sr_5jctjzp4",
                "unit": "passengers",
                "period": "2026-09",
                "value": 19241,
                "year_before": 20686,
                "yoy_pct": -7
            }
        ]
    }
}
```

## GET /v1/records

Each country's best month, and how close it is now. Each country's best month on record for one measure, its latest month, and the latest as a percent of the record.

- Group: Compare and rank
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/records

| Parameter | In | Description | Example |
|---|---|---|---|
| `measure` | query | arrivals, nights, spend, departures, occupancy or capacity | `arrivals` |

```
curl "https://api.tourismapi.com/v1/records?measure=arrivals" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_e734e1a908",
        "data_as_of": "2026-10-20T04:48:18Z",
        "count": 109,
        "measure": "arrivals",
        "note": "Records are over the months your plan can see."
    },
    "data": [
        {
            "country": "BE",
            "name": "Belgium",
            "series": "sr_6vm9se5n",
            "unit": "Number",
            "record_period": "2026-07",
            "record_value": 2126258,
            "latest_period": "2026-07",
            "latest_value": 2126258,
            "pct_of_record": 100,
            "latest_is_record": true
        },
        {
            "country": "DE",
            "name": "Germany",
            "series": "sr_wjq538vh",
            "unit": "Number",
            "record_period": "2026-07",
            "record_value": 20797973,
            "latest_period": "2026-07",
            "latest_value": 20797973,
            "pct_of_record": 100,
            "latest_is_record": true
        },
        {
            "country": "GH",
            "name": "Ghana",
            "series": "sr_emgc50w7",
            "unit": "visitors",
            "record_period": "2025-12",
            "record_value": 141186,
            "latest_period": "2025-12",
            "latest_value": 141186,
            "pct_of_record": 100,
            "latest_is_record": true
        }
    ]
}
```

## GET /v1/stats/trend

Seasonally adjusted figures and the trend. Each month with the seasonal swing taken out, plus the underlying trend, so one month can be read against the last without the calendar getting in the way. Classical multiplicative decomposition on a 2x12 centred average. 51 countries.

- Group: Statistics
- Plan: Analyst and up
- Online: https://tourismapi.com/documentation/endpoints/stats-trend

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | ISO code of a country that carries this statistic (listed at /v1/countries/{iso}) | `JP` |
| `from` | query | First month to return | `2024-01` |

```
curl "https://api.tourismapi.com/v1/stats/trend?country=JP" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_0377f162f0",
        "data_as_of": "2026-10-20T04:48:18Z",
        "count": 96,
        "country": "JP",
        "method": {
            "series": "Visitor arrivals to Japan from Total",
            "unit": "visitors",
            "first": "2003-01",
            "last": "2026-08",
            "seasonal_factors": {
                "03": 0.9303,
                "04": 1.0119,
                "05": 0.9185,
                "06": 0.8245,
                "07": 0.9821,
                "08": 0.885,
                "09": 0.8662,
                "10": 1.0731,
                "11": 1.0974,
                "12": 1.2396,
                "01": 1.3019,
                "02": 0.8696
            },
            "method": "multiplicative decomposition, 2x12 centred average"
        }
    },
    "data": [
        {
            "period": "2018-09",
            "adjusted": 2493188.1
        },
        {
            "period": "2018-10",
            "adjusted": 2460823.7
        },
        {
            "period": "2018-11",
            "adjusted": 2233298.6
        }
    ]
}
```

## GET /v1/stats/recovery

Each month against the same month of 2019. Every month as a percentage of the same month in 2019 (= 100): the recovery index buyers quote. 53 countries.

- Group: Statistics
- Plan: Analyst and up
- Online: https://tourismapi.com/documentation/endpoints/stats-recovery

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | ISO code of a country that carries this statistic (listed at /v1/countries/{iso}) | `JP` |
| `from` | query | First month to return | `2024-01` |

```
curl "https://api.tourismapi.com/v1/stats/recovery?country=JP" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_a4d58816ef",
        "data_as_of": "2026-10-20T04:48:18Z",
        "count": 80,
        "country": "JP",
        "method": {
            "series": "Visitor arrivals to Japan from Total",
            "unit": "visitors",
            "first": "2003-01",
            "last": "2026-08",
            "basis": "same month of 2019 = 100"
        }
    },
    "data": [
        {
            "period": "2020-01",
            "index": 98.95
        },
        {
            "period": "2020-02",
            "index": 41.67
        },
        {
            "period": "2020-03",
            "index": 7.02
        }
    ]
}
```

## GET /v1/stats/benchmark

A country against its region, on one index. A country's yearly total indexed to 2019 = 100, beside the average of the other countries in its region (or a peer list you choose). 45 countries.

- Group: Statistics
- Plan: Analyst and up
- Online: https://tourismapi.com/documentation/endpoints/stats-benchmark

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | ISO code of a country that carries this statistic (listed at /v1/countries/{iso}) | `JP` |
| `peers` | query | The region (default) or your own comma-separated list of ISO codes | `region` |

```
curl "https://api.tourismapi.com/v1/stats/benchmark?country=JP" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_c5f566d177",
        "data_as_of": "2026-10-20T04:48:18Z",
        "count": 11,
        "country": "JP",
        "method": {
            "region": "East Asia & Pacific",
            "peers": [
                "AU",
                "KH",
                "KR",
                "LA",
                "NC",
                "NZ",
                "PH",
                "SG",
                "VN",
                "VU"
            ],
            "basis": "2019 = 100, whole years only"
        }
    },
    "data": [
        {
            "year": "2015",
            "country": 61.9,
            "region": 74.9
        },
        {
            "year": "2016",
            "country": 75.4,
            "region": 84.2
        },
        {
            "year": "2017",
            "country": 90,
            "region": 86.3
        }
    ]
}
```

## GET /v1/stats/stay-length

Nights per arrival and its trend. Average length of stay: nights divided by arrivals, month by month, wherever one table publishes both.

- Group: Statistics
- Plan: Analyst and up
- Online: https://tourismapi.com/documentation/endpoints/stats-stay-length

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | ISO code of a country that carries this statistic (listed at /v1/countries/{iso}) | `JP` |
| `from` | query | First month to return | `2024-01` |

```
curl "https://api.tourismapi.com/v1/stats/stay-length?country=JP" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_7f3a23",
        "data_as_of": "2026-10-12T21:57:29Z",
        "count": 2,
        "next": null
    },
    "data": [
        {
            "period": "2026-07",
            "nights_per_arrival": 2.18
        },
        {
            "period": "2026-08",
            "nights_per_arrival": 2.12
        }
    ]
}
```

## GET /v1/stats/forecast

Up to 24 months ahead, with ranges. Holt-Winters seasonal smoothing on log values, fitted from each country's post-pandemic reopening, with 80% and 95% ranges. Every forecast carries the date it was made and its error on the last 12 published months. 47 countries.

- Group: Statistics
- Plan: Intel and up
- Online: https://tourismapi.com/documentation/endpoints/stats-forecast

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | ISO code of a country that carries this statistic (listed at /v1/countries/{iso}) | `JP` |
| `horizon` | query | Months ahead, 1 to 24 | `12` |
| `level` | query | Width of the range returned with each value | `80` |

```
curl "https://api.tourismapi.com/v1/stats/forecast?country=JP" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_cc634468fe",
        "data_as_of": "2026-10-20T04:48:18Z",
        "count": 24,
        "country": "JP",
        "method": {
            "series": "Visitor arrivals to Japan from Total",
            "unit": "visitors",
            "first": "2003-01",
            "last": "2026-08",
            "made": "2026-10-20",
            "fitted_from": "2022-12",
            "horizon_months": 24,
            "backtest_mape_pct": 7.6,
            "method": "Holt-Winters on logs, damped slope 0.9, season started from 2017 to 2019"
        }
    },
    "data": [
        {
            "period": "2026-09",
            "value": 2799576,
            "low": 2581010,
            "high": 3036651
        },
        {
            "period": "2026-10",
            "value": 3194684,
            "low": 2847754,
            "high": 3583880
        },
        {
            "period": "2026-11",
            "value": 2975169,
            "low": 2584435,
            "high": 3424976
        }
    ]
}
```

## GET /v1/stats/nowcast

Months the office has not published yet. An estimate for each month between a country's last published figure and last month, from the seasonal pattern and the latest year-on-year change. Always estimated: true, and replaced the moment the office publishes. 45 countries.

- Group: Statistics
- Plan: Intel and up
- Online: https://tourismapi.com/documentation/endpoints/stats-nowcast

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | ISO code of a country that carries this statistic (listed at /v1/countries/{iso}) | `JP` |
| `level` | query | Width of the range returned with each value | `80` |

```
curl "https://api.tourismapi.com/v1/stats/nowcast?country=JP" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_28692f383c",
        "data_as_of": "2026-10-20T04:48:18Z",
        "count": 1,
        "country": "JP",
        "method": {
            "series": "Visitor arrivals to Japan from Total",
            "unit": "visitors",
            "first": "2003-01",
            "last": "2026-08",
            "published_to": "2026-08",
            "estimated_to": "2026-09",
            "yoy_used": 0.9458,
            "method": "same month last year times the average year-on-year change of the last 3 published months"
        }
    },
    "data": [
        {
            "period": "2026-09",
            "value": 3090230,
            "low": 2848972,
            "high": 3351918,
            "estimated": true
        }
    ]
}
```

## GET /v1/stats/anomalies

Months far from what was expected. Months where the figure sits well away from what trend and season predicted, scored in robust standard deviations, with the expected value beside it. 51 countries.

- Group: Statistics
- Plan: Intel and up
- Online: https://tourismapi.com/documentation/endpoints/stats-anomalies

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | ISO code of a country that carries this statistic (listed at /v1/countries/{iso}) | `JP` |
| `min_score` | query | Smallest score to return, in standard deviations (default 3) | `3` |

```
curl "https://api.tourismapi.com/v1/stats/anomalies?country=JP" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_8e45be3bae",
        "data_as_of": "2026-10-20T04:48:18Z",
        "count": 19,
        "country": "JP",
        "method": {
            "series": "Visitor arrivals to Japan from Total",
            "unit": "visitors",
            "first": "2003-01",
            "last": "2026-08",
            "months_checked": 84,
            "flagged": 19,
            "threshold_sd": 3,
            "range_fields": "lo80 holds the expected value"
        }
    },
    "data": [
        {
            "period": "2020-03",
            "score": -6.6,
            "expected": 974204.6
        },
        {
            "period": "2020-04",
            "score": -22.92,
            "expected": 860332.4
        },
        {
            "period": "2020-05",
            "score": -23.7,
            "expected": 595193.8
        }
    ]
}
```

## GET /v1/stats/origin-shift

Which markets are gaining or losing share. Each origin market's share of arrivals over the latest 12 months against the 12 before, in percentage points, largest moves first.

- Group: Statistics
- Plan: Intel and up
- Online: https://tourismapi.com/documentation/endpoints/stats-origin-shift

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | ISO code of a country that carries this statistic (listed at /v1/countries/{iso}) | `JP` |
| `limit` | query | Rows per page, 1 to 1000 | `100` |

```
curl "https://api.tourismapi.com/v1/stats/origin-shift?country=JP" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_bc1d107551",
        "data_as_of": "2026-10-20T04:48:18Z",
        "count": 37,
        "country": "JP",
        "method": {
            "window": "2025-09 to 2026-08",
            "against": "2024-09 to 2025-08",
            "value": "change in share, points",
            "lo80": "share now, percent"
        }
    },
    "data": [
        {
            "origin": "China",
            "share_pct": 13.05,
            "change_points": -9.58
        },
        {
            "origin": "South Korea",
            "share_pct": 26.53,
            "change_points": 3.83
        },
        {
            "origin": "Taiwan",
            "share_pct": 18.88,
            "change_points": 2.87
        }
    ]
}
```

## GET /v1/stats/concentration

How dependent a destination is on its markets. A Herfindahl index of origin shares (0 to 10,000) and the share of the top three markets: one dependence score per destination.

- Group: Statistics
- Plan: Intel and up
- Online: https://tourismapi.com/documentation/endpoints/stats-concentration

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | ISO code of a country that carries this statistic (listed at /v1/countries/{iso}) | `JP` |

```
curl "https://api.tourismapi.com/v1/stats/concentration?country=JP" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_9de815f403",
        "data_as_of": "2026-10-20T04:48:18Z",
        "count": 1,
        "country": "JP",
        "method": {
            "window": "2025-09 to 2026-08",
            "markets": 39,
            "top": {
                "South Korea": 26.5,
                "Taiwan": 18.9,
                "China": 13,
                "United States": 8.5,
                "Hong Kong": 6.6
            },
            "scale": "Herfindahl index 0 to 10000 on percentage shares"
        }
    },
    "data": {
        "hhi": 1391,
        "top3_share_pct": 58.5,
        "window": "2025-09 to 2026-08",
        "markets": 39,
        "top": {
            "South Korea": 26.5,
            "Taiwan": 18.9,
            "China": 13,
            "United States": 8.5,
            "Hong Kong": 6.6
        }
    }
}
```

## GET /v1/stats/fx-sensitivity

How arrivals move with the exchange rate. Year-on-year change in arrivals from an origin set against the year-on-year change in that origin's currency, with the elasticity, R squared and months used. Coming next; listed so you can plan for it.

- Group: Statistics
- Plan: Intel and up
- Online: https://tourismapi.com/documentation/endpoints/stats-fx-sensitivity

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | ISO code of a country that carries this statistic (listed at /v1/countries/{iso}) | `JP` |
| `origin` | query | Origin country whose currency is tested | `US` |

```
curl "https://api.tourismapi.com/v1/stats/fx-sensitivity?country=JP&origin=US" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_4a89eea669",
        "data_as_of": "2026-10-20T04:48:18Z",
        "count": 1,
        "country": "JP",
        "currency": "JPY",
        "method": "Year-on-year change in monthly arrivals from each market against the year-on-year change in what the destination currency costs in that market's currency (monthly average reference rates), in logs; 2020 to 2022 left out; at least 24 months."
    },
    "data": [
        {
            "origin": "US",
            "name": "United States",
            "currency": "USD",
            "series": "sr_p4b6agqg",
            "months": 226,
            "elasticity": -0.47,
            "correlation": -0.28,
            "reading": "A 10% dearer JPY for United States travellers goes with -4.7% arrivals, all else equal."
        }
    ]
}
```

## GET /v1/stats/tourism-intensity

Countries ranked by how much they rely on tourism. Countries ranked by arrivals and tourism receipts per resident for one year, 2019 by default, the last full year before travel stopped.

- Group: Statistics
- Plan: Analyst and up
- Online: https://tourismapi.com/documentation/endpoints/tourism-intensity

| Parameter | In | Description | Example |
|---|---|---|---|
| `year` | query | Calendar year | `2026` |
| `limit` | query | Rows per page, 1 to 1000 | `100` |

```
curl "https://api.tourismapi.com/v1/stats/tourism-intensity" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_2fb5bf7eee",
        "data_as_of": "2026-10-20T04:48:18Z",
        "count": 50,
        "ranked": 179,
        "year": 2019
    },
    "data": [
        {
            "rank": 1,
            "country": "AD",
            "name": "Andorra",
            "year": 2019,
            "arrivals_per_resident": 107.684,
            "receipts_per_resident_usd": 24976,
            "arrivals": 8235000,
            "population": 76474
        },
        {
            "rank": 2,
            "country": "MO",
            "name": "Macao",
            "year": 2019,
            "arrivals_per_resident": 58.64,
            "receipts_per_resident_usd": 61259,
            "arrivals": 39406000,
            "population": 672000
        },
        {
            "rank": 3,
            "country": "SM",
            "name": "San Marino",
            "year": 2019,
            "arrivals_per_resident": 54.929,
            "receipts_per_resident_usd": null,
            "arrivals": 1904000,
            "population": 34663
        }
    ]
}
```

## GET /v1/holidays

Public holidays for every calendar held. Public holidays for 204 countries from 1999 to 2027, filterable by date range.

- Group: Context
- Plan: Free and up
- Online: https://tourismapi.com/documentation/endpoints/holidays

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | One or more ISO codes, comma separated | `CL,BA,AT` |
| `from` | query | First period to return | `2025-01` |
| `to` | query | Last period to return | `2026-08` |

```
curl "https://api.tourismapi.com/v1/holidays?country=CL,BA,AT&from=2025-01&to=2026-08" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_4e5c39cb00",
        "data_as_of": "2026-10-20T04:48:18Z",
        "count": 85
    },
    "data": [
        {
            "country": "AT",
            "date": "2025-01-01",
            "name": "New Year's Day",
            "local_name": "Neujahr",
            "national": true
        },
        {
            "country": "BA",
            "date": "2025-01-01",
            "name": "New Year's Day",
            "local_name": "Nova Godina",
            "national": true
        },
        {
            "country": "CL",
            "date": "2025-01-01",
            "name": "New Year's Day",
            "local_name": "Año Nuevo",
            "national": true
        }
    ]
}
```

## GET /v1/holidays/{iso}

One country's holidays by year. All public holidays for one country and year, national and regional.

- Group: Context
- Plan: Free and up
- Online: https://tourismapi.com/documentation/endpoints/holidays-iso

| Parameter | In | Description | Example |
|---|---|---|---|
| `iso` | path | ISO 3166 two-letter country code | `CL` |
| `year` | query | Calendar year | `2026` |

```
curl "https://api.tourismapi.com/v1/holidays/CL" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_866432f6c4",
        "data_as_of": "2026-10-20T04:48:18Z",
        "count": 17
    },
    "data": [
        {
            "country": "CL",
            "date": "2026-01-01",
            "name": "New Year's Day",
            "local_name": "Año Nuevo",
            "national": true
        },
        {
            "country": "CL",
            "date": "2026-04-03",
            "name": "Good Friday",
            "local_name": "Viernes Santo",
            "national": true
        },
        {
            "country": "CL",
            "date": "2026-04-04",
            "name": "Holy Saturday",
            "local_name": "Sábado Santo",
            "national": true
        }
    ]
}
```

## GET /v1/fx

Daily reference exchange rates since 1999. Daily reference rates for 44 currencies from 1999, quoted per euro.

- Group: Context
- Plan: Free and up
- Online: https://tourismapi.com/documentation/endpoints/fx

| Parameter | In | Description | Example |
|---|---|---|---|
| `from` | query | First period to return | `2025-01` |
| `to` | query | Last period to return | `2026-08` |

```
curl "https://api.tourismapi.com/v1/fx" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_d840bfdf74",
        "data_as_of": "2026-10-20T04:48:19Z",
        "count": 145,
        "base": "EUR",
        "quoted": "units of the currency per 1 EUR"
    },
    "data": [
        {
            "quote": "AUD",
            "base": "EUR",
            "date": "2026-10-13",
            "rate": 1.6033
        },
        {
            "quote": "BRL",
            "base": "EUR",
            "date": "2026-10-13",
            "rate": 5.6125
        },
        {
            "quote": "CAD",
            "base": "EUR",
            "date": "2026-10-13",
            "rate": 1.5933
        }
    ]
}
```

## GET /v1/fx/{currency}

One currency's rate history. The daily history of one currency, with monthly and annual averages ready to join to tourism series.

- Group: Context
- Plan: Free and up
- Online: https://tourismapi.com/documentation/endpoints/fx-currency

| Parameter | In | Description | Example |
|---|---|---|---|
| `currency` | path | ISO 4217 currency code | `THB` |
| `from` | query | First period to return | `2025-01` |
| `to` | query | Last period to return | `2026-08` |

```
curl "https://api.tourismapi.com/v1/fx/THB" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_23f59bcc31",
        "data_as_of": "2026-10-20T04:48:19Z",
        "count": 255,
        "base": "EUR",
        "quoted": "units of the currency per 1 EUR"
    },
    "data": [
        {
            "quote": "THB",
            "base": "EUR",
            "date": "2025-10-20",
            "rate": 38.106
        },
        {
            "quote": "THB",
            "base": "EUR",
            "date": "2025-10-21",
            "rate": 38.071
        },
        {
            "quote": "THB",
            "base": "EUR",
            "date": "2025-10-22",
            "rate": 38.107
        }
    ]
}
```

## GET /v1/convert

Spend converted at each period's rate. Converts any money series at the average rate of each period, not one rate for all.

- Group: Context
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/convert

| Parameter | In | Description | Example |
|---|---|---|---|
| `id` | path | Series id from /v1/series | `jp.arrivals.total.m` |
| `currency` | query | Convert money to this ISO 4217 currency at each period's rate | `USD` |
| `from` | query | First period to return | `2025-01` |
| `to` | query | Last period to return | `2026-08` |

```
curl "https://api.tourismapi.com/v1/convert?id=ie.spend.total.m&currency=USD&from=2025-01&to=2026-08" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_9588524814",
        "data_as_of": "2026-10-20T04:48:19Z",
        "count": 20,
        "series": "sr_918xs3ky",
        "from": "EUR",
        "to": "USD",
        "scale": 1,
        "rate": "average rate of the period"
    },
    "data": [
        {
            "period": "2025-01",
            "value": 102.5,
            "rate": 1.035373
        },
        {
            "period": "2025-02",
            "value": 93.71,
            "rate": 1.04125
        },
        {
            "period": "2025-03",
            "value": 106.99,
            "rate": 1.080681
        }
    ]
}
```

## GET /v1/joins/holidays

Any series with holiday counts per period. A series with the number of public holidays and weekend days in each period beside it.

- Group: Context
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/joins-holidays

| Parameter | In | Description | Example |
|---|---|---|---|
| `id` | path | Series id from /v1/series | `jp.arrivals.total.m` |
| `from` | query | First period to return | `2025-01` |
| `to` | query | Last period to return | `2026-08` |

```
curl "https://api.tourismapi.com/v1/joins/holidays?id=jp.arrivals.total.m&from=2025-01&to=2026-08" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_8192c35bc9",
        "data_as_of": "2026-10-20T04:48:19Z",
        "count": 20,
        "series": "sr_wxq9yq5v",
        "country": "JP"
    },
    "data": [
        {
            "period": "2025-01",
            "value": 3781629,
            "holidays": 2,
            "holiday_list": [
                {
                    "date": "2025-01-01",
                    "name": "New Year's Day"
                },
                {
                    "date": "2025-01-13",
                    "name": "Coming of Age Day"
                }
            ]
        },
        {
            "period": "2025-02",
            "value": 3258491,
            "holidays": 3,
            "holiday_list": [
                {
                    "date": "2025-02-11",
                    "name": "Foundation Day"
                },
                {
                    "date": "2025-02-23",
                    "name": "Emperor's Birthday"
                },
                {
                    "date": "2025-02-24",
                    "name": "Substitute Holiday"
                }
            ]
        },
        {
            "period": "2025-03",
            "value": 3497755,
            "holidays": 1,
            "holiday_list": [
                {
                    "date": "2025-03-20",
                    "name": "Vernal Equinox Day"
                }
            ]
        }
    ]
}
```

## GET /v1/holidays/upcoming

Public holidays in the coming days. Public holidays from today for the next 30 days (or any number up to a year), with how many days away each is.

- Group: Context
- Plan: Free and up
- Online: https://tourismapi.com/documentation/endpoints/holidays-upcoming

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | One or more ISO codes, comma separated | `CL,BA,AT` |
| `days` | query | How many days ahead, 1 to 365 (30 when left out) | `30` |

```
curl "https://api.tourismapi.com/v1/holidays/upcoming?country=CL" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_86acc455b5",
        "data_as_of": "2026-10-20T04:48:19Z",
        "count": 2,
        "from": "2026-10-20",
        "days": 30
    },
    "data": [
        {
            "country": "CL",
            "date": "2026-10-31",
            "name": "Reformation Day",
            "local_name": "Día Nacional de las Iglesias Evangélicas y Protestantes",
            "national": true,
            "in_days": 11
        },
        {
            "country": "CL",
            "date": "2026-11-01",
            "name": "All Saints Day",
            "local_name": "Día de Todos los Santos",
            "national": true,
            "in_days": 12
        }
    ]
}
```

## GET /v1/fx/latest

The newest exchange rate for every currency. The newest daily reference rate for every currency held, one row each, or for the currencies you name.

- Group: Context
- Plan: Free and up
- Online: https://tourismapi.com/documentation/endpoints/fx-latest

| Parameter | In | Description | Example |
|---|---|---|---|
| `currency` | query | Convert money to this ISO 4217 currency at each period's rate | `USD` |

```
curl "https://api.tourismapi.com/v1/fx/latest?currency=USD" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_c58d5f3cd7",
        "data_as_of": "2026-10-20T04:48:19Z",
        "count": 1,
        "base": "EUR",
        "date": "2026-10-19",
        "quoted": "units of the currency per 1 EUR"
    },
    "data": [
        {
            "quote": "USD",
            "rate": 1.1225
        }
    ]
}
```

## GET /v1/fuel

Jet fuel and crude oil, month by month. One world price each, by month from 1990: jet fuel a gallon and a litre, crude oil a barrel, each against its 2019 average (2019 = 100, the Monitor's base) and on a year. Fuel trades on world markets, so one price holds for flights everywhere. Without from, it starts in 2015.

- Group: Context
- Plan: Analyst and up
- Online: https://tourismapi.com/documentation/endpoints/fuel

| Parameter | In | Description | Example |
|---|---|---|---|
| `from` | query | First period to return | `2025-01` |
| `to` | query | Last period to return | `2026-08` |

```
curl "https://api.tourismapi.com/v1/fuel?from=2025-01&to=2026-08" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_91df0ef0a9",
        "data_as_of": "2026-10-20T04:48:19Z",
        "count": 20,
        "units": {
            "jet_fuel": "US dollars a gallon and a litre, monthly average of the spot price",
            "crude": "US dollars a barrel, monthly average of the spot price"
        },
        "index_base": "average of 2019 = 100, the same base as the Monitor",
        "note": "One world price each: jet fuel and crude trade on world markets, so the price moves together everywhere."
    },
    "data": [
        {
            "month": "2025-01",
            "jet_fuel_usd_gallon": 2.347,
            "jet_fuel_usd_litre": 0.62,
            "jet_fuel_index": 125,
            "jet_fuel_yoy_pct": -9.2,
            "crude_usd_barrel": 79.27,
            "crude_index": 123.2,
            "crude_yoy_pct": -1.1
        },
        {
            "month": "2025-02",
            "jet_fuel_usd_gallon": 2.264,
            "jet_fuel_usd_litre": 0.598,
            "jet_fuel_index": 120.6,
            "jet_fuel_yoy_pct": -15.6,
            "crude_usd_barrel": 75.44,
            "crude_index": 117.2,
            "crude_yoy_pct": -9.6
        },
        {
            "month": "2025-03",
            "jet_fuel_usd_gallon": 2.069,
            "jet_fuel_usd_litre": 0.547,
            "jet_fuel_index": 110.2,
            "jet_fuel_yoy_pct": -20.2,
            "crude_usd_barrel": 72.73,
            "crude_index": 113,
            "crude_yoy_pct": -14.8
        }
    ]
}
```

## GET /v1/fuel/latest

The newest month of fuel prices. The latest month of jet fuel and crude oil prices, with the index against 2019 and the change on a year. Free on every key; the history is /v1/fuel.

- Group: Context
- Plan: Free and up
- Online: https://tourismapi.com/documentation/endpoints/fuel-latest

```
curl "https://api.tourismapi.com/v1/fuel/latest" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_1a5ec66f17",
        "data_as_of": "2026-10-20T04:48:19Z",
        "count": 1,
        "history": "/v1/fuel, from the Analyst plan"
    },
    "data": [
        {
            "month": "2026-09",
            "jet_fuel_usd_gallon": 4.388,
            "jet_fuel_usd_litre": 1.159,
            "jet_fuel_index": 233.7,
            "jet_fuel_yoy_pct": 110.1,
            "crude_usd_barrel": 114.16,
            "crude_index": 177.4,
            "crude_yoy_pct": 67.9
        }
    ]
}
```

## GET /v1/economy/{iso}

A country's economy by year. Growth, inflation, size, income per head, population, unemployment and the current account by year, with the years ahead flagged as projections.

- Group: Context
- Plan: Analyst and up
- Online: https://tourismapi.com/documentation/endpoints/economy

| Parameter | In | Description | Example |
|---|---|---|---|
| `iso` | path | ISO 3166 two-letter country code | `CL` |
| `from` | query | First period to return | `2025-01` |

```
curl "https://api.tourismapi.com/v1/economy/CL?from=2025-01" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_3a57d6be33",
        "data_as_of": "2026-10-20T04:48:19Z",
        "count": 7,
        "country": "CL",
        "name": "Chile",
        "note": "Years from 2026 on are projections and are revised as new figures arrive."
    },
    "data": [
        {
            "year": 2031,
            "projection": true,
            "gdp_growth_pct": 2.3,
            "inflation_pct": 3,
            "gdp_usd_bn": 486.5,
            "gdp_per_capita_usd": 23676,
            "population_m": 20.55,
            "unemployment_pct": 7.8,
            "current_account_pct_gdp": -1.5
        },
        {
            "year": 2030,
            "projection": true,
            "gdp_growth_pct": 2.3,
            "inflation_pct": 3,
            "gdp_usd_bn": 466.6,
            "gdp_per_capita_usd": 22772,
            "population_m": 20.49,
            "unemployment_pct": 8,
            "current_account_pct_gdp": -1.5
        },
        {
            "year": 2029,
            "projection": true,
            "gdp_growth_pct": 2.3,
            "inflation_pct": 3,
            "gdp_usd_bn": 447.3,
            "gdp_per_capita_usd": 21905,
            "population_m": 20.42,
            "unemployment_pct": 8.5,
            "current_account_pct_gdp": -1.4
        }
    ]
}
```

## GET /v1/economy/{iso}/tourism

Tourism's weight in a country's economy. Tourism receipts and spending abroad (balance-of-payments travel, annual and the last eight quarters) beside the size of the economy, with arrivals added up from the country's own monthly count and receipts per arrival.

- Group: Context
- Plan: Analyst and up
- Online: https://tourismapi.com/documentation/endpoints/economy-tourism

| Parameter | In | Description | Example |
|---|---|---|---|
| `iso` | path | ISO 3166 two-letter country code | `CL` |

```
curl "https://api.tourismapi.com/v1/economy/CL/tourism" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_bb78ee64ca",
        "data_as_of": "2026-10-20T04:48:19Z",
        "count": 51,
        "country": "CL",
        "name": "Chile",
        "latest_year": 2025,
        "quarters": [
            {
                "quarter": "2026-Q2",
                "receipts_usd": 627221750,
                "receipts_change_pct": -11.5,
                "spending_abroad_usd": 770375501,
                "spending_change_pct": 1.9
            },
            {
                "quarter": "2026-Q1",
                "receipts_usd": 1140866893,
                "receipts_change_pct": -14.6,
                "spending_abroad_usd": 975684952,
                "spending_change_pct": 9.2
            },
            {
                "quarter": "2025-Q4",
                "receipts_usd": 967368721,
                "receipts_change_pct": 1.5,
                "spending_abroad_usd": 752348815,
                "spending_change_pct": -10.6
            },
            {
                "quarter": "2025-Q3",
                "receipts_usd": 831608091,
                "receipts_change_pct": 11.3,
                "spending_abroad_usd": 751399734,
                "spending_change_pct": -6.2
            },
            {
                "quarter": "2025-Q2",
                "receipts_usd": 708624154,
                "receipts_change_pct": 18,
                "spending_abroad_usd": 755718520,
                "spending_change_pct": -2.2
            },
            {
                "quarter": "2025-Q1",
                "receipts_usd": 1336515869,
                "receipts_change_pct": 48.4,
                "spending_abroad_usd": 893186751,
                "spending_change_pct": -9.2
            },
            {
                "quarter": "2024-Q4",
                "receipts_usd": 953337591,
                "receipts_change_pct": 29.7,
                "spending_abroad_usd": 841584415,
                "spending_change_pct": 9.5
            },
            {
                "quarter": "2024-Q3",
                "receipts_usd": 747046971,
                "receipts_change_pct": 45.3,
                "spending_abroad_usd": 800656044,
                "spending_change_pct": 1.5
            }
        ],
        "note": "Receipts and spending abroad are the balance-of-payments travel credit and debit; arrivals are the country's own monthly count added up over each whole year (all twelve months held). The last eight quarters of receipts and spending are in meta.quarters; monthly arrivals are at /v1/arrivals."
    },
    "data": [
        {
            "year": 2025,
            "receipts_usd": 3844116835,
            "spending_abroad_usd": 3152653820,
            "arrivals": null,
            "receipts_per_arrival_usd": null,
            "receipts_share_gdp_pct": 1.08
        },
        {
            "year": 2024,
            "receipts_usd": 3201545203,
            "spending_abroad_usd": 3398653204,
            "arrivals": null,
            "receipts_per_arrival_usd": null,
            "receipts_share_gdp_pct": 0.97
        },
        {
            "year": 2023,
            "receipts_usd": 2422229727,
            "spending_abroad_usd": 3086357723,
            "arrivals": null,
            "receipts_per_arrival_usd": null,
            "receipts_share_gdp_pct": 0.72
        }
    ]
}
```

## GET /v1/economy/outlook

Growth and inflation outlook for the next three years. Projected growth and inflation for every country, or the ones you name, from a starting year.

- Group: Context
- Plan: Analyst and up
- Online: https://tourismapi.com/documentation/endpoints/economy-outlook

| Parameter | In | Description | Example |
|---|---|---|---|
| `year` | query | Calendar year | `2026` |
| `country` | query | One or more ISO codes, comma separated | `CL,BA,AT` |

```
curl "https://api.tourismapi.com/v1/economy/outlook?country=CL" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_5b6ab1cda8",
        "data_as_of": "2026-10-20T04:48:19Z",
        "count": 1,
        "years": [
            2026,
            2027,
            2028
        ],
        "note": "Projections, revised as new figures arrive."
    },
    "data": [
        {
            "country": "CL",
            "name": "Chile",
            "gdp_growth_2026": 0.6,
            "inflation_2026": 3.7,
            "gdp_growth_2027": 2.6,
            "inflation_2027": 3.5,
            "gdp_growth_2028": 2.4,
            "inflation_2028": 3
        }
    ]
}
```

## GET /v1/releases

Figures added or revised, newest first. Every load of new or revised figures, newest first, with counts by country.

- Group: Releases
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/releases

| Parameter | In | Description | Example |
|---|---|---|---|
| `since` | query | Only changes after this UTC time | `2026-10-01T00:00:00Z` |
| `country` | query | One or more ISO codes, comma separated | `CL,BA,AT` |
| `limit` | query | Rows per page, 1 to 1000 | `100` |

```
curl "https://api.tourismapi.com/v1/releases?country=CL,BA,AT" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_3c1dfc36b1",
        "data_as_of": "2026-10-20T04:48:20Z",
        "count": 11,
        "since": "2026-09-20"
    },
    "data": [
        {
            "date": "2026-10-18",
            "country": "AT",
            "series_updated": 1968,
            "latest_period": "2026-Q1",
            "measures": [
                "departures",
                "nights",
                "spend"
            ]
        },
        {
            "date": "2026-10-18",
            "country": "CL",
            "series_updated": 53,
            "latest_period": "2026-Q2",
            "measures": [
                "nights",
                "occupancy",
                "spend"
            ]
        },
        {
            "date": "2026-10-18",
            "country": "BA",
            "series_updated": 24,
            "latest_period": "2026-Q1",
            "measures": [
                "spend"
            ]
        }
    ]
}
```

## GET /v1/releases/latest

The last release for each country. For each country, when figures last arrived and which period they took it to.

- Group: Releases
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/releases-latest

```
curl "https://api.tourismapi.com/v1/releases/latest" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_9a9e0aa49b",
        "data_as_of": "2026-10-20T04:48:24Z",
        "count": 100,
        "since": "2026-10-13"
    },
    "data": [
        {
            "date": "2026-10-19",
            "country": "HU",
            "series_updated": 434,
            "latest_period": "2026-08",
            "measures": [
                "capacity",
                "spend",
                "arrivals"
            ]
        },
        {
            "date": "2026-10-19",
            "country": "JM",
            "series_updated": 169,
            "latest_period": "2025-12",
            "measures": [
                "arrivals"
            ]
        },
        {
            "date": "2026-10-19",
            "country": "SX",
            "series_updated": 6,
            "latest_period": "2025-12",
            "measures": [
                "arrivals"
            ]
        }
    ]
}
```

## GET /v1/freshness

How many months behind each country is. Months between today and each country's newest finished period, worst first.

- Group: Releases
- Plan: Free and up
- Online: https://tourismapi.com/documentation/endpoints/freshness

| Parameter | In | Description | Example |
|---|---|---|---|
| `freq` | query | Frequency: monthly, quarterly or annual | `M` |

```
curl "https://api.tourismapi.com/v1/freshness" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_9218e3d9ce",
        "data_as_of": "2026-10-20T04:48:24Z",
        "count": 125
    },
    "data": [
        {
            "iso": "KI",
            "name": "Kiribati",
            "latest": "2018-12",
            "months_behind": 94
        },
        {
            "iso": "KZ",
            "name": "Kazakhstan",
            "latest": "2022-10",
            "months_behind": 48
        },
        {
            "iso": "GM",
            "name": "Gambia",
            "latest": "2022-12",
            "months_behind": 46
        }
    ]
}
```

## GET /v1/gaps

Which months each country is missing. Every monthly country from its first figure to last month: the months held, missing, not published by the source and withheld, with the missing runs. Nothing before a country's first figure counts as missing. Free.

- Group: Releases
- Plan: Free and up
- Online: https://tourismapi.com/documentation/endpoints/gaps

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | One or more ISO codes, comma separated | `CL,BA,AT` |

```
curl "https://api.tourismapi.com/v1/gaps?country=CL" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_4c9d20",
        "data_as_of": "2026-10-14T12:00:00Z",
        "count": 1,
        "next": null
    },
    "data": [
        {
            "country": "VN",
            "name": "Vietnam",
            "measure": "arrivals",
            "series": "sr_k2v8x0q1",
            "first": "2008-01",
            "latest": "2026-09",
            "months_held": 220,
            "months_missing": 0,
            "months_not_published": 0,
            "months_withheld": 0,
            "months_pending": 0,
            "complete_pct": 100,
            "missing": [],
            "not_published": [],
            "withheld": [],
            "checked_at": "2026-10-14T12:00:00Z"
        }
    ]
}
```

## GET /v1/calendar

When each office is next expected to publish. Expected next release for each country, from the pattern of its past releases.

- Group: Releases
- Plan: Developer and up
- Online: https://tourismapi.com/documentation/endpoints/calendar

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | One or more ISO codes, comma separated | `CL,BA,AT` |

```
curl "https://api.tourismapi.com/v1/calendar?country=CL,BA,AT" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_900c62c454",
        "data_as_of": "2026-10-20T04:48:24Z",
        "count": 3,
        "note": "Expected months are worked out from each office's usual delay; offices set their own dates."
    },
    "data": [
        {
            "country": "AT",
            "name": "Austria",
            "latest": "2026-08",
            "next_period": "2026-09",
            "expected_in": "2026-11",
            "usual_delay_months": 2,
            "overdue": false
        },
        {
            "country": "BA",
            "name": "Bosnia and Herzegovina",
            "latest": "2026-08",
            "next_period": "2026-09",
            "expected_in": "2026-11",
            "usual_delay_months": 2,
            "overdue": false
        },
        {
            "country": "CL",
            "name": "Chile",
            "latest": "2026-08",
            "next_period": "2026-09",
            "expected_in": "2026-11",
            "usual_delay_months": 2,
            "overdue": false
        }
    ]
}
```

## GET /v1/changelog

Changes to the API and its coverage. Additions, changes and retirements, dated, so integrations never break unannounced.

- Group: Releases
- Plan: Free and up
- Online: https://tourismapi.com/documentation/endpoints/changelog

| Parameter | In | Description | Example |
|---|---|---|---|
| `since` | query | Only changes after this UTC time | `2026-10-01T00:00:00Z` |

```
curl "https://api.tourismapi.com/v1/changelog" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_e206208610",
        "data_as_of": "2026-10-20T04:48:24Z",
        "count": 8
    },
    "data": [
        {
            "date": "2026-10-14",
            "change": "Data gaps for every country, month by month, free: /v1/gaps"
        },
        {
            "date": "2026-10-14",
            "change": "Country briefs and rivals: /v1/countries/{iso}/brief and /v1/countries/{iso}/rivals"
        },
        {
            "date": "2026-10-14",
            "change": "Jet fuel and crude oil by month from 1990, with an index against 2019: /v1/fuel and /v1/fuel/latest"
        }
    ]
}
```

## GET /v1/monitor

The monthly report on world tourism, as data. One edition of the World Tourism Monitor: headline figures, regions, movers, records, trust grades, coming holidays and exchange rates. The world or one region, any month from 2015. Each edition is kept as first published as well as revised: vintage=first returns the first, and meta says whether it has been revised since.

- Group: Releases
- Plan: Free and up
- Online: https://tourismapi.com/documentation/endpoints/monitor

| Parameter | In | Description | Example |
|---|---|---|---|
| `month` | query | A month, YYYY-MM (the latest when left out) | `2026-09` |
| `edition` | query | world (the default), asia-pacific, europe, americas, africa or middle-east | `world` |
| `vintage` | query | latest (the default): the edition as rebuilt with countries' later revisions; first: the edition exactly as first published | `first` |

```
curl "https://api.tourismapi.com/v1/monitor" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_2996221a5c",
        "data_as_of": "2026-10-20T04:48:24Z",
        "count": 1,
        "edition": "world",
        "month": "2026-07",
        "vintage": "latest",
        "first_published_at": "2026-10-13T21:08:06Z",
        "revised_since": true
    },
    "data": {
        "month": "2026-07",
        "edition": "world",
        "title": "World",
        "built_at": "2026-10-19T15:42:30Z",
        "headline": {
            "countries": 71,
            "growing": 52,
            "compared": 71,
            "yoy_pct": 4,
            "vs_2019_pct": 104.5,
            "records": 13,
            "trust": 99
        },
        "regions": [
            {
                "region": "americas",
                "name": "Americas",
                "countries": 10,
                "yoy_pct": 4.1,
                "vs_2019_pct": 101.1
            },
            {
                "region": "africa",
                "name": "Africa",
                "countries": 4,
                "yoy_pct": 7.5,
                "vs_2019_pct": 115.9
            },
            {
                "region": "middle-east",
                "name": "Middle East",
                "countries": 2,
                "yoy_pct": 23.2,
                "vs_2019_pct": 70.4
            }
        ],
        "rising": [
            {
                "country": "XK",
                "name": "Kosovo",
                "region": "europe",
                "measure": "arrivals",
                "unit": "Number",
                "series": "sr_zqr55sk9",
                "basis": "stays",
                "value": 66955,
                "year_before": 50825,
                "yoy_pct": 31.7,
                "vs_2019_pct": null,
                "series_break": true,
                "pct_of_record": 100,
                "record": true
            },
            {
                "country": "IL",
                "name": "Israel",
                "region": "middle-east",
                "measure": "arrivals",
                "unit": "number",
                "series": "sr_4jryaj4q",
                "basis": "border",
                "value": 109300,
                "year_before": 85000,
                "yoy_pct": 28.6,
                "vs_2019_pct": 33.9,
                "series_break": false,
                "pct_of_record": 22.5,
                "record": false
            },
            {
                "country": "SK",
                "name": "Slovakia",
                "region": "europe",
                "measure": "arrivals",
                "unit": "Number",
                "series": "sr_m4e713de",
                "basis": "stays",
                "value": 315126,
                "year_before": 256276,
                "yoy_pct": 23,
                "vs_2019_pct": 110,
                "series_break": false,
                "pct_of_record": 100,
                "record": true
            }
        ],
        "falling": [
            {
                "country": "AU",
                "name": "Australia",
                "region": "asia-pacific",
                "measure": "arrivals",
                "unit": "NUM",
                "series": "sr_bgakrnej",
                "basis": "border",
                "value": 710980,
                "year_before": 743210,
                "yoy_pct": -4.3,
                "vs_2019_pct": 90,
                "series_break": false,
                "pct_of_record": 66,
                "record": false
            },
            {
                "country": "CY",
                "name": "Cyprus",
                "region": "europe",
                "measure": "arrivals",
                "unit": "Number",
                "series": "sr_890crw2r",
                "basis": "stays",
                "value": 413874,
                "year_before": 430908,
                "yoy_pct": -4,
                "vs_2019_pct": 112.8,
                "series_break": false,
                "pct_of_record": 93.5,
                "record": false
            },
            {
                "country": "SG",
                "name": "Singapore",
                "region": "asia-pacific",
                "measure": "arrivals",
                "unit": "Number",
                "series": "sr_x860p4b7",
                "basis": "border",
                "value": 1515955,
                "year_before": 1571981,
                "yoy_pct": -3.6,
                "vs_2019_pct": 87.9,
                "series_break": false,
                "pct_of_record": 86.5,
                "record": false
            }
        ],
        "records": [
            {
                "country": "RS",
                "name": "Serbia",
                "region": "europe",
                "measure": "arrivals",
                "unit": "Number",
                "series": "sr_7w10s48w",
                "basis": "stays",
                "value": 283890,
                "year_before": 273713,
                "yoy_pct": 3.7,
                "vs_2019_pct": 131.6,
                "series_break": false,
                "pct_of_record": 100,
                "record": true
            },
            {
                "country": "SE",
                "name": "Sweden",
                "region": "europe",
                "measure": "arrivals",
                "unit": "Number",
                "series": "sr_3p3g5pxe",
                "basis": "stays",
                "value": 1920099,
                "year_before": 1725525,
                "yoy_pct": 11.3,
                "vs_2019_pct": 119.7,
                "series_break": false,
                "pct_of_record": 100,
                "record": true
            },
            {
                "country": "SK",
                "name": "Slovakia",
                "region": "europe",
                "measure": "arrivals",
                "unit": "Number",
                "series": "sr_m4e713de",
                "basis": "stays",
                "value": 315126,
                "year_before": 256276,
                "yoy_pct": 23,
                "vs_2019_pct": 110,
                "series_break": false,
                "pct_of_record": 100,
                "record": true
            }
        ],
        "near_record": [
            {
                "country": "DE",
                "name": "Germany",
                "region": "europe",
                "measure": "arrivals",
                "unit": "Number",
                "series": "sr_1pwb6msd",
                "basis": "stays",
                "value": 4847525,
                "year_before": 4666150,
                "yoy_pct": 3.9,
                "vs_2019_pct": 100.3,
                "series_break": false,
                "pct_of_record": 100,
                "record": true
            },
            {
                "country": "LI",
                "name": "Liechtenstein",
                "region": "europe",
                "measure": "arrivals",
                "unit": "Number",
                "series": "sr_dsta93xs",
                "basis": "stays",
                "value": 22514,
                "year_before": 15838,
                "yoy_pct": 42.2,
                "vs_2019_pct": 171.9,
                "series_break": false,
                "pct_of_record": 100,
                "record": true
            },
            {
                "country": "LU",
                "name": "Luxembourg",
                "region": "europe",
                "measure": "arrivals",
                "unit": "Number",
                "series": "sr_r4tdem87",
                "basis": "stays",
                "value": 204693,
                "year_before": 183375,
                "yoy_pct": 11.6,
                "vs_2019_pct": 164.7,
                "series_break": false,
                "pct_of_record": 100,
                "record": true
            }
        ],
        "holidays_next_month": [
            {
                "name": "Day of the Republic",
                "date": "2026-08-02",
                "countries": [
                    "MK"
                ]
            },
            {
                "name": "Agrarian Reform Day",
                "date": "2026-08-02",
                "countries": [
                    "BO"
                ]
            },
            {
                "name": "Commerce Day",
                "date": "2026-08-03",
                "countries": [
                    "IS"
                ]
            }
        ],
        "fx": [
            {
                "currency": "AUD",
                "per_eur": 1.6396,
                "change_pct": 0
            },
            {
                "currency": "THB",
                "per_eur": 38.2595,
                "change_pct": -1
            },
            {
                "currency": "INR",
                "per_eur": 109.4158,
                "change_pct": -0.1
            }
        ],
        "countries": [
            {
                "country": "TN",
                "name": "Tunisia",
                "region": "africa",
                "measure": "arrivals",
                "unit": "visitors",
                "series": "sr_pxc56ykb",
                "basis": "border",
                "value": 1113200,
                "year_before": 1065600,
                "yoy_pct": 4.5,
                "vs_2019_pct": null,
                "series_break": false,
                "pct_of_record": 90.2,
                "record": false,
                "trust": {
                    "fresh": 100,
                    "complete": 96,
                    "stable": 100,
                    "official": 100,
                    "score": 99,
                    "grade": "A"
                }
            },
            {
                "country": "US",
                "name": "United States",
                "region": "americas",
                "measure": "arrivals",
                "unit": "arrivals",
                "series": "sr_4fr14e35",
                "basis": "border",
                "value": 6248242,
                "year_before": 6252054,
                "yoy_pct": -0.1,
                "vs_2019_pct": 81.1,
                "series_break": false,
                "pct_of_record": 76.5,
                "record": false,
                "trust": {
                    "fresh": 100,
                    "complete": 85,
                    "stable": 100,
                    "official": 100,
                    "score": 96,
                    "grade": "A"
                }
            },
            {
                "country": "VN",
                "name": "Vietnam",
                "region": "asia-pacific",
                "measure": "arrivals",
                "unit": "visitors",
                "series": "sr_6e2r1wmy",
                "basis": "border",
                "value": 1665846,
                "year_before": 1562588,
                "yoy_pct": 6.6,
                "vs_2019_pct": 126.6,
                "series_break": false,
                "pct_of_record": 67.9,
                "record": false,
                "trust": {
                    "fresh": 100,
                    "complete": 98,
                    "stable": 100,
                    "official": 100,
                    "score": 99,
                    "grade": "A"
                }
            }
        ],
        "method": "Each country's monthly headline (arrivals, or nights where arrivals are not counted). Changes are combined as a geometric mean, each country weighted by the square root of its size in 2019, so the large destinations count for more and none decides it alone. Trust is the data as held today: freshness, completeness over five years, revisions and official status, 0 to 100.",
        "status": "complete",
        "lede": "Seventy-one countries reported July figures, of which 52 registered growth. International arrivals rose 4.0% on a year, lifting the global level to 104.5% of the same month in 2019. Europe led the larger regions with a 4.2% gain, while the Middle East posted the steepest rise at 23.2%. Africa reached 115.9% of its 2019 benchmark, the highest of any region.",
        "highlights": [
            {
                "tag": "Movers",
                "text": "Bhutan led the risers with arrivals up 101.2% on a year."
            },
            {
                "tag": "Records",
                "text": "Eight countries, including Germany and South Korea, set a record July."
            },
            {
                "tag": "Currencies",
                "text": "The Korean won rose 3.5% against the euro, the strongest move in the basket."
            }
        ],
        "page": "https://tourismapi.com/monitor/2026-07",
        "pdf": "https://tourismapi.com/monitor/2026-07.pdf",
        "cite": "Tourism API, World Tourism Monitor: World, July 2026. https://tourismapi.com/monitor/2026-07"
    }
}
```

## GET /v1/monitor/editions

Every edition of the Monitor held. Every month and edition of the World Tourism Monitor held, with how many countries each covers.

- Group: Releases
- Plan: Free and up
- Online: https://tourismapi.com/documentation/endpoints/monitor-editions

```
curl "https://api.tourismapi.com/v1/monitor/editions" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_62702115ee",
        "data_as_of": "2026-10-20T04:48:26Z",
        "count": 829
    },
    "data": [
        {
            "month": "2026-08",
            "edition": "africa",
            "countries": 3,
            "status": "complete",
            "built_at": "2026-10-19T15:42:30Z"
        },
        {
            "month": "2026-08",
            "edition": "americas",
            "countries": 7,
            "status": "complete",
            "built_at": "2026-10-19T15:42:30Z"
        },
        {
            "month": "2026-08",
            "edition": "asia-pacific",
            "countries": 17,
            "status": "complete",
            "built_at": "2026-10-19T15:42:30Z"
        }
    ]
}
```

## GET /v1/monitor/paper

The month's paper as one document. The World Tourism Monitor paper for a month: brief, key findings, every section, figure and table, each with the call that reproduces it. Free on every key.

- Group: Releases
- Plan: Free and up
- Online: https://tourismapi.com/documentation/endpoints/monitor-paper

| Parameter | In | Description | Example |
|---|---|---|---|
| `month` | query | A month, YYYY-MM (the latest when left out) | `2026-09` |

```
curl "https://api.tourismapi.com/v1/monitor/paper" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_b4aa0e9eca",
        "data_as_of": "2026-10-20T04:48:26Z",
        "count": 1,
        "month": "2026-07",
        "built_at": "2026-10-19T15:43:15Z",
        "cite": "Tourism API (2026). World Tourism Monitor, Issue No. 139, World edition, July 2026. Reference TAPI-WTM-2026-07-WLD. https://tourismapi.com/monitor/2026-07"
    },
    "data": {
        "month": "2026-07",
        "issue": 139,
        "reference": "TAPI-WTM-2026-07-WLD",
        "title": "World Tourism Monitor, July 2026",
        "built_at": "2026-10-19T15:43:15Z",
        "edition_built_at": "2026-10-19T15:42:30Z",
        "cite": "Tourism API (2026). World Tourism Monitor, Issue No. 139, World edition, July 2026. Reference TAPI-WTM-2026-07-WLD. https://tourismapi.com/monitor/2026-07",
        "brief": "International arrivals moved +4.0% on a year in July 2026 across the 71 countries that can be compared, and stood at 104.5% of the July 2019 level. 52 of them grew, and 13 had the highest month in their records.",
        "kf": [
            [
                "Against July 2019",
                "104.5%",
                ""
            ],
            [
                "Countries growing",
                "52 of 71",
                ""
            ],
            [
                "Record months",
                "13",
                ""
            ]
        ],
        "key_findings": [
            "Middle East: +23.2% on a year across 2 countries, at 70.4% of 2019; too few countries to speak for the region.",
            "Largest rise among destinations of 100,000 a month or more: Bolivia, +47.4%. Largest fall: Cambodia, -29.2%.",
            "Jet fuel averaged $3.40 a gallon, +51.6% on a year."
        ],
        "sections": [
            {
                "no": 26,
                "kick": "Appendix B",
                "title": "Economic tables",
                "dek": "Growth, inflation, unemployment and output for every country in this edition.",
                "paragraphs": [],
                "figures": [],
                "tables": [
                    21
                ]
            },
            {
                "no": 27,
                "kick": "Appendix C",
                "title": "Revisions and corrections",
                "dek": "What changed in the figures behind this edition, and how corrections are made.",
                "paragraphs": [
                    "6 figures behind this edition were revised by the countries in the 35 days before this paper was built on 19 October 2026, after the month it covers. Each edition is kept as first published and served beside its revised form.",
                    "To report an error in this paper, use tourismapi.com/support with the reference on its cover and the figure; confirmed errors are corrected and listed in the next edition."
                ],
                "figures": [],
                "tables": [
                    22
                ]
            },
            {
                "no": 28,
                "kick": "Appendix D",
                "title": "How this paper was made",
                "dek": "What went in, what each part rests on, and what was kept out.",
                "paragraphs": [
                    "The visitor figures are each country's own published counts, as held when this paper was built. 38 of the 71 countries in this edition count visitors at the border; 33 count guests or nights from abroad at accommodation, where each stay is counted, so their levels are read for direction, not size. Only travel from abroad is used: where a country counts every guest, its foreign guests alone are taken.",
                    "Kept out: estimates from international bodies, bookings or search data, and any figure a country did not publish itself. A country with no figure for the month is not estimated (see Coverage in full). A month that jumps far above the months around it with no change in what is counted is set aside as a likely error; a series that changed what it counts is not compared across the change; a series that covers part of a country only, or counts residents, is held back.",
                    "The world and regional figures are a weighted geometric mean of each country's change on a year, weighted by the square root of its size, so the large destinations count for more and no single country decides them. The largest rise and fall are named among destinations of 100,000 visitors a month or more. Every number in the text was checked against the figures before publication, and a paper that fails the check is held back, not published."
                ],
                "figures": [],
                "tables": [
                    23
                ]
            }
        ],
        "facts": [
            "Visitors from France, summed over the 14 destinations that count them (Costa Rica, Curaçao, Israel, Japan, Jersey, Mauritius, Mongolia, Netherlands, New Caledonia, South Africa, South Korea, Sri Lanka, Thailand, Vietnam): 281,156, +7.4% on a year, 19,000 more than a year before.",
            "Visitors from the United Kingdom, summed over the 12 destinations that count them (Costa Rica, Curaçao, Israel, Japan, Jersey, Mauritius, Mongolia, South Africa, South Korea, Sri Lanka, Thailand, Vietnam): 271,117, +2.4% on a year, 6,400 more than a year before.",
            "The world figure with one country left out: without South Korea +3.7%; without Bolivia +3.8%; without Israel +3.8%; without United States +4.2%; without Thailand +4.3%; without Cambodia +4.6%."
        ],
        "figures": [
            {
                "no": 19,
                "title": "The world figure for the next three months, with its range",
                "unit": "Change on a year, %",
                "type": "band",
                "data": {
                    "months": [
                        "2026-08",
                        "2026-09",
                        "2026-10"
                    ],
                    "value": [
                        2.2,
                        7.6,
                        2.8
                    ],
                    "low": [
                        1.7,
                        5.4,
                        -1.8
                    ],
                    "high": [
                        2.7,
                        9.8,
                        7.6
                    ]
                },
                "source": "Tourism API, /v1/stats/forecast, combined as the index is. Months a country has already published are its own figures.",
                "call": "/v1/stats/forecast?country=ES&horizon=3"
            },
            {
                "no": 20,
                "title": "The world figure with each country left out in turn",
                "unit": "Change on a year, %",
                "type": "dots",
                "data": {
                    "labels": [
                        "United States",
                        "Thailand",
                        "Cambodia"
                    ],
                    "values": [
                        4.2,
                        4.3,
                        4.6
                    ],
                    "mark": 4,
                    "low": 2.4,
                    "high": 5.8
                },
                "source": "Tourism API, World Tourism Monitor. The band holds the middle nine in ten of resampled panels.",
                "call": "/v1/monitor"
            },
            {
                "no": 21,
                "title": "Change on a year, every country, last twelve months",
                "unit": "%",
                "type": "heat",
                "data": {
                    "months": [
                        "2026-05",
                        "2026-06",
                        "2026-07"
                    ],
                    "rows": [
                        {
                            "name": "Tunisia",
                            "values": [
                                null,
                                10.6,
                                4.5
                            ]
                        },
                        {
                            "name": "United States",
                            "values": [
                                2.3,
                                2.7,
                                -0.1
                            ]
                        },
                        {
                            "name": "Vietnam",
                            "values": [
                                16.5,
                                14.7,
                                6.6
                            ]
                        }
                    ]
                },
                "source": "Tourism API, /v1/arrivals. Blank: no figure held for the month.",
                "call": "/v1/growth"
            }
        ],
        "tables": [
            {
                "no": 21,
                "title": "Economic figures by country",
                "head": [
                    "Inflation 2026",
                    "Jobless 2026",
                    "GDP 2026"
                ],
                "rows": [
                    [
                        "5.5",
                        "n/a",
                        "$62.7bn"
                    ],
                    [
                        "3.6",
                        "4.2",
                        "$32,642.4bn"
                    ],
                    [
                        "4.7",
                        "2.1",
                        "$542.1bn"
                    ]
                ],
                "source": "Tourism API, /v1/economy/{iso}. Per cent unless shown. Figures from 2026 on are projections.",
                "call": "/v1/economy/{iso}",
                "cls": "ct"
            },
            {
                "no": 22,
                "title": "Revisions to the figures behind this edition, the 35 days before 19 October 2026",
                "head": [
                    "Was",
                    "Now",
                    "Revised"
                ],
                "rows": [
                    [
                        "107,505",
                        "118,644",
                        "2026-10-15"
                    ],
                    [
                        "148,567",
                        "159,272",
                        "2026-10-15"
                    ],
                    [
                        "164,646",
                        "176,624",
                        "2026-10-15"
                    ]
                ],
                "source": "Tourism API, /v1/series/{id}/revisions.",
                "call": "/v1/series/{id}/revisions",
                "cls": "ct"
            },
            {
                "no": 23,
                "title": "What this paper was built from",
                "head": [
                    "Part",
                    "What is used",
                    "Where it comes from"
                ],
                "rows": [
                    [
                        "Currencies",
                        "Daily exchange rates against the euro",
                        "Central bank reference rates"
                    ],
                    [
                        "Calendar",
                        "Public holidays by country and date",
                        "Official holiday calendars"
                    ],
                    [
                        "Outlook",
                        "Expected arrivals for the months ahead",
                        "Tourism API's own models, built from each country's history; marked as forecasts"
                    ]
                ],
                "source": "Tourism API. Every figure and table in this paper names the call that returns it (Reproduce this paper).",
                "call": "/v1/monitor?month=2026-07",
                "cls": "ct"
            }
        ],
        "publisher": "Tourism API",
        "left_out": [],
        "back": false,
        "calls": [
            [
                "Economic figures by country",
                "/v1/economy/{iso}",
                "analyst"
            ],
            [
                "Revisions to the figures behind this edition, the 35 days before 19 October 2026",
                "/v1/series/{id}/revisions",
                "analyst"
            ],
            [
                "What this paper was built from",
                "/v1/monitor?month=2026-07",
                "free"
            ]
        ],
        "numbers": [
            "28,000",
            "33,000",
            "6,400"
        ],
        "check": {
            "ok": true,
            "numbers_recorded": 976,
            "problems": []
        },
        "scrutiny": {
            "rules": [
                {
                    "level": "check",
                    "where": "Table 9, Maldives",
                    "what": "55.1% of GDP",
                    "why": "Receipts worth more than half of output."
                },
                {
                    "level": "check",
                    "where": "Table 9, Antigua and Barbuda",
                    "what": "52.3% of GDP",
                    "why": "Receipts worth more than half of output."
                }
            ],
            "stops": 0,
            "checked_at": "2026-10-19T15:43:15Z"
        },
        "articles_kept": 10,
        "written_at": "2026-10-19T17:09:31Z",
        "writing": {
            "open": 0,
            "at": "2026-10-19T17:09:31Z"
        }
    }
}
```

## GET /v1/monitor/index

The world tourism index, month by month. The Monitor's headline as a monthly series from 2015: the change on a year, the level against 2019, countries growing and the trust score, for the world or one region.

- Group: Releases
- Plan: Analyst and up
- Online: https://tourismapi.com/documentation/endpoints/monitor-index

| Parameter | In | Description | Example |
|---|---|---|---|
| `edition` | query | world (the default), asia-pacific, europe, americas, africa or middle-east | `world` |
| `from` | query | First period to return | `2025-01` |
| `to` | query | Last period to return | `2026-08` |

```
curl "https://api.tourismapi.com/v1/monitor/index?from=2025-01&to=2026-08" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_7b0dd19565",
        "data_as_of": "2026-10-20T04:48:26Z",
        "count": 19,
        "edition": "world",
        "method": "Each month: the countries' changes on a year combined as a geometric mean weighted by 2019 size; vs_2019_pct the same month in 2019 = 100."
    },
    "data": [
        {
            "month": "2025-01",
            "countries": 90,
            "yoy_pct": 13.4,
            "vs_2019_pct": 109.8,
            "growing": 69,
            "compared": 88,
            "records": 8,
            "trust": 97
        },
        {
            "month": "2025-02",
            "countries": 91,
            "yoy_pct": 3.9,
            "vs_2019_pct": 106.6,
            "growing": 56,
            "compared": 89,
            "records": 0,
            "trust": 97
        },
        {
            "month": "2025-03",
            "countries": 92,
            "yoy_pct": -0.4,
            "vs_2019_pct": 100.4,
            "growing": 39,
            "compared": 89,
            "records": 2,
            "trust": 97
        }
    ]
}
```

## GET /v1/monitor/trust

How far each country's figures can be trusted. Every country in the latest Monitor graded on its data as held today: freshness, completeness over five years, revisions and official status, with a 0 to 100 score and a grade. Weakest first.

- Group: Releases
- Plan: Analyst and up
- Online: https://tourismapi.com/documentation/endpoints/monitor-trust

| Parameter | In | Description | Example |
|---|---|---|---|
| `country` | query | One or more ISO codes, comma separated | `CL,BA,AT` |

```
curl "https://api.tourismapi.com/v1/monitor/trust?country=CL" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_7f3a1c",
        "data_as_of": "2026-10-13T04:47:22Z",
        "count": 1,
        "next": null
    },
    "data": [
        {
            "country": "LK",
            "name": "Sri Lanka",
            "region": "asia-pacific",
            "measure": "arrivals",
            "series": "sr_mman287y",
            "fresh": 100,
            "complete": 38,
            "stable": 100,
            "official": 100,
            "score": 81,
            "grade": "B"
        }
    ]
}
```

## GET /v1/bulk/{iso}.csv

A whole country in one file. Every series and value for one country as a single CSV, rebuilt after each release.

- Group: Bulk and account
- Plan: Intel and up
- Online: https://tourismapi.com/documentation/endpoints/bulk-iso-csv

| Parameter | In | Description | Example |
|---|---|---|---|
| `iso` | path | ISO 3166 two-letter country code | `CL` |

```
curl "https://api.tourismapi.com/v1/bulk/CL.csv" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
"series_id,period,value,unit\njp.arrivals.total.m,2026-06,694628,arrivals\njp.arrivals.total.m,2026-07,769406,arrivals\njp.arrivals.total.m,2026-08,798946,arrivals\n..."
```

## GET /v1/bulk/all.zip

The entire archive in one download. Everything held, one CSV per country in a zip, with a manifest of series.

- Group: Bulk and account
- Plan: Intel and up
- Online: https://tourismapi.com/documentation/endpoints/bulk-all-zip

```
curl "https://api.tourismapi.com/v1/bulk/all.zip" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_7f3a1c",
        "data_as_of": "2026-10-12T12:01:11Z",
        "count": 1,
        "next": null
    },
    "data": {
        "file": "all.zip",
        "countries": 199,
        "built_at": "2026-10-12T09:41:07Z",
        "manifest": "/v1/bulk/manifest.json"
    }
}
```

## GET /v1/units

Every unit and how values are scaled. The units used across the API and how to read scaled values.

- Group: Bulk and account
- Plan: Free and up
- Online: https://tourismapi.com/documentation/endpoints/units

```
curl "https://api.tourismapi.com/v1/units" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_55d1900b9d",
        "data_as_of": "2026-10-20T04:48:26Z",
        "count": 1
    },
    "data": {
        "counts": [
            {
                "unit": "nights",
                "scale": 1
            },
            {
                "unit": "visitors",
                "scale": 1
            },
            {
                "unit": "establishments",
                "scale": 1
            }
        ],
        "rates": [
            {
                "unit": "percent",
                "scale": 1
            },
            {
                "unit": "nights per arrival",
                "scale": 1
            }
        ],
        "currencies": [
            "TWD",
            "USD",
            "ZAR"
        ],
        "periods": [
            "2026-Q2 a quarter",
            "2026 a year",
            "2026-10-12 a day"
        ]
    }
}
```

## GET /v1/usage

Your requests today and this month. Requests made with your key today and this month, by endpoint.

- Group: Bulk and account
- Plan: Free and up
- Online: https://tourismapi.com/documentation/endpoints/usage

```
curl "https://api.tourismapi.com/v1/usage" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_7f3a1c",
        "data_as_of": "2026-10-12T12:01:11Z",
        "count": 1,
        "next": null
    },
    "data": {
        "today": 214,
        "month": 3880,
        "by_endpoint": {
            "/v1/arrivals": 120,
            "/v1/series/{id}/observations": 94
        }
    }
}
```

## GET /v1/status

Service status and data freshness. Whether the API is up, and when figures were last loaded.

- Group: Bulk and account
- Plan: Free and up
- Online: https://tourismapi.com/documentation/endpoints/status

```
curl "https://api.tourismapi.com/v1/status" -H "X-API-Key: $TOURISM_API_KEY"
```

```json
{
    "meta": {
        "request_id": "req_b2f15b089d",
        "data_as_of": "2026-10-20T04:48:26Z",
        "count": 1
    },
    "data": {
        "ok": true,
        "last_load": "2026-10-20T04:14:01Z",
        "countries": 214,
        "monthly_countries": 125,
        "monthly_within_2_months": 55,
        "endpoints_live": 75,
        "status_page": "https://tourismapi.com/status"
    }
}
```

