🆓 No API Key Required

tabiji API

Free REST API for AI-curated travel data — destinations, itineraries, comparisons, country facts, alerts, scam guides, and more. No API key required.

6,498
Destinations
399
Itineraries

Base URL

All endpoints return static JSON files. No authentication needed.

https://tabiji.ai/api/v1/

Hosted on Cloudflare Pages with generous rate limits and global CDN. CORS headers are permissive by default — call from any origin.

Destinations

6,498 travel destinations with budget level, best season, vibes, and travel styles.

GET /api/v1/destinations.json

List all 6,498 destinations with summary data.

Try it
https://tabiji.ai/api/v1/destinations.json
Response (truncated)
{
  "count": 6498,
  "destinations": [
    {
      "slug": "bogota",
      "name": "Bogotá",
      "region": "Colombia",
      "continent": "South America",
      "budget": "$",
      "season": "Dec–Mar",
      "vibes": ["Adventure", "City", "Unfrequented"],
      "photo": "https://img.tabiji.ai/find/img/bogota.webp",
      "pitch": "Graffiti tours, craft coffee, Andean sunsets..."
    },
    ...
  ]
}
GET /api/v1/destinations/{slug}.json

Get full details for a single destination. Slug is the city name, lowercased with spaces→hyphens.

Try it
https://tabiji.ai/api/v1/destinations/tokyo.json
{
  "slug": "tokyo",
  "name": "Tokyo",
  "region": "Japan",
  "continent": "Asia",
  "budget": "$$$",
  "season": "Mar–May, Oct–Nov",
  "vibes": ["City", "Cultural", "Family", "Nightlife"],
  "travelStyles": ["solo", "photography"],
  "pitch": "Controlled chaos that somehow works perfectly..."
}

Itineraries

399 day-by-day travel itineraries with activities, restaurants, transport tips, and accommodation suggestions.

GET /api/v1/itineraries.json

List all itineraries with summary metadata.

Try it
https://tabiji.ai/api/v1/itineraries.json
{
  "count": 399,
  "itineraries": [
    {
      "slug": "bach-wave",
      "title": "9 Nights in Nosara: The Ultimate Bachelorette Trip",
      "destination": "Nosara",
      "duration": "9 days",
      "tripType": ["Bachelorette Party", "Surf Tourism"],
      "url": "https://tabiji.ai/i/bach-wave/",
      "dayCount": 10
    },
    ...
  ]
}
GET /api/v1/itineraries/{slug}.json

Full itinerary with day-by-day activities, tips, and details.

Try it
https://tabiji.ai/api/v1/itineraries/bach-wave.json
{
  "slug": "bach-wave",
  "title": "9 Nights in Nosara: The Ultimate Bachelorette Trip",
  "destination": "Nosara",
  "duration": "9 days",
  "days": [
    {
      "dayLabel": "Day 1",
      "title": "Arrive & Welcome Dinner on the Cliffs",
      "activities": [
        {
          "time": "🌅 Evening",
          "name": "Sunset Welcome Dinner",
          "description": "Settle into the villa, pop the first champagne, and kick off the celebration.",
          "tips": ["Reserve cliffside table at sunset"]
        },
        ...
      ]
    },
    ...
  ]
}

Comparisons

1,218 head-to-head destination comparisons with category breakdowns, Reddit quotes, and verdicts.

GET /api/v1/compare.json

List all destination comparisons.

Try it
https://tabiji.ai/api/v1/compare.json
{
  "count": 867,
  "comparisons": [
    {
      "slug": "tokyo-vs-kyoto",
      "title": "Tokyo vs Kyoto: Which Should You Visit?",
      "destination1": "Tokyo",
      "destination2": "Kyoto",
      "categoryCount": 10,
      "url": "https://tabiji.ai/compare/tokyo-vs-kyoto/"
    },
    ...
  ]
}
GET /compare/{slug}/

Full comparison — structured categories, Reddit quotes, verdict, and FAQs — served as the canonical HTML page. Per-slug JSON endpoints were retired on 2026-04-20; the summary at /api/v1/compare.json links to each HTML page via its url field.

Try it
https://tabiji.ai/compare/tokyo-vs-kyoto/
GET /api/v1/search.json?q={query}

Cross-collection search across destinations, itineraries, comparisons, countries, safety profiles, alerts, and scam guides. Optional type filter and limit.

Try it
https://tabiji.ai/api/v1/search.json?q=tokyo
{
  "query": "tokyo",
  "type": null,
  "count": 27,
  "items": [
    {
      "type": "destination",
      "slug": "tokyo",
      "title": "Tokyo",
      "url": "https://tabiji.ai/api/v1/destinations/tokyo.json"
    },
    {
      "type": "comparison",
      "slug": "tokyo-vs-kyoto",
      "title": "Tokyo vs Kyoto: Which Should You Visit?",
      "url": "https://tabiji.ai/compare/tokyo-vs-kyoto/"
    }
  ]
}

Country Facts

Static facts for every country — capitals, population, area, currencies, languages, timezones, dial codes, driving side, and more. Sourced from restcountries.com.

GET /api/v1/countries.json

All 250 countries with facts — capital, population, area, region, borders, currencies, languages, flag, driving side, dial code, and more.

Try it
https://tabiji.ai/api/v1/countries.json
{
  "count": 250,
  "countries": [
    {
      "name": "Japan",
      "iso2": "JP",
      "iso3": "JPN",
      "capital": ["Tokyo"],
      "population": 123210000,
      "region": "Asia",
      "flag": "🇯🇵",
      "currencies": { "JPY": { "name": "Japanese yen", "symbol": "¥" } },
      "drivingSide": "left",
      "dialCode": "+81"
    }
  ]
}
GET /api/v1/countries/{iso2}.json

Full facts for a single country. Use lowercase ISO 3166-1 alpha-2 codes (e.g. jp, fr, us, sg).

Try it
https://tabiji.ai/api/v1/countries/jp.json
{
  "id": "country:jp",
  "name": "Japan",
  "officialName": "Japan",
  "iso2": "JP",
  "iso3": "JPN",
  "capital": ["Tokyo"],
  "population": 123210000,
  "area": 377930,
  "region": "Asia",
  "subregion": "Eastern Asia",
  "borders": [],
  "landlocked": false,
  "demonyms": { "male": "Japanese", "female": "Japanese" },
  "startOfWeek": "monday",
  "maps": { "googleMaps": "https://goo.gl/maps/...", "openStreetMaps": "..." },
  "currencies": { "JPY": { "name": "Japanese yen", "symbol": "¥" } },
  "languages": { "jpn": "Japanese" },
  "timezones": ["UTC+09:00"],
  "flag": "🇯🇵",
  "flagSvg": "https://flagcdn.com/jp.svg",
  "flagPng": "https://flagcdn.com/w320/jp.png",
  "drivingSide": "left",
  "dialCode": "+81",
  "tld": [".jp"]
}

Agent Endpoints

New in v1.1: a unified catalog plus runtime search, filter, and recommend endpoints built for agents. The compatibility `/search.json` endpoint is also available for lighter cross-collection lookup.

GET /api/v1/catalog.json

Unified catalog metadata for destinations, itineraries, comparisons, countries, safety profiles, alerts, and scam guides.

Try it
https://tabiji.ai/api/v1/catalog.json
{
  "version": "1.5.0",
  "schemaVersion": "1.0",
  "itemCount": 8817,
  "chunkUrls": ["/api/v1/catalog/1.json"],
  "shards": {
    "destinations": "/api/v1/catalog/destinations.json",
    "itineraries": "/api/v1/catalog/itineraries.json",
    "comparisons": "/api/v1/catalog/comparisons.json",
    "countries": "/api/v1/catalog/countries.json",
    "safety": "/api/v1/catalog/safety.json",
    "alerts": "/api/v1/catalog/alerts.json",
    "scams": "/api/v1/catalog/scams.json"
  }
}
GET/POST /api/v1/search

Natural-language retrieval over the unified catalog with optional structured filters.

curl -X POST https://tabiji.ai/api/v1/search \
  -H 'Content-Type: application/json' \
  -d '{
    "query": "warm beach destination with easy transit",
    "entity_types": ["destination"],
    "tags": ["beach", "easy_transit"],
    "limit": 5
  }'
GET/POST /api/v1/filter

Deterministic hard constraints for entity type, budget band, region, tags, and travel style.

curl -X POST https://tabiji.ai/api/v1/filter \
  -H 'Content-Type: application/json' \
  -d '{
    "entity_types": ["destination"],
    "budget": ["$", "$$"],
    "region": "Asia",
    "travel_styles": ["solo", "food"],
    "limit": 10
  }'
GET/POST /api/v1/recommend

Intent-based ranking with short explanations and tradeoffs.

curl -X POST https://tabiji.ai/api/v1/recommend \
  -H 'Content-Type: application/json' \
  -d '{
    "intent": "choose_a_winter_trip",
    "entity_types": ["destination"],
    "party": { "traveler_type": "couple" },
    "preferences": {
      "season": ["winter"],
      "vibes": ["food", "culture"]
    },
    "limit": 5
  }'

📸 Photos Included

Destination records include photos — hosted on our CDN, free to use. No Unsplash API, no attribution headaches.

Destination Photos (6,498 destinations)

Kyoto, Japan Kyoto
Santorini, Greece Santorini
Cappadocia, Turkey Cappadocia
Amalfi Coast, Italy Amalfi Coast
Cape Town, South Africa Cape Town
Dubai, UAE Dubai
Hoi An, Vietnam Hoi An
Lake Como, Italy Lake Como

Each destination JSON includes a photo field with a direct CDN URL. Use it in your app — no hotlinking restrictions.

About the Data

What makes tabiji data different from generic travel APIs.

🗣️ Reddit-Sourced, AI-Curated

tabiji data is structured for travel planning agents: destinations, day-by-day itineraries, comparisons, country facts, alerts, scam guides, and safety profiles are normalized into stable JSON endpoints.

  • Day-by-day itineraries: Not just lists of places — time-blocked daily plans with transport tips and real logistics

Rate Limits & CORS

Everything you need to know about using the API.

Feature Details
Authentication None required — completely free and open
Rate Limits Cloudflare Pages free tier — generous and CDN-cached globally. No hard limit for reasonable use.
CORS Permissive by default — call from any origin
Format JSON (pretty-printed, UTF-8)
Caching CDN-cached globally via Cloudflare. Data updates periodically.
License Free for non-commercial use. Attribution appreciated.

Machine-Readable Specs

For AI agents and developer tools.

File URL Description
OpenAPI 3.1 /api/openapi.json Full API specification for code generators and agent frameworks
llms.txt /llms.txt LLM-friendly API discovery (llmstxt.org)
agents.json /.well-known/agents.json AI agent workflow definitions