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.
List all 6,498 destinations with summary data.
{
"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 full details for a single destination. Slug is the city name, lowercased with spaces→hyphens.
{
"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.
List all itineraries with summary metadata.
{
"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
},
...
]
}
Full itinerary with day-by-day activities, tips, and details.
{
"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.
List all destination comparisons.
{
"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/"
},
...
]
}
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.
Cross-collection search across destinations, itineraries, comparisons, countries, safety profiles, alerts, and scam guides. Optional type filter and limit.
{
"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.
All 250 countries with facts — capital, population, area, region, borders, currencies, languages, flag, driving side, dial code, and more.
{
"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"
}
]
}
Full facts for a single country. Use lowercase ISO 3166-1 alpha-2 codes (e.g. jp, fr, us, sg).
{
"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.
Unified catalog metadata for destinations, itineraries, comparisons, countries, safety profiles, alerts, and scam guides.
{
"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"
}
}
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
}'
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
}'
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)
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 |