The minimal AI event-planning API (full spec, one page)

2026-04-17

The entire API surface is intentionally tiny so any agent can hold it in working memory. Every action is a GET URL because GET-fetch is the one capability every LLM chat surface (ChatGPT, Claude, Gemini, Grok) has on every platform (web, iOS, Android, desktop).

1. Create an event

GET https://headless.events/api/events/create?title=...&starts_at=...&host_email=...

2. Read an event (public)

GET https://headless.events/api/events/{slug}
GET https://headless.rsvp/api/events/{slug}

3. Submit an RSVP

GET https://headless.rsvp/api/rsvps/create?event_slug=...&name=...&status=yes|no|maybe&guests=N&notes=...

4. List RSVPs (auth)

GET https://headless.events/api/events/{slug}/rsvps?t={edit_token}

5. Update event (auth)

GET https://headless.events/api/events/{slug}/update?t={edit_token}&location=...

6. Cancel event (auth)

GET https://headless.events/api/events/{slug}/delete?t={edit_token}

7. Recover lost token

GET https://headless.events/api/auth/magic?slug=...&host_email=...

Auth on mutating endpoints is a single query parameter: ?t={edit_token} (or Authorization: Bearer ... for clients that can set headers). That is it. See /openapi.json for the machine-readable spec or /llms.txt for the agent-friendly version.

← All posts