Venues
GET
/v1/venuesMuseums, attractions, parks and heritage sites in a country with their yearly visitor counts, largest first. Each venue carries a stable id to join other datasets on, its kind, its coordinates, the count for the year asked (or its latest) beside the year before, and every year held. Chains, companies, transport and services are left out.
Developer plan and upKey requiredJSON or CSVCached until the next release
Parameters
| Name | Type | Description |
|---|---|---|
| isorequired | string path | ISO 3166 two-letter country code e.g. CL |
| kindoptional | string query | Part of the venue's kind, such as museum or theme park e.g. museum |
| yearoptional | integer query | Calendar year e.g. 2026 |
| min_visitorsoptional | integer query | Only venues with at least this many visitors in the year shown e.g. 1000000 |
| limitoptional | integer query | Rows per page, 1 to 1000 e.g. 100 |
Request
# Venues and their visitors
curl "https://api.tourismapi.com/v1/venues?iso=AU&kind=opera" \
-H "X-API-Key: $TOURISM_API_KEY"const res = await fetch("https://api.tourismapi.com/v1/venues?iso=AU&kind=opera", {
headers: { "X-API-Key": process.env.TOURISM_API_KEY }
});
if (!res.ok) throw new Error(`Tourism API ${res.status}`);
const { meta, data } = await res.json();
console.log(meta.data_as_of, data);import os, requests
r = requests.get(
"https://api.tourismapi.com/v1/venues?iso=AU&kind=opera",
headers={"X-API-Key": os.environ["TOURISM_API_KEY"]},
timeout=10,
)
r.raise_for_status()
body = r.json()
print(body["meta"]["data_as_of"], body["data"])$ch = curl_init("https://api.tourismapi.com/v1/venues?iso=AU&kind=opera");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["X-API-Key: " . getenv("TOURISM_API_KEY")],
]);
$body = json_decode(curl_exec($ch), true);
print_r($body["data"]);
Example response
{
"meta": {
"request_id": "req_e6879b7106",
"data_as_of": "2026-11-07T04:51:40Z",
"count": 1,
"country": "AU",
"venues": 1,
"more": false,
"year": null,
"note": "Museums, attractions, parks and heritage sites with a yearly visitor count, largest first; chains, companies, transport and services are left out. Without year, each venue shows its latest year held. wikidata_id is the stable key to join other datasets on. A count for a year not over yet (year_complete false) is a season or financial year labelled by its end."
},
"data": [
{
"wikidata_id": "Q45178",
"name": "Sydney Opera House",
"country": "AU",
"kind": "opera house",
"lat": -33.85706,
"lon": 151.2149,
"year": 2026,
"year_complete": false,
"visitors": 10900000,
"previous_year": null,
"previous_visitors": null,
"change_pct": null,
"years_held": 1,
"history": [
{
"year": 2026,
"visitors": 10900000
}
]
}
]
}Response fields
| Field | Type | Example |
|---|---|---|
| wikidata_id | string | Q45178 |
| name | string | Sydney Opera House |
| country | string | AU |
| kind | string | opera house |
| lat | number | -33.85706 |
| lon | number | 151.2149 |
| year | number | 2026 |
| year_complete | boolean | false |
| visitors | number | 10900000 |
| previous_year | null | null |
| previous_visitors | null | null |
| change_pct | null | null |
| years_held | number | 1 |
| history | array | 1 items |