Skip to content

Productions

A production holds all metadata for a show: title, description, credits, duration, and links to venues, companies, and mediafiles.

Search productions

http
POST /entities/filter
Content-Type: application/json

The request body is a JSON array of filter objects. Filters are combined with AND.

All productions

json
[
  { "type": "type", "value": "production" }
]

Text search on title

Supports * as a wildcard.

json
[
  { "type": "type", "value": "production" },
  { "type": "text", "key": ["podiumnet:1|properties.title.value"], "value": "Hamlet*" }
]

Filter by venue

json
[
  { "type": "type", "value": "production" },
  { "type": "selection", "key": ["podiumnet:1|properties.ref_venues.value"], "value": "{venue_id}", "match_exact": true }
]

Combine title + venue

json
[
  { "type": "type", "value": "production" },
  { "type": "text", "key": ["podiumnet:1|properties.title.value"], "value": "Hamlet*" },
  { "type": "selection", "key": ["podiumnet:1|properties.ref_venues.value"], "value": "{venue_id}", "match_exact": true }
]

Pagination

POST __API_BASE_URL__/entities/filter?skip=0&limit=20

Response format

json
{
  "count": 42,
  "results": [
    { "id": "PR-ABC123", "type": "production", "metadata": [...], "relations": [...] }
  ],
  "skip": 0,
  "limit": 20
}

The next field only appears when more pages exist.


Get a single production

http
GET /entities/{id}

{id} can be the human-readable ID (e.g. PR-ABC123) or the UUID.


Response structure

json
{
  "id": "PR-ABC123",
  "_id": "43e99478-04db-42df-8d0e-11be73252344",
  "type": "production",
  "metadata": [
    { "key": "title", "value": "Hamlet" },
    { "key": "subtitle", "value": "A classic retold" },
    { "key": "description", "value": "<p>Full description...</p>" },
    { "key": "description_short", "value": "<p>Short description...</p>" },
    { "key": "credits", "value": "<p><strong>direction</strong> Jan Janssen</p>" },
    { "key": "status", "value": "published" },
    { "key": "duration", "value": 90 },
    { "key": "premiere_date", "value": "2026-09-01" },
    { "key": "age_category", "value": "12+" },
    { "key": "posters_status", "value": "complete" },
    { "key": "scene_images_status", "value": "partially" },
    { "key": "trailer_status", "value": "status_to_be_determined" }
  ],
  "relations": [
    { "key": "VE-XYZ789", "type": "refVenues" },
    { "key": "CO-DEF456", "type": "refCompanies" },
    { "key": "BA-GHI012", "type": "refBookingAgency" }
  ],
  "identifiers": ["43e99478-04db-42df-8d0e-11be73252344", "PR-ABC123"],
  "audit": {
    "created": { "at": "2026-05-20T16:35:24Z", "by": "user@example.com" },
    "updated": { "at": "2026-05-21T09:40:32Z", "by": "user@example.com" }
  }
}

Metadata fields

keyTypeDescription
titlestringTitle
subtitlestringSubtitle
descriptionstring (HTML)Full description
description_shortstring (HTML)Short description (max. 500 chars)
creditsstring (HTML)Credits
statusenumconcept / published / archived
durationnumberDuration in minutes
premiere_dateISO datePremiere date
age_categoryenumAge category (e.g. 12+)
language_iconstringPath to language icon

HTML fields

The fields description, description_short, and credits contain HTML. Strip the tags or render them directly.


Media availability status fields

Each media category has a status field in metadata.

keyCategory
posters_statusPoster (Affiche)
scene_images_statusScene images (Scenebeelden)
trailer_statusTrailer
review_statusReviews (Recensies)
rider_statusTechnical info (Technische info)
framing_statusFraming (Omkadering)
music_fragments_statusMusic fragments (Muziekfragmenten)
social_media_statusSocial media posts

Possible values:

ValueMeaning
status_to_be_determinedNot yet determined
not_applicableNot applicable
follows_laterWill follow later
partiallyPartially available
completeFully available

Relation fields

typeDescription
refVenuesLinked venue(s)
refCompaniesLinked company/companies
refBookingAgencyBooking agency
refGenresGenre(s)
refSeasonsSeason(s)

The key in a relation object is the ID of the related entity (e.g. VE-XYZ789). Use GET /entities/{key} to retrieve its full details.

Powered by Elody - Open Source Semantic Data Platform