Skip to content

Linked Open Data ​

Every production, organization and mediafile has a permanent web address. Open it in a browser and you get the Podiumnet page. Ask for it with an Accept header and you get the same record as data, at the same address.

This means you do not need a separate API endpoint to fetch a record you already have a link to — the link is the identifier.

Requesting data instead of a page ​

http
GET {PODIUMNET_URL}/PR-6V8VLIHP0
Accept: text/turtle
Authorization: Bearer {access_token}
turtle
@prefix : <https://elody.eu/> .

<{PODIUMNET_URL}/PR-6V8VLIHP0> a :production ;
    :title "Gezelschappen" ;
    :status "archived" ;
    :premiere_date "2026-07-30" ;
    :refBookingAgency <{PODIUMNET_URL}/ORG-JQGB344X> .

The id in the URL is the same id you get back from the API — PR-… for productions, ORG-… for organizations. Both the readable id and the internal uuid work.

Available formats ​

AcceptYou get
text/html or noneThe Podiumnet web page
application/jsonThe record as JSON, identical to the API response
text/turtleRDF in Turtle
application/ld+jsonRDF in JSON-LD
application/rdf+xmlRDF/XML
application/n-triplesN-Triples

If you send no Accept header, or */* — which most HTTP clients send by default — you get the web page. Set the header explicitly to get data.

Q-values work as expected, so Accept: text/turtle;q=0.9, application/json;q=0.5 returns Turtle.

Relations are not opaque ids: they are addresses you can fetch. In the example above, :refBookingAgency points at {PODIUMNET_URL}/ORG-JQGB344X. Request that URL the same way and you get the booking agency, whose own identifier is exactly that address.

http
GET {PODIUMNET_URL}/ORG-JQGB344X
Accept: text/turtle
turtle
<{PODIUMNET_URL}/ORG-JQGB344X> a :organization ;
    :id "ORG-JQGB344X" .

This lets a harvester walk the catalogue by following links, rather than querying each record type separately.

How the data is shaped ​

  • The subject of every record is its own URL.
  • The record's kind is an RDF type: a :production, a :organization.
  • Metadata are direct properties: :title, :status, :premiere_date.
  • Relations point at the related record's URL.
  • Internal bookkeeping (audit trail, schema version) is not published.

Property names currently live under the https://elody.eu/ namespace and follow the field names used in the API.

Authentication ​

Use the same token as the rest of the API — see Authentication. Pass it as a Bearer token:

http
Authorization: Bearer {access_token}

Requests without a token are rejected. There is no public, unauthenticated access to the data formats.

Retrieving many records ​

Content negotiation returns one record per request. To fetch sets of records, use the filter endpoint described under Productions — it accepts the same Accept headers and returns every match in the requested format.

Powered by Elody - Open Source Semantic Data Platform