The API behind the site
A small public JSON API — no keys, no registration, no drama. Everything is anonymous and cached; the machine-readable versions of this page live at /docs/openapi.json and /.well-known/api-catalog.
GET /api/wait-times?park=<slug> Live ride waits for one of the 17 parks — minutes, open state, trend vs ~30 minutes ago, and a naive half-hour forecast. Proxied from queue-times.com with a 5-minute cache; attribute queue-times.com when displaying.
GET /api/publish-status Health check for the daily blog-publish cron: last run, hook state.
GET /api/linkedin-status Health check for the LinkedIn auto-share: token freshness, last share.
GET /api/instagram The cached Instagram feed that feeds the photo wall. May be empty if unconfigured.
GET /api/location Travel-mode live pin — Andrew's last shared location, or a stale marker.
POST /api/contact Contact form: JSON {name, email, message}. Please only send genuine messages.
TRY IT
curl -s "https://www.andrewmayes.com/api/wait-times?park=magic-kingdom" FOR AGENTS
- ◦ /.well-known/api-catalog — RFC 9727 linkset of every endpoint
- ◦ /.well-known/agent-skills/index.json — skills index (start with park-wait-times)
- ◦ /auth.md — the auth story (spoiler: there isn't one)
- ◦ /llms.txt — the site, summarized for models
- ◦ WebMCP — pages expose
list_parksandget_park_wait_timestools in browsers that supportnavigator.modelContext