---
title: "Points of interest, ranked by quality, significance, and knowledge-base grounding"
method: GET
path: "/v1/pois"
tags: ["data"]
---

# Points of interest, ranked by quality, significance, and knowledge-base grounding

`GET /v1/pois`

## Request

- Base URL: `https://api.travelminds.ai`
- URL: `https://api.travelminds.ai/v1/pois`
- Auth: none declared

Returns curated POIs (utility/duplicate/tribute/corrupted classes filtered out). Ordering is internal: editorial quality, then significance (world-heritage > national > regional), then strength of knowledge-base grounding, then rating. When city_id is a megacity that has neighborhood children (e.g. New York City), results are automatically rolled up from those children. With no city_id or iso_alpha2 filter, returns a curated sample of verified heritage POIs (scope by city_id or iso_alpha2 for full results).

## Query parameters

- `city_id` string, nullable
- `iso_alpha2` string, nullable
- `has_qid` boolean, nullable
- `limit` integer
- `offset` integer

## Headers

- `authorization` string, nullable
- `x-rapidapi-proxy-secret` string, nullable
- `x-rapidapi-user` string, nullable
- `x-tmai-proxy-secret` string, nullable
- `x-tmai-proxy-provider` string, nullable
- `x-tmai-proxy-user` string, nullable

## Response `200`

Successful Response

- POIOut[]
  - `id` string, required: Canonical POI UUID.
  - `name` string, required: POI name in source script.
  - `city_id` string, required: Parent city UUID. Megacity rollup applies on city_id queries.
  - `city_name` string, nullable: Parent city name (denormalised for convenience).
  - `iso_alpha2` string, nullable: Country code of the parent city.
  - `rating` string, nullable: Source-provided rating (string-typed; precision varies by source).
  - `fsq_categories` string, nullable: Raw upstream category labels. **Deprecated 2026-07-21** — switch to `category_normalized`.
  - `category_normalized` string[], nullable: Ordered, deduplicated list of in-house category slugs (e.g. ['do.beach', 'eat.cafe']). First element is the primary category. ~64 leaves across 8 domains (eat / sleep / see / do / shop / move / live / geo). See https://travelminds.ai/docs/category-normalized for the full taxonomy.
  - `wikidata_qid` string, nullable: Wikidata QID (e.g. 'Q243') if the POI is grounded.
  - `wikipedia_en` string, nullable: English Wikipedia article slug if known.
  - `wikidata_label` string, nullable: Wikidata label used for matching.
  - `source` string, nullable: Upstream data source (e.g. 'foursquare', 'osm', 'wikidata').
  - `license` string, nullable: License id from the registry (D7 posture).
  - `license_url` string, nullable: Public URL of the license text.
  - `attribution_required` boolean, nullable: True if downstream use must cite the upstream source.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/travelminds/apis/travelmindsai-api-gateway.md) · [All operations](https://skmtc.dev/travelminds/apis/travelmindsai-api-gateway/llms.txt) · [OpenAPI document](https://skmtc.dev/travelminds/apis/travelmindsai-api-gateway/revisions/d05c8634e340?raw)
