Skip to content

Event Discovery API ​

The Event Discovery API lists the events that exist for your tenant, with just the fields needed to identify one. Use it to find an event's id, then hand that id to the Content Manifest API to pull the event's content timeline.

Typical uses:

  • Integration bootstrapping — let a streaming platform or MAM system discover which events exist without hard-coding ids.
  • Event pickers — populate a drop-down of recent events in a third-party tool.
  • Sync jobs — page through events filtered by status (e.g. only replay) to mirror a catalogue.

Endpoint ​

GET /:tenant/events
ParameterInDescription
tenantpathRequired. Your tenant id.
statusqueryOptional. Filter by event status: active, live, recording, replay, archived.
pagequeryOptional. 1-based page number. Default 1.
pageSizequeryOptional. Items per page. Default 25, maximum 100.

Events are returned newest first (by date). Events without a date are not included in the list.

Authentication ​

Two schemes are accepted; the tenant API key is the intended one for integrations.

Tenant API key (recommended) — generate it in Settings → General → API Key. The key is shown once at generation; store it in your integration's secret store. Send it in a header — either works:

X-Api-Key: <api-key>
Authorization: Bearer <api-key>

The key is scoped to your tenant: it can only read events under the tenant it belongs to. API keys are never accepted in the URL or query string.

Firebase ID token (for interactive testing) — a signed-in tenant administrator's token also works:

Authorization: Bearer <firebase-id-token>

Requests are rate limited per tenant (60 requests/minute); exceeding the limit returns 429.

Example ​

bash
curl -H "X-Api-Key: $API_KEY" \
  "https://<host>/my-church/events?status=replay&page=1&pageSize=25"

Response ​

json
{
  "data": [
    {
      "id": "sunday-service-2026-06-24",
      "name": "Sunday Service",
      "date": "2026-06-24",
      "status": "replay",
      "productionUnit": "main-stage"
    }
  ],
  "page": 1,
  "pageSize": 25,
  "total": 42,
  "totalPages": 2
}

Envelope fields ​

FieldTypeDescription
dataarrayThe events on this page (see item fields).
pagenumberThe 1-based page number returned.
pageSizenumberThe page size applied (after clamping to the 1..100 range).
totalnumberTotal number of matching events across all pages.
totalPagesnumberNumber of pages at the current pageSize.

Item fields ​

FieldTypeDescription
idstringThe event id — pass this to the Content Manifest API.
namestringThe event's display name.
datestring | nullThe event date (YYYY-MM-DD).
statusstringOne of active, live, recording, replay, archived.
productionUnitstring | nullThe id of the event's production unit.

Errors ​

StatusMeaning
400An unknown value was passed to status, or the tenant is missing/invalid.
401Missing/invalid API key or token, or not a tenant administrator.
429Rate limit exceeded (60 requests/minute per tenant).
500The event list could not be built.

All rights reserved.