crowddodger Data API
Read-only JSON access to our verified overtourism dataset: saturation scores, bands, and current taxes, fees, and restrictions — every fact carries the source URL it was verified against. Built for travel agents and AI travel apps.
Authentication
Every /api/v1 request needs an API key, passed in the
X-API-Key header. Requests without a valid key get 401.
curl -H "X-API-Key: YOUR_KEY" https://crowddodger.com/api/v1/destinations
Need a key? Email nolines@crowddodger.com.
Endpoints
GET /api/v1/destinations
Every live destination, summary fields only.
{
"count": 62,
"destinations": [
{
"slug": "petra",
"name": "Petra",
"country": "Jordan",
"region": "Asia",
"saturation_score": 57,
"band": "Crowded",
"last_verified": "2026-05-30"
}
]
}
GET /api/v1/destinations/{slug}
Full detail for one live destination: the four saturation sub-scores with their
sources, every fee/tax/restriction with amount and source, and the description.
Returns 404 if the slug isn't a live destination.
{
"slug": "petra",
"name": "Petra",
"country": "Jordan",
"region": "Asia",
"saturation_score": 57,
"band": "Crowded",
"description": "An ancient Nabataean city carved into rose-red sandstone ...",
"last_verified": "2026-05-30",
"sub_scores": {
"crowd_density": { "value": 70, "weight": 0.40, "source_url": "https://..." },
"visitor_impact": { "value": 55, "weight": 0.30, "source_url": "https://..." },
"local_sentiment": { "value": 48, "weight": 0.20, "source_url": "https://..." },
"trajectory": { "value": 52, "weight": 0.10, "source_url": "https://..." }
},
"fees": [
{
"name": "Single-day entry (foreigner)",
"amount": 50.0,
"currency": "JOD",
"amount_display": "50.00 JOD",
"applies_to": "Foreign visitors, one-day ticket",
"when_applies": null,
"source_url": "https://international.visitjordan.com/page/17/entry-fees",
"source_name": "international.visitjordan.com",
"last_verified": "2026-05-30"
}
]
}
Notes
- Only
status = livedestinations are served. amountis a number for clean single prices; otherwise it'snulland the human-readable value is inamount_display/when_applies.- Data is read-only. No write endpoints.