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.

News index

GET/v1/events/{slug}/news

The event's published news articles, newest first. Each entry is a summary — fetch a single article for its body.

Drafts and articles scheduled for later never appear.

Request

curl -sS \
  -H 'X-Grofomo-Key: pk_live_YOUR_PUBLISHABLE_KEY' \
  'https://api.grofomo.com/v1/events/summer-fest/news'

Path parameters

slugstringrequired
The event's URL slug. Globally unique, and fixed once the event is created. Example: `summer-fest`.

Response

200 OK
{
  "apiVersion": 1,
  "data": {
    "eventId": "6f1c8e2a-4b3d-4c9e-9f21-8a7d5e0b1c34",
    "articles": [
      {
        "slug": "second-wave-announced",
        "title": "Second wave announced",
        "excerpt": "Twelve more names join the bill, including a Sunday close on the Main Stage.",
        "heroImageUrl": "https://cdn.grofomo.com/summer-fest/news/second-wave.jpg",
        "tags": [
          "lineup"
        ],
        "author": "Riot Promotions",
        "publishedAt": "2026-05-28T09:00:00.000Z",
        "updatedAt": "2026-05-28T09:00:00.000Z"
      },
      {
        "slug": "travel-and-parking",
        "title": "Travel and parking, explained",
        "excerpt": "Shuttle times from Temple Meads, and how the pre-book car park works.",
        "heroImageUrl": null,
        "tags": [
          "travel",
          "practical"
        ],
        "author": null,
        "publishedAt": "2026-05-12T08:30:00.000Z",
        "updatedAt": "2026-05-19T14:10:00.000Z"
      }
    ],
    "lastUpdatedAt": "2026-05-28T09:00:00.000Z",
    "generatedAt": "2026-06-01T09:15:00.000Z"
  }
}
eventIduuid
articlesobject[]
Published articles, newest first. Drafts and scheduled posts never appear.
articles[].slugstring
Pass this to the single-article endpoint for the body.
articles[].titlestring
articles[].excerptstring
Short standfirst, for a listing card.
articles[].heroImageUrlstring | null
articles[].tagsstring[]
Free-text tags, e.g. "lineup". May be empty.
articles[].authorstring | null
articles[].publishedAtstring
Publication time. The index is sorted newest first on this.
articles[].updatedAtstring
lastUpdatedAtstring | null
Most recent change across these articles. Null when there are none.
generatedAtstring
When this response was built. Useful for a cache debug line.
Generated from EventNewsIndexResponse

Errors

unauthorizedHTTP 401
No key was sent and the organiser requires one — or the key is invalid, revoked, belongs to another organisation, or is scoped to a different event.
origin_not_allowedHTTP 403
Your site's domain is not on the organiser's allowed list. Browser calls only: a server sends no Origin header and is unaffected.
not_foundHTTP 404
No event with that slug is published on this surface. Check the slug, and check you sent `?surface=web`.

Notes

  • Rate limited to roughly 60 requests per minute per caller. Guidance, not a contract — see caching and rate limits.
  • Always served from the web surface, whatever `?surface=` says.