Appearance
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| Parameter | In | Description |
|---|---|---|
tenant | path | Required. Your tenant id. |
status | query | Optional. Filter by event status: active, live, recording, replay, archived. |
page | query | Optional. 1-based page number. Default 1. |
pageSize | query | Optional. 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
| Field | Type | Description |
|---|---|---|
data | array | The events on this page (see item fields). |
page | number | The 1-based page number returned. |
pageSize | number | The page size applied (after clamping to the 1..100 range). |
total | number | Total number of matching events across all pages. |
totalPages | number | Number of pages at the current pageSize. |
Item fields
| Field | Type | Description |
|---|---|---|
id | string | The event id — pass this to the Content Manifest API. |
name | string | The event's display name. |
date | string | null | The event date (YYYY-MM-DD). |
status | string | One of active, live, recording, replay, archived. |
productionUnit | string | null | The id of the event's production unit. |
Errors
| Status | Meaning |
|---|---|
400 | An unknown value was passed to status, or the tenant is missing/invalid. |
401 | Missing/invalid API key or token, or not a tenant administrator. |
429 | Rate limit exceeded (60 requests/minute per tenant). |
500 | The event list could not be built. |