Grofomo API
Browse the docs

Examples use a fictional festival, summer-fest. Sign in at events.grofomo.com and they switch to your own events.

Content version

GET/v1/events/{slug}/version

A single timestamp that moves whenever the event or its lineup is edited.

Poll this instead of re-fetching the lineup. It is small and cached for 15 seconds, so you can check often and only pull the heavy feeds when the version actually changes.

No key is required today — send one anywayThe Grofomo mobile app still calls this endpoint without a credential, so it cannot be locked down yet. It will be. A key sent now is accepted and ignored, so an integration built this way keeps working on the day enforcement lands; one built without a key will start returning 401 unauthorized.
Send ?surface=webOmit it and the request is treated as coming from the mobile app, which is gated on a different visibility setting — so a perfectly live event can return 404 not_found for no visible reason.

Request

curl -sS \
  -H 'X-Grofomo-Key: pk_live_YOUR_PUBLISHABLE_KEY' \
  'https://api.grofomo.com/v1/events/summer-fest/version?surface=web'

Path parameters

slugstringrequired
The event's URL slug. Globally unique. It can change if the organiser renames the event, but an old slug keeps reaching the same event, so a stored one never breaks. Example: `summer-fest`.

Query parameters

surface'web'required
Must be `web` for a website. Omit it and you get the mobile-app surface, which is gated on a different visibility setting — so a perfectly live event can return 404. Example: `web`.

Response

200 OK
{
  "apiVersion": 1,
  "data": {
    "eventId": "6f1c8e2a-4b3d-4c9e-9f21-8a7d5e0b1c34",
    "eventSlug": "summer-fest",
    "scheduleVersion": "2026-06-01T09:15:00.000Z",
    "updatedAt": "2026-06-01T09:15:00.000Z"
  }
}
eventIduuid
eventSlugstring
scheduleVersionstring
Opaque token that changes whenever the event or its lineup is edited. Compare it with the last one you saw; only pull the heavy feeds when it differs.
updatedAtstring
When that last edit happened.
Generated from EventVersionResponse

Errors

not_foundHTTP 404
No event with that slug is published on this surface. Check the slug, and check you sent `?surface=web`.