IncentiveTrips API · v1

The glass-box Index, programmatically.

Query ranked incentive-travel destinations and venues — scores, seasonality, capacity, hotel details, and licensed photography — as clean JSON. No scraping, no spreadsheets. Free to start.

Quickstart

Every response is JSON over HTTPS. The base URL is https://incentivetrips.com/api/v1. A key is optional to start — anonymous requests work and are CDN-cached.

curl https://incentivetrips.com/api/v1/destinations?limit=3 \
  -H "Authorization: Bearer itk_live_xxxxxxxx_..."

Or from JavaScript:

const res = await fetch(
  "https://incentivetrips.com/api/v1/venues?destination=lisbon&sort=rating",
  { headers: { Authorization: "Bearer " + KEY } }
);
const { data } = await res.json();

Authentication

Pass your key as a bearer token: Authorization: Bearer <key> (or the x-api-keyheader). Anonymous access is allowed under fair use; a key lifts you out of the shared pool, attributes your traffic, and is how you'll get higher limits and change notices. Generate one in the console below — it's shown once, so store it securely. Keys are hashed at rest; a leaked database never exposes a usable key.

Endpoints

Read-only. All list endpoints support pagination via limit (max 100) and offset. Prefer a machine-readable contract? Here's the OpenAPI 3.1 spec — point Postman, an SDK generator, or an AI agent at it.

Destinations

GET/api/v1/destinations

List destinations, ranked. The Index tier is the ranked top of the universe; the extended tier is the broader searchable set.

regionFilter by region (Europe, Americas, APAC, MEA).
tierindex or extended.
sortrank (default) or name.
limit / offsetPagination. Default 25, max 100.
GET/api/v1/destinations/{slug}

A single destination: full pillar scores, seasonality, cost, review data, and photo. e.g. /api/v1/destinations/lisbon

Venues

GET/api/v1/venues

List ranked venues from the Venue Index, with capacity, scores, Google rating, contact, and photo.

destinationFilter to a destination by slug (e.g. lisbon).
regionFilter by region.
brandFilter by hotel brand (e.g. Marriott).
min_roomsMinimum room count.
sortrank (default) or rating.
limit / offsetPagination. Default 25, max 100.
GET/api/v1/venues/{slug}

A single venue: capacity (rooms, max group, meeting sq ft, buyout), scores, rating, website, phone, address, coordinates, and photo.

Indices

GET/api/v1/indices

List the live composite indices (ITDI first), each with its current reading and links.

GET/api/v1/indices/itdi

The Incentive Travel Demand Index — the flagship live stat. Returns the current reading, a ready-to-cite attribution string, and the full history time series for charting.

Keys

POST/api/v1/keys

Issue an API key. JSON body: { name, email }. The full key is returned once.

Response shape

List endpoints return { data: [...], meta: {...} }; item endpoints return { data: {...} }. Errors return { error: { code, message } } with a matching HTTP status.

{
  "data": [
    {
      "rank": 1,
      "trend": "rising",
      "tier": "index",
      "slug": "lisbon",
      "name": "Lisbon",
      "country": "Portugal",
      "region": "Europe",
      "coordinates": { "lat": 38.72, "lng": -9.14 },
      "scores": {
        "overall": 75.6, "momentum": 52, "air_access": 84,
        "safety": 92, "value": 80, "infrastructure": 90, "planner_fit": 84
      },
      "cost": { "avg_flight_usd": 745, "avg_hotel_usd": 380 },
      "photo": { "url": "https://…", "credit": "Photo by … on Unsplash" },
      "links": { "venues": "/api/v1/venues?destination=lisbon" }
    }
  ],
  "meta": { "total": 418, "count": 3, "limit": 3, "offset": 0, "next": "…" }
}

Get a key & try it

Live console

1 · Get an API key

Optional, but recommended — it lifts you out of the shared fair-use pool and lets us contact you about breaking changes. The key is shown once.

2 · Try a request

Calls /api/v1/destinations?limit=3 anonymously (no key).

Fair use & attribution

It's the same data as the site

Everything here is already public on incentivetrips.com. The API just makes it clean and queryable.

Photos are third-party licensed

Each photo carries its credit and credit_url. Display attribution when you show an image.

Cite the Index

If you publish rankings or the Demand Index, please attribute “IncentiveTrips” and link back.

Be reasonable

Cache responses, don't hammer. Need bulk or higher limits? Grab a key and email us.