Olympus Events API
Download OpenAPI (events.yaml) · Base URL https://api.olympus.new-odyssey.com
A normalised, dated stream of sourced facts about what changed in the data behind the Olympus APIs: a company filed a 10-K or 10-Q, a dataset published a new version. Poll it with GET /v1/events, or have Olympus push it to your HTTPS endpoint with webhooks.
Every event: - is a fact a source published, never a score or a prediction; - carries its provenance (dataset, publication, source record, source URL, source version, retrieval time); - exists only after the publication it came from passed the publication gate and was activated; - keeps the date it happened (occurred_at / effective_at) apart from the date Olympus learned of it (observed_at / published_at); - is about an organisation or a place, never a person.
Live event types: sec.filing.submitted (10-K, 10-Q, 10-K/A, 10-Q/A by CIK) and dataset.publication.activated (every dataset). Other types are listed by GET /v1/event-types as planned and never appear in the stream.
Product and units. Events are the product events. Its monthly quota counts event units: 1 per GET /v1/events or GET /v1/events/{event_id} request (whatever the page size) and 1 per event delivered to a webhook endpoint (first attempt only: retries are free; redeliveries and replays count). Webhook management, /v1/event-types, verification and test pings are free. Seeing an event type also needs its source product on the plan (sec.* needs sec; dataset.publication.activated needs the dataset's product). When the quota runs out, polling answers 429 QUOTA_EXCEEDED and deliveries are paused (not dropped) until the period resets.
Retention is per plan (free 7 days, developer 30, growth 90, business 365, enterprise 400), measured on published_at. Webhooks need the developer plan or above.
Webhooks follow Standard Webhooks: webhook-id (the event ID, so polled and pushed copies dedupe on one key), webhook-timestamp and webhook-signature (v1,<base64 HMAC-SHA256(secret, id.timestamp.body)>; space-separated signatures from both secrets for 24 hours after a rotation). Reject timestamps more than 5 minutes off. Deliveries are at least once and not strictly ordered; sort by seq if you need order. Failed deliveries are retried 1 min, 5 min, 30 min, 2 h, 6 h, 12 h and 24 h after the first attempt (8 attempts, about 2 days, plus or minus 20% jitter), then moved to the dead-letter queue (status=dead). An endpoint whose every delivery has failed for 3 days, or that answers 410 Gone, is disabled.
Authentication, errors, X-Request-Id and rate-limit headers follow platform.yaml. Console mirrors of the webhook endpoints live under /v1/organizations/{org_id}/webhooks (session cookie and CSRF header, as for API keys); members can read, owners and admins can change.
Events
List events (cursor-paginated, oldest first)
/v1/eventsEvents in seq order (the order Olympus published them), oldest first. Without cursor the list starts at the oldest event inside the plan's retention window, or at published_from when given. Save meta.stream.resume_cursor and pass it as cursor later to receive only newer events: it is returned on every page, including an empty last page, so polling works as a feed.
Only event types of products the plan includes are returned. Baseline events are excluded unless include_baseline=true. Filters combine with AND; repeated values of one filter combine with OR. Costs 1 event unit per request.
Authentication: API key (X-API-Key or Bearer)
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| cursor | query | string | Opaque cursor from |
| limit | query | integer | |
| type | query | array of string | Event type, or a prefix ending in Example: ["sec.filing.submitted"] |
| product | query | array of string | Public product ID of the event ( |
| entity_id | query | array of string | Olympus entity ID (subject or related). Matches events recorded with that entity, and events whose recorded identifiers belong to it in the registry now. Repeatable. |
| identifier | query | array of string |
Example: ["OLY-US-SEC-CIK:320193"] |
| cik | query | array of string | Shorthand for |
| occurred_from | query | string (date) | occurred_at on or after this date (inclusive). |
| occurred_to | query | string (date) | occurred_at on or before this date (inclusive). |
| published_from | query | string (date-time) | published_at at or after this instant. Ignored when cursor is given. |
| published_to | query | string (date-time) | published_at before this instant. |
| corrections | query | enum: include | exclude | only |
|
| include_baseline | query | boolean | Include events derived when a dataset was first loaded. |
Responses
| 200 | A page of events. | EventList |
| 400 | Invalid parameter (VALIDATION_ERROR, INVALID_CURSOR, WEBHOOK_TARGET_REFUSED). | Error |
| 401 | Missing or invalid API key. | Error |
| 403 | The plan does not include | Error |
| 410 | The cursor points before the plan's retention window (CURSOR_EXPIRED; details.oldest_cursor, details.retention_days). | Error |
| 429 | Rate limit or monthly quota exceeded (RATE_LIMITED / QUOTA_EXCEEDED). | Error |
curl -s "https://api.olympus.new-odyssey.com/v1/events" \
-H "X-API-Key: $OLYMPUS_API_KEY"One event
/v1/events/{event_id}An event inside the plan's retention window. Older, unknown or unentitled events answer 404 EVENT_NOT_FOUND. Costs 1 event unit.
Authentication: API key (X-API-Key or Bearer)
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| event_idrequired | path | string |
Responses
| 200 | The event. | |
| 401 | Missing or invalid API key. | Error |
| 403 | The plan does not include | Error |
| 404 | Not found (EVENT_NOT_FOUND, EVENT_TYPE_NOT_FOUND, WEBHOOK_NOT_FOUND, DELIVERY_NOT_FOUND). | Error |
| 429 | Rate limit or monthly quota exceeded (RATE_LIMITED / QUOTA_EXCEEDED). | Error |
curl -s "https://api.olympus.new-odyssey.com/v1/events/{event_id}" \
-H "X-API-Key: $OLYMPUS_API_KEY"Event types
The event catalogue, with live freshness
/v1/event-typesEvery event type, live or planned, with its schema version, the dates it populates, its coverage and known gaps, and the freshness of the dataset it is derived from. Planned types never appear in /v1/events. Free (not counted as event units).
Authentication: API key (X-API-Key or Bearer)
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| status | query | enum: live | planned |
Responses
| 200 | Event types. | |
| 401 | Missing or invalid API key. | Error |
curl -s "https://api.olympus.new-odyssey.com/v1/event-types" \
-H "X-API-Key: $OLYMPUS_API_KEY"JSON Schema of an event type's `data` payload
/v1/event-types/{type}/schemaAuthentication: API key (X-API-Key or Bearer)
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| typerequired | path | string | |
| major | query | integer | Schema major version; defaults to the current one. |
Responses
| 200 | JSON Schema (draft 2020-12) of the payload. | |
| 404 | Not found (EVENT_NOT_FOUND, EVENT_TYPE_NOT_FOUND, WEBHOOK_NOT_FOUND, DELIVERY_NOT_FOUND). | Error |
curl -s "https://api.olympus.new-odyssey.com/v1/event-types/{type}/schema" \
-H "X-API-Key: $OLYMPUS_API_KEY"Webhooks
List the organisation's webhook endpoints
/v1/webhooksAuthentication: API key (X-API-Key or Bearer)
Responses
| 200 | Endpoints (secrets are never listed). | WebhookEndpointList |
| 401 | Missing or invalid API key. | Error |
| 403 | The plan does not include | Error |
curl -s "https://api.olympus.new-odyssey.com/v1/webhooks" \
-H "X-API-Key: $OLYMPUS_API_KEY"Create a webhook endpoint
/v1/webhooksThe endpoint starts as pending_verification. Olympus POSTs a signed webhook.verification notification with a challenge; the endpoint becomes active once it answers 2xx with {"challenge": "..."} within 10 seconds (resend with POST .../verify). Only events published after the endpoint became active are pushed; use replay for earlier ones. The signing secret is returned once, here. HTTPS only; private, loopback, link-local, CGNAT and metadata addresses are refused (WEBHOOK_TARGET_REFUSED), at creation and again when connecting.
Authentication: API key (X-API-Key or Bearer)
Request body
application/json — WebhookEndpointInput
Responses
| 201 | Created. | WebhookEndpointWithSecret |
| 400 | Invalid parameter (VALIDATION_ERROR, INVALID_CURSOR, WEBHOOK_TARGET_REFUSED). | Error |
| 401 | Missing or invalid API key. | Error |
| 403 | The plan's limit on endpoints or subject filters is reached (LIMIT_REACHED, details.limit), or webhooks are not on the plan (FEATURE_NOT_ON_PLAN). | Error |
| 503 | Webhooks are not configured on this deployment (WEBHOOKS_UNAVAILABLE). | Error |
One endpoint, with delivery health
/v1/webhooks/{webhook_id}Authentication: API key (X-API-Key or Bearer)
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| webhook_idrequired | path | string |
Responses
| 200 | The endpoint. | WebhookEndpointResponse |
| 404 | Not found (EVENT_NOT_FOUND, EVENT_TYPE_NOT_FOUND, WEBHOOK_NOT_FOUND, DELIVERY_NOT_FOUND). | Error |
curl -s "https://api.olympus.new-odyssey.com/v1/webhooks/{webhook_id}" \
-H "X-API-Key: $OLYMPUS_API_KEY"Change URL, filter, description or status
/v1/webhooks/{webhook_id}Changing the URL sets the endpoint back to pending_verification and sends a new challenge. status may be set to paused or active; active re-enables a paused or disabled endpoint that was verified.
Authentication: API key (X-API-Key or Bearer)
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| webhook_idrequired | path | string |
Request body
application/json — WebhookEndpointPatch
Responses
| 200 | Updated. | WebhookEndpointResponse |
| 400 | Invalid parameter (VALIDATION_ERROR, INVALID_CURSOR, WEBHOOK_TARGET_REFUSED). | Error |
| 404 | Not found (EVENT_NOT_FOUND, EVENT_TYPE_NOT_FOUND, WEBHOOK_NOT_FOUND, DELIVERY_NOT_FOUND). | Error |
Delete an endpoint (its deliveries and log go with it)
/v1/webhooks/{webhook_id}Authentication: API key (X-API-Key or Bearer)
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| webhook_idrequired | path | string |
Responses
| 204 | Deleted. | |
| 404 | Not found (EVENT_NOT_FOUND, EVENT_TYPE_NOT_FOUND, WEBHOOK_NOT_FOUND, DELIVERY_NOT_FOUND). | Error |
Resend the verification challenge
/v1/webhooks/{webhook_id}/verifyAuthentication: API key (X-API-Key or Bearer)
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| webhook_idrequired | path | string |
Responses
| 202 | Challenge queued; poll the endpoint's status. | DeliveryResponse |
| 404 | Not found (EVENT_NOT_FOUND, EVENT_TYPE_NOT_FOUND, WEBHOOK_NOT_FOUND, DELIVERY_NOT_FOUND). | Error |
Send a signed `webhook.test` notification
/v1/webhooks/{webhook_id}/testQueued like any delivery (it shows in the delivery log). Free.
Authentication: API key (X-API-Key or Bearer)
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| webhook_idrequired | path | string |
Responses
| 202 | Queued. | DeliveryResponse |
| 404 | Not found (EVENT_NOT_FOUND, EVENT_TYPE_NOT_FOUND, WEBHOOK_NOT_FOUND, DELIVERY_NOT_FOUND). | Error |
Rotate the signing secret
/v1/webhooks/{webhook_id}/rotate-secretReturns a new secret (shown once). For 24 hours deliveries carry signatures from both secrets, space-separated in webhook-signature; then the old one stops.
Authentication: API key (X-API-Key or Bearer)
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| webhook_idrequired | path | string |
Responses
| 200 | The new secret. | SecretResponse |
| 404 | Not found (EVENT_NOT_FOUND, EVENT_TYPE_NOT_FOUND, WEBHOOK_NOT_FOUND, DELIVERY_NOT_FOUND). | Error |
Delivery log (newest first); `status=dead` is the dead-letter queue
/v1/webhooks/{webhook_id}/deliveriesAuthentication: API key (X-API-Key or Bearer)
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| webhook_idrequired | path | string | |
| cursor | query | string | Opaque cursor from |
| limit | query | integer | |
| status | query | enum: pending | failed | succeeded | dead | cancelled | |
| event_id | query | string |
Responses
| 200 | Deliveries. | DeliveryList |
| 404 | Not found (EVENT_NOT_FOUND, EVENT_TYPE_NOT_FOUND, WEBHOOK_NOT_FOUND, DELIVERY_NOT_FOUND). | Error |
curl -s "https://api.olympus.new-odyssey.com/v1/webhooks/{webhook_id}/deliveries" \
-H "X-API-Key: $OLYMPUS_API_KEY"One delivery with its attempts (status code, duration, error, response excerpt)
/v1/webhooks/{webhook_id}/deliveries/{delivery_id}Authentication: API key (X-API-Key or Bearer)
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| webhook_idrequired | path | string | |
| delivery_idrequired | path | string |
Responses
| 200 | The delivery. | DeliveryResponse |
| 404 | Not found (EVENT_NOT_FOUND, EVENT_TYPE_NOT_FOUND, WEBHOOK_NOT_FOUND, DELIVERY_NOT_FOUND). | Error |
curl -s "https://api.olympus.new-odyssey.com/v1/webhooks/{webhook_id}/deliveries/{delivery_id}" \
-H "X-API-Key: $OLYMPUS_API_KEY"Deliver one event again (e.g. from the dead-letter queue)
/v1/webhooks/{webhook_id}/deliveries/{delivery_id}/redeliverQueued as a new delivery with the same webhook-id. Counts 1 event unit when sent.
Authentication: API key (X-API-Key or Bearer)
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| webhook_idrequired | path | string | |
| delivery_idrequired | path | string |
Responses
| 202 | Queued. | DeliveryResponse |
| 404 | Not found (EVENT_NOT_FOUND, EVENT_TYPE_NOT_FOUND, WEBHOOK_NOT_FOUND, DELIVERY_NOT_FOUND). | Error |
Replay every matching event from a cursor or time
/v1/webhooks/{webhook_id}/replayQueues deliveries for every event that matches the endpoint's filter from from_cursor (exclusive) or from_published_at up to to_published_at (default: now), within the plan's retention window. Replayed deliveries carry Olympus-Replay: true and run at a lower priority than live traffic. At most one replay per endpoint runs at a time. Each replayed event counts 1 event unit when sent. Needs a plan with replay (developer and above).
Authentication: API key (X-API-Key or Bearer)
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| webhook_idrequired | path | string |
Request body
application/json — object
Responses
| 202 | Replay queued. | ReplayResponse |
| 400 | Invalid parameter (VALIDATION_ERROR, INVALID_CURSOR, WEBHOOK_TARGET_REFUSED). | Error |
| 403 | The plan does not include | Error |
| 409 | A replay is already running for the endpoint (REPLAY_IN_PROGRESS). | Error |
| 410 | The cursor points before the plan's retention window (CURSOR_EXPIRED; details.oldest_cursor, details.retention_days). | Error |
Recent replays of the endpoint (newest first)
/v1/webhooks/{webhook_id}/replaysAuthentication: API key (X-API-Key or Bearer)
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| webhook_idrequired | path | string |
Responses
| 200 | Replays. |
curl -s "https://api.olympus.new-odyssey.com/v1/webhooks/{webhook_id}/replays" \
-H "X-API-Key: $OLYMPUS_API_KEY"Console webhooks
List endpoints (any member)
/v1/organizations/{org_id}/webhooksAuthentication: Console session cookie
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| org_idrequired | path | string (uuid) |
Responses
| 200 | Endpoints. | WebhookEndpointList |
Create an endpoint (owner or admin)
/v1/organizations/{org_id}/webhooksAuthentication: Console session cookie
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| org_idrequired | path | string (uuid) | |
| X-Olympus-CSRFrequired | header | string |
Request body
application/json — WebhookEndpointInput
Responses
| 201 | Created; the secret is in the response. | WebhookEndpointWithSecret |
| 403 | The plan's limit on endpoints or subject filters is reached (LIMIT_REACHED, details.limit), or webhooks are not on the plan (FEATURE_NOT_ON_PLAN). | Error |
The organisation's events plan limits and subscribable types
/v1/organizations/{org_id}/webhooks/settingsAuthentication: Console session cookie
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| org_idrequired | path | string (uuid) |
Responses
| 200 | Limits and types. | WebhookSettingsResponse |
One endpoint
/v1/organizations/{org_id}/webhooks/{webhook_id}Authentication: Console session cookie
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| org_idrequired | path | string (uuid) | |
| webhook_idrequired | path | string |
Responses
| 200 | The endpoint. | WebhookEndpointResponse |
Change an endpoint (owner or admin)
/v1/organizations/{org_id}/webhooks/{webhook_id}Authentication: Console session cookie
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| org_idrequired | path | string (uuid) | |
| webhook_idrequired | path | string | |
| X-Olympus-CSRFrequired | header | string |
Request body
application/json — WebhookEndpointPatch
Responses
| 200 | Updated. | WebhookEndpointResponse |
Delete an endpoint (owner or admin)
/v1/organizations/{org_id}/webhooks/{webhook_id}Authentication: Console session cookie
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| org_idrequired | path | string (uuid) | |
| webhook_idrequired | path | string | |
| X-Olympus-CSRFrequired | header | string |
Responses
| 204 | Deleted. |
Reveal the current signing secret (owner or admin; audit-logged)
/v1/organizations/{org_id}/webhooks/{webhook_id}/secretConsole only. API keys cannot read a secret back; they get it once at creation and rotation.
Authentication: Console session cookie
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| org_idrequired | path | string (uuid) | |
| webhook_idrequired | path | string |
Responses
| 200 | The secret. | SecretResponse |
Rotate the signing secret (owner or admin)
/v1/organizations/{org_id}/webhooks/{webhook_id}/rotate-secretAuthentication: Console session cookie
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| org_idrequired | path | string (uuid) | |
| webhook_idrequired | path | string | |
| X-Olympus-CSRFrequired | header | string |
Responses
| 200 | The new secret. | SecretResponse |
Resend the verification challenge (owner or admin)
/v1/organizations/{org_id}/webhooks/{webhook_id}/verifyAuthentication: Console session cookie
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| org_idrequired | path | string (uuid) | |
| webhook_idrequired | path | string | |
| X-Olympus-CSRFrequired | header | string |
Responses
| 202 | Queued. | DeliveryResponse |
Send a test delivery (owner or admin)
/v1/organizations/{org_id}/webhooks/{webhook_id}/testAuthentication: Console session cookie
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| org_idrequired | path | string (uuid) | |
| webhook_idrequired | path | string | |
| X-Olympus-CSRFrequired | header | string |
Responses
| 202 | Queued. | DeliveryResponse |
Delivery log (any member)
/v1/organizations/{org_id}/webhooks/{webhook_id}/deliveriesAuthentication: Console session cookie
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| org_idrequired | path | string (uuid) | |
| webhook_idrequired | path | string | |
| cursor | query | string | Opaque cursor from |
| limit | query | integer | |
| status | query | enum: pending | failed | succeeded | dead | cancelled |
Responses
| 200 | Deliveries. | DeliveryList |
One delivery with its attempts (any member)
/v1/organizations/{org_id}/webhooks/{webhook_id}/deliveries/{delivery_id}Authentication: Console session cookie
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| org_idrequired | path | string (uuid) | |
| webhook_idrequired | path | string | |
| delivery_idrequired | path | string |
Responses
| 200 | The delivery. | DeliveryResponse |
Redeliver (owner or admin)
/v1/organizations/{org_id}/webhooks/{webhook_id}/deliveries/{delivery_id}/redeliverAuthentication: Console session cookie
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| org_idrequired | path | string (uuid) | |
| webhook_idrequired | path | string | |
| delivery_idrequired | path | string | |
| X-Olympus-CSRFrequired | header | string |
Responses
| 202 | Queued. | DeliveryResponse |
Replay (owner or admin)
/v1/organizations/{org_id}/webhooks/{webhook_id}/replayAuthentication: Console session cookie
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| org_idrequired | path | string (uuid) | |
| webhook_idrequired | path | string | |
| X-Olympus-CSRFrequired | header | string |
Request body
application/json — object
Responses
| 202 | Queued. | ReplayResponse |
Schemas
Error object
The error body shared by every Olympus service.
| Field | Type | Description |
|---|---|---|
| error * | string | Human-readable message. |
| code * | string | Stable machine-readable code. |
| product | string | Product that produced the error, when applicable. |
| details | object |
Meta object
| Field | Type | Description |
|---|---|---|
| request_id * | string |
Pagination object
| Field | Type | Description |
|---|---|---|
| limit * | integer | |
| has_more * | boolean | |
| next_cursor | string | null | Next page; null on the last page. |
EventList object
| Field | Type | Description |
|---|---|---|
| data * | Event [] | |
| meta * | object |
Event object
The event envelope (contracts/events/envelope/1.schema.json). The same object is the body of a webhook delivery.
| Field | Type | Description |
|---|---|---|
| id * | string | Deterministic ID (the same fact always gets the same ID). Also the |
| object * | enum: event | |
| type * | string | |
| schema_version * | string | Version of |
| seq * | string | Position in the global publication order (decimal string of a 64-bit integer). Strictly increasing in commit order; gaps are possible. |
| product * | string | Public product ID, or |
| occurred_at * | string | null | When it happened, as the source states it. |
| occurred_precision * | enum: date | datetime | null | |
| effective_at * | string (date) | null | |
| observed_at * | string (date-time) | When Olympus retrieved the source data. |
| published_at * | string (date-time) | When the publication carrying the event was activated (and the event became visible). |
| baseline * | boolean | Derived on the first load of a dataset; describes the state at that load rather than a change. |
| subject * | EntityRef | null | The organisation or place the fact is about. Null for dataset events. |
| related * | RelatedEntity [] | |
| data * | object | Type-specific payload; schema at |
| provenance * | EventProvenance | |
| correction * | Correction | null | |
| links * | object |
EntityRef object
| Field | Type | Description |
|---|---|---|
| entity_id * | string | null | Olympus entity ID when the registry held one of the identifiers at derivation time; null otherwise. |
| kind * | enum: organisation | place | |
| entity_type * | string | null | |
| display_name * | string | null | |
| identifiers * | EventIdentifier [] |
RelatedEntity object
| Field | Type | Description |
|---|---|---|
| entity_id * | string | null | Olympus entity ID when the registry held one of the identifiers at derivation time; null otherwise. |
| kind * | enum: organisation | place | |
| entity_type * | string | null | |
| display_name * | string | null | |
| identifiers * | EventIdentifier [] | |
| role * | string |
EventIdentifier object
| Field | Type | Description |
|---|---|---|
| scheme * | string | |
| value * | string | |
| method * | enum: published | exact | derived |
EventProvenance object
| Field | Type | Description |
|---|---|---|
| dataset_id * | string | |
| publication_id * | integer (int64) | |
| record_id | string | null | |
| record_version | string | null | |
| source_id | string | null | |
| source_url | string | null | |
| source_version | string | null | |
| source_date | string (date) | null | |
| retrieved_at | string (date-time) | null | |
| evidence_url | string | null | |
| attribution | string | null |
Correction object
| Field | Type | Description |
|---|---|---|
| kind * | enum: correction | retraction | |
| corrects_event_id * | string | |
| reason * | enum: source_revised | source_withdrawn | publication_rolled_back | derivation_fixed | |
| changed_fields | array of string |
EventType object
| Field | Type | Description |
|---|---|---|
| type * | string | |
| product * | string | |
| status * | enum: live | planned | |
| class * | enum: fact | |
| description * | string | |
| schema_version * | string | |
| schema_url | string | null | |
| dates * | object | |
| subject_kinds * | array of enum: organisation | place | none | |
| datasets * | array of object | |
| coverage * | string | |
| latency * | string | |
| events_since | string (date-time) | null | Earliest published_at of this type; there is no history before it. |
| known_gaps * | array of string | |
| entitled | boolean | Whether the caller's plan includes the type's source product. |
WebhookFilter object
Which events the endpoint receives. types is required. Subject filters (identifiers, ciks, entity_ids) make the endpoint a watchlist: only events about those organisations or places match (subject or related). Their combined size is limited per plan.
| Field | Type | Description |
|---|---|---|
| types * | array of string | |
| products | array of string | |
| identifiers | array of string | |
| ciks | array of string | Shorthand for OLY-US-SEC-CIK identifiers; stored normalised as identifiers. |
| entity_ids | array of string | |
| corrections | enum: include | exclude | only | |
| include_baseline | boolean | |
| notifications | array of enum: export.completed | export.failed | bulk.snapshot.available | Account notifications to receive as well (webhook.test and webhook.verification are always sent). |
WebhookEndpointInput object
| Field | Type | Description |
|---|---|---|
| url * | string (uri) | |
| description | string | |
| filter * | WebhookFilter |
WebhookEndpointPatch object
| Field | Type | Description |
|---|---|---|
| url | string (uri) | |
| description | string | |
| filter | WebhookFilter | |
| status | enum: active | paused |
WebhookEndpoint object
| Field | Type | Description |
|---|---|---|
| id * | string | |
| url * | string | |
| description | string | null | |
| filter * | WebhookFilter | |
| status * | enum: pending_verification | active | paused | disabled |
|
| disabled_reason | string | null | |
| verified_at | string (date-time) | null | |
| active_since | string (date-time) | null | |
| last_delivered_seq | string | null | |
| last_success_at | string (date-time) | null | |
| failing_since | string (date-time) | null | |
| pending_deliveries | integer | |
| dead_deliveries | integer | Deliveries in the dead-letter queue. |
| secret_rotated_at | string (date-time) | null | |
| previous_secret_expires_at | string (date-time) | null | |
| created_at * | string (date-time) | |
| updated_at | string (date-time) |
WebhookEndpointResponse object
| Field | Type | Description |
|---|---|---|
| data * | WebhookEndpoint | |
| meta * | Meta |
WebhookEndpointWithSecret object
| Field | Type | Description |
|---|---|---|
| data * | WebhookEndpoint + object | |
| meta * | Meta |
WebhookEndpointList object
| Field | Type | Description |
|---|---|---|
| data * | WebhookEndpoint [] | |
| meta * | Meta |
SecretResponse object
| Field | Type | Description |
|---|---|---|
| data * | object | |
| meta * | Meta |
DeliveryAttempt object
| Field | Type | Description |
|---|---|---|
| attempt * | integer | |
| attempted_at * | string (date-time) | |
| status_code | integer | null | |
| duration_ms | integer | null | |
| error | string | null | |
| response_excerpt | string | null | First 512 bytes of the response body. |
Delivery object
| Field | Type | Description |
|---|---|---|
| id * | string | |
| event_id * | string | The |
| event_type * | string | |
| status * | enum: pending | failed | succeeded | dead | cancelled |
|
| attempts * | integer | |
| max_attempts | integer | |
| next_attempt_at | string (date-time) | null | |
| last_status_code | integer | null | |
| last_error | string | null | |
| replay | boolean | |
| redelivery_of | string | null | |
| delivered_at | string (date-time) | null | |
| created_at * | string (date-time) | |
| attempt_log | DeliveryAttempt [] | Present on GET of one delivery. |
DeliveryResponse object
DeliveryList object
| Field | Type | Description |
|---|---|---|
| data * | Delivery [] | |
| meta * | object |
Replay object
| Field | Type | Description |
|---|---|---|
| id * | string | |
| status * | enum: queued | running | completed | failed | cancelled | |
| from_seq | string | |
| to_published_at | string (date-time) | |
| estimated_events * | integer | |
| queued_events * | integer | |
| error | string | null | |
| created_at * | string (date-time) | |
| completed_at | string (date-time) | null |
ReplayResponse object
WebhookSettingsResponse object
| Field | Type | Description |
|---|---|---|
| data * | object | |
| meta * | Meta |
* required field