English
English
Appearance
English
English
Appearance
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.
GET {PODIUMNET_URL}/PR-6V8VLIHP0
Accept: text/turtle
Authorization: Bearer {access_token}@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.
Accept | You get |
|---|---|
text/html or none | The Podiumnet web page |
application/json | The record as JSON, identical to the API response |
text/turtle | RDF in Turtle |
application/ld+json | RDF in JSON-LD |
application/rdf+xml | RDF/XML |
application/n-triples | N-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.
GET {PODIUMNET_URL}/ORG-JQGB344X
Accept: text/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.
a :production, a :organization.:title, :status, :premiere_date.Property names currently live under the https://elody.eu/ namespace and follow the field names used in the API.
Use the same token as the rest of the API — see Authentication. Pass it as a Bearer token:
Authorization: Bearer {access_token}Requests without a token are rejected. There is no public, unauthenticated access to the data formats.
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.