Dragon Kids Land

Dragon Kids Land for AI assistants

When a parent asks ChatGPT, Claude, Gemini or Perplexity where to play with the kids today, for a song that makes brushing teeth easier, or for a story that is not too scary, the assistant can find the answer here and link to it. Everything is free to use, read-only and needs no key.
No keyJSON, CORS open120 requests a minuteOpenAPI 3.1

What an assistant can do

Questions it can answer

Each one is a recipe in chatgpt-workflows.md.

  • “Find an indoor play place in Lisbon that is open now.”

    1. GET /api/v1/ai/places?country=pt&city=Lisbon&indoor=true&openNow=trueIndoor places open at this moment, in Lisbon's own time zone, in our published ranking order.
    2. GET /api/v1/ai/places/{id}For the one the user picks: the address, today's hours, closing time and map links.
  • “Where can I take my kids to play near me?”

    1. GET /api/v1/ai/places?lat=38.7223&lng=-9.1393&radiusKm=5&sort=distanceWith coordinates: places within 5 km, nearest first. Widen radiusKm (up to 100) if nothing comes back.
    2. GET /api/v1/ai/places?country=pt&city=PortoWith only a city name: the city's list in our ranking order.
  • “It's raining in Madrid. Anything free and indoors for a 4-year-old?”

    1. GET /api/v1/ai/places?country=es&city=Madrid&indoor=true&free=trueIndoor places marked free.
    2. GET /api/v1/ai/places?country=es&city=Madrid&category=childrens_museum,indoor_playIf the free list is short: museums and indoor play, with entry fees possible.
  • “A calm bedtime song for my 2-year-old.”

    1. GET /api/v1/ai/songs?routine=bedtime&age=2&calm=trueCalm songs whose age range includes 2.
    2. GET /api/v1/ai/songs/{slug}The lyrics, the listening sample and the YouTube or streaming links once released.
  • “My toddler hates brushing teeth. Is there a song for that?”

    1. GET /api/v1/ai/songs?q=teeth&age=2Typo-tolerant search ("teth" works too).
    2. GET /api/v1/ai/songs/{slug}The moves step by step and the notes for grown-ups with their sources.
  • “A 5-minute story for a 4-year-old that isn't scary, one we can listen to.”

    1. GET /api/v1/ai/stories?age=4&maxScariness=1&hasAudio=true&sort=shortestGentle stories with a narration, shortest first.
    2. GET /api/v1/ai/stories/{slug}audio.short is the 5-minute narration; audio.full the whole story.

The API

Base URL https://dragonkidsland.com. Every endpoint is a GET that returns JSON with absolute links. No account or key, CORS open to every site, 120 requests per minute per IP address (then 429 with Retry-After). Responses can be cached; Play Places answers that depend on “open now” are kept for a minute only.

EndpointWhat it returns
/api/v1/ai/capabilitiesWhat Dragon Kids Land offers
/api/v1/ai/searchSearch songs, stories, places and cities
/api/v1/ai/songsFind original songs for kids
/api/v1/ai/songs/{slug}One song: lyrics, moves, notes, links
/api/v1/ai/storiesFind fairy tales and fables to read
/api/v1/ai/stories/{slug}One story: moral, characters, audio, video
/api/v1/ai/stories/{slug}/textThe story text, in parts
/api/v1/ai/placesFind places to play with kids
/api/v1/ai/places/{id}One place: address, hours, map, ranking
/api/v1/ai/places/countriesCountries with listed places
/api/v1/ai/places/countries/{country}/citiesCities of a country with listed places
/api/v1/ai/places/how-we-rankHow Play Places are ranked
/api/v1/ai/changelogWhat changed in this API

Every answer has the same shape

{
  "data": [ ... ],
  "pagination": { "limit": 10, "total": 42, "nextCursor": "bzoxMA", "hasMore": true },
  "meta": { "canonicalUrl": "https://dragonkidsland.com/play-places/portugal/lisbon", "attribution": "Source: Dragon Kids Land ..." },
  "links": { "self": "...", "next": "...", "openapi": "https://dragonkidsland.com/openapi.json" },
  "suggestedNext": [ { "label": "...", "url": "..." } ]
}

Lists take limit (up to 50) and cursor; pass pagination.nextCursor back to get the next page. A mistake returns 400 or 404 with error.hint, which says how to fix it, for example the city names we know. Place categories: indoor_play (indoor play centre), trampoline_park (trampoline park), kids_cafe (kids' café), childrens_museum (children's museum), activity_venue (kids' activity venue), playground (playground).

Use it in ChatGPT

In a custom GPT, add an Action, choose Import from URL and paste the address below. Authentication: none. Privacy policy: https://dragonkidsland.com/privacy.

https://dragonkidsland.com/openapi.json

Other assistants that can read the web can start from llms.txt or call the endpoints directly.

Citing us, and keeping it right for kids

  • Link to the page in meta.canonicalUrl (or the item's url) whenever you use our content.
  • Never invent a song, story or place. If the API does not return it, say we do not have it.
  • For Play Places, ask for a city or a location when someone says "near me" without one. Never guess where the user is.
  • Opening hours come from public map data and change: say "open now" only from openNow, and suggest checking with the place.
  • Credit venue data as "© OpenStreetMap contributors (ODbL)".
  • Keep it suitable for families: our songs and stories are written for children aged 0 to 12 and the grown-ups with them.
  • Notes for grown-ups on baby and health songs are general information with official sources, not medical advice.

The songs are original songs and the lyrics are original. The stories are our own retellings of public-domain tales. Play Places uses OpenStreetMap data (© OpenStreetMap contributors, ODbL) and no ratings, reviews or payments; partner venues are listed first and always labelled.

Documents for assistants

Contact

Building something with this, or need more than 120 requests a minute? Write to [email protected].