Publish an enriched TemsCore media work.
POST/api/ingest/media-works
Accepts a single enriched TemsCore media work and its articles and relays it to the Source Explorer's content store for indexing.
The request is accepted asynchronously: a 202 Accepted means the
payload passed authentication and the structural and enrichment
invariants, and has been handed to the content store. Indexing
completion is not awaited in the response.
Request
Responses
- 202
- 400
- 401
- 403
- 502
Accepted. The payload was authenticated, passed all invariants, and was handed to the content store for indexing. Indexing completion is not awaited.
A minimal acknowledgement envelope is returned so callers that expect a JSON body on success (the EBU local indexer being the primary example) can parse the response uniformly. The envelope carries no domain data — the endpoint remains write-only and the shape is intentionally stable.
Bad request. One of:
- the body is not a valid TemsCore shape (missing
mediaWork.hasProvideror a non-emptyarticles[]) - the canonical article is missing
hasEmbedding.hasVector(enrichment invariant — see Enrichment invariant above) - the OAuth2 proxy sub-mode was used but the request did not
carry an
X-Dataspace-Identityheader.
Unauthorized. The bearer is missing, empty, malformed, expired, or fails verification. Applies to every auth mode (no signature, no matching audience/issuer, scope absent for OAuth2, etc.).
Response Headers
Always Bearer on a 401.
Forbidden. The anti-spoofing invariant tripped:
mediaWork.hasProvider does not match the authenticated caller's
DID. (Not raised in the OAuth2 internal sub-mode — that mode
skips anti-spoofing entirely.)
Bad gateway. The upstream content store (PEACH) returned an error or was unreachable. The request was well-formed and authenticated; retry later.