Standards supported
archivebase exposes its resources and metadata through several standard protocols. Pick the one that matches what you want to do. This page is for deciding which to use; the details are in the API reference and /api-docs (OpenAPI).
Every example here actually works
The commands below run as-is against the public site "Rekion transcript search". No key required.
Which one do I want?
| Goal | Use |
|---|---|
| Harvest metadata in bulk | OAI-PMH |
| Sync only what changed | ResourceSync |
| Ask arbitrary questions | SPARQL |
| Show images / audio / video in a viewer | IIIF |
| Pull structured text | DTS |
| Search from an application | REST search API |
| Fetch one description | LOD (content negotiation) |
OAI-PMH 2.0
The most widely deployed metadata-harvesting protocol in this field. Point a harvester at it and you get every record.
- All six verbs (
Identify,ListMetadataFormats,ListSets,ListIdentifiers,ListRecords,GetRecord) - Metadata formats:
oai_dc(Dublin Core) andjps(Japan Search schema) setis the resource type (item/collection/tei…)- Paging uses
resumptionToken. There is no depth limit
curl -s 'https://archivebase.ldas.jp/na-kamura-1263/rekion/api/oai?verb=Identify'
curl -s 'https://archivebase.ldas.jp/na-kamura-1263/rekion/api/oai?verb=ListRecords&metadataPrefix=oai_dc'Deletions are not propagated
deletedRecord: no. Deleting a resource does not tell harvesters about it (there are no tombstones). If you harvest continuously, re-harvest in full periodically.
ResourceSync (ANSI/NISO Z39.99-2017)
An extension of the Sitemap protocol, aimed at incremental sync. Where OAI-PMH harvests metadata, this tells you which resources changed and when.
curl -s 'https://archivebase.ldas.jp/.well-known/resourcesync'
curl -s 'https://archivebase.ldas.jp/na-kamura-1263/rekion/api/resourcesync/capabilitylist.xml'
curl -s 'https://archivebase.ldas.jp/na-kamura-1263/rekion/api/resourcesync/changelist.xml?from=2026-08-01T00:00:00Z'<loc> points at the machine-readable description (/{account}/{db}/data/{id}); the human page is given as <rs:ln rel="alternate">.
SPARQL 1.1
Query the RDF. No key required.
| Endpoint | Scope |
|---|---|
/{account}/{db}/api/sparql | that site only |
/api/{account}/sparql | all public sites of that institution |
curl -s -G 'https://archivebase.ldas.jp/api/na-kamura-1263/sparql' \
--data-urlencode 'query=PREFIX schema: <https://schema.org/>
SELECT ?siteName (COUNT(DISTINCT ?s) AS ?n) WHERE {
GRAPH ?g { ?s schema:name ?name }
?g schema:name ?siteName .
} GROUP BY ?siteName' \
-H 'Accept: text/csv'Choose the result format with Accept (application/sparql-results+json, text/csv, text/turtle, application/rdf+xml).
You can tell which site a result came from
Graph names are opaque (urn:archivebase:db:{uuid}). Site name, provider and URL live in a catalog graph (urn:archivebase:catalog), so ?g schema:name ?siteName works.
A browser console is at https://archivebase.ldas.jp/{account}/{db}/sparql. Like Japan Search's SNORQL it accepts ?query= and ?describe= so a query can be shared as a URL.
IIIF
Presentation API 3.0 and Image API. WebVTT captions ride along as supplementing annotations, so transcripts stay in sync in a compatible viewer. Content Search is supported.
curl -s 'https://archivebase.ldas.jp/na-kamura-1263/rekion/api/iiif/3/1320060/manifest'DTS (Distributed Text Services)
DTS does not require TEI. What it requires is that the text can be cut into citable units, so OCR and transcripts are served the same way.
curl -s 'https://archivebase.ldas.jp/api/dts/collection'
curl -s 'https://archivebase.ldas.jp/na-kamura-1263/rekion/api/dts/navigation?resource=1320060'
curl -s 'https://archivebase.ldas.jp/na-kamura-1263/rekion/api/dts/document?resource=1320060&ref=1'Sites ingested as TEI are served out of the box. A site whose items carry OCR or a transcript turns this on with the Serve text over DTS setting (settings.dtsText).
Citable units are derived from what the item actually has. With no structural clue the whole text is one unit — no structure is invented.
| What the item carries | Unit (citeType) | ref |
|---|---|---|
Child frames (media) that carry text | page (one frame) | the frame's identifier |
Timed transcript (cueTimes) | cue (one utterance) | line number |
| OCR (page breaks in the text) | page (one page) | page number |
| None of these | text (whole text) | 1 |
The first match wins. An item with no text of its own is still served when its frames carry OCR (item → frames). Items with no text anywhere are not served.
An item with no canonical TEI still answers the full-document request: the TEI is assembled from its text.
Only public resources of public sites are served — an API key does not widen this.
REST search, LOD, sitemap, OpenAPI
curl -s 'https://archivebase.ldas.jp/na-kamura-1263/rekion/api/search?q=spring&limit=3'
curl -s -H 'Accept: text/turtle' 'https://archivebase.ldas.jp/na-kamura-1263/rekion/data/1320060'
curl -s 'https://archivebase.ldas.jp/sitemap.xml'
curl -s 'https://archivebase.ldas.jp/api/openapi.json'/data/{id} is the canonical identifier; pick a representation with Accept. /resource/{id} is the human page.
What is published
Every entry point exposes only public resources of public sites. Nothing private is in the payload to begin with — output is not varied by login state.
For the RDF store the gate is applied at ingest, in two stages:
| Condition | In the store? |
|---|---|
| Public site × public resource | yes |
| Public site × private resource | no |
| Private site × public resource | no |
SPARQL takes arbitrary queries, so it cannot be gated at read time (GRAPH ?g would reach other graphs). Hence the gate at ingest.
A site can opt out of cross-institution federation with settings.rdf.federate: false; its own endpoint keeps working.