sheff.events

For developers and agents

Sheffield Events public API

The same public facts people can see on this site, as JSON with stable ids, sources and citations. Read only, no key, no account. Cache what you fetch: responses carry ETags and a five-minute public cache, and each address has a budget of 300 requests per five minutes.

Endpoints

Every response is an envelope: data, meta (counts and paging), sources (name, licence, attribution, updated) and citation (a URL you can quote). Field selection: fields=a,b,c. Paging: page and per_page (max 100).

MCP

Agents can use the same facts through a read-only Model Context Protocol server with no authentication:

https://sheff.events/wp-json/sheff-public/mcp

It exposes these abilities as tools:

  • sheff-events/search-events Upcoming Sheffield events by keyword, date window, neighbourhood or area tag, category, and distance from a point. Returns canonical URLs and each event's source.
  • sheff-events/get-event One published event with venue, times, categories, price flags, canonical URL and source.
  • sheff-events/search-places Businesses and venues in the Sheffield Events directory by keyword or distance, with conservative location fields.
  • sheff-events/get-area Facts for one of the 147 Sheffield neighbourhoods: counts, census shares, sold prices, constituency and links.
  • sheff-events/list-areas All Sheffield neighbourhoods with counts, optionally filtered by name.
  • sheff-events/locate Which neighbourhood and constituency a latitude and longitude fall in, with the nearest stops.
  • sheff-events/nearest-services GP practices, pharmacies, dentists, libraries, family hubs, housing offices, foodbanks, community venues and schools near a point or by keyword.
  • sheff-events/nearest-stops NaPTAN stop records near a point with walk times. Not live departures.
  • sheff-events/list-map-layers Metadata for the public Local Map layers and where to fetch each.
  • sheff-events/source-health Every public data source behind Sheffield Events with licence, credit, freshness and status. Never internal error text.
  • sheff-events/list-mps The six constituencies covering Sheffield, their MPs and recent Parliamentary activity, with official record links.
  • sheff-events/list-teams Sheffield sports teams with grounds and competitions.

Nothing on this server writes, refreshes a source or reaches an upstream provider. Member and organiser actions stay on the authenticated site.

Members

A second, authenticated MCP server lets a signed-in member work with their own saves, plan, follows, notification preferences, conversations and submissions, plus everything public. Authenticate with a WordPress application password from your account settings; every call acts only as you, on your own records, is rate-limited, and is written to a log you can read back with my-activity-log.

https://sheff.events/wp-json/sheff-member/mcp
  • sheff-events/me
  • sheff-events/my-saves
  • sheff-events/save-event
  • sheff-events/unsave-event
  • sheff-events/my-plan
  • sheff-events/plan-add
  • sheff-events/plan-remove
  • sheff-events/my-follows
  • sheff-events/follow
  • sheff-events/unfollow
  • sheff-events/notification-preferences
  • sheff-events/update-notification-preferences
  • sheff-events/my-notifications
  • sheff-events/my-conversations
  • sheff-events/send-message
  • sheff-events/my-submissions
  • sheff-events/submit-event
  • sheff-events/my-activity-log
  • sheff-events/update-event
  • sheff-events/submit-business
  • sheff-events/update-business
  • sheff-events/submit-job
  • sheff-events/update-job
  • sheff-events/withdraw-listing

Organiser abilities change only listings you submitted (editors can change any). Submissions and a member's edits to a live listing enter review; withdraw-listing previews unless confirm is true and only ever moves a listing to draft.

    Errors and limits

    • Not found: 404 with code sheff_*_not_found.
    • Bad input: 400 with code sheff_bad_*.
    • Layer without data yet: 503.
    • Over budget: 429 with Retry-After.
    • Send If-None-Match with the ETag you were given to get a 304 when nothing changed.

    Licences

    Each source keeps its own licence and asks for its own credit; both are in every response and on the sources page. Quote the citation URL when you use a result. All data sources