GünterGrass Medienarchiv API

GünterGrass Public ArPI

Overview

ArPI is a read-only GET API. It does not accept POST, PUT, DELETE, or other request methods.

All requests must be addressed to the /arpi endpoint and must contain at least the get=<module_name> parameter. Example: /arpi?get=tectonic

Global Response Structure

All responses are returned in JSON format and contain either a data or an error object. Responses may also include a meta object containing additional request information (e.g., warnings).

Field Type Description
data Object/Array The response payload. Structure depends on the endpoint called.
error Object/String Present only on errors. Contains code and message (or a direct string).
meta Object Present if there are additional warnings or metadata about the request.

Error Example:

{
  "error": {
    "code": 400,
    "message": "unbekannter Schlüsselworttyp"
  }
}

Modules

1. Tectonic

/arpi?get=tectonic

Returns a hierarchical structure representing content paths as an array of nodes/segments.

Query Parameters

Parameter Type Required Description
get String Yes Must be set to tectonic.

Response Schema (data array)

Field Type Description
name String Segment name used in the path (e.g., 1).
title String Human-readable title (e.g., Altbestand).
pos Integer Level on which the segment is located relative to the root (0 means root).
full String Dot-separated full segment path from the source root (e.g., 4.7.1).
tail String Dot-separated full path of all ancestors, excluding this segment’s name (e.g., 4.7).

Example Request: /arpi?get=tectonic ( open link )

Example Response

{
  "data": [
    {
      "name": "1",
      "title": "Altbestand",
      "pos": 1,
      "full": "1",
      "tail": ""
    },
    {
      "name": "1",
      "title": "AltDB Grass",
      "pos": 2,
      "full": "1.1",
      "tail": "1"
    }
  ]
}

2. Dataset

/arpi?get=dataset

Returns all readable field values for a specific dataset.

Query Parameters

Parameter Type Required Description
get String Yes Must be set to dataset.
sig String Yes The full signature of the dataset.

Response Schema (data array)

Field Type Description
sig_full String The full signature identifier of the dataset.
(dynamic) Any Additional fields and their values depend entirely on the specific dataset.

Note: data is an array containing a single element.

Example Request: /arpi?get=dataset&sig=01.01.00.00.-0002 ( open link )

Example Response

{
  "data": [
    {
      "sig_full": "01.01.00.00.-0002",
      "titel": "Erste Reise in die USA - Interview mit Günter Grass...",
      "untertitel": null,
      "sw_sach": "Literaturpreis; Theater; Corolian; Bremer Literaturpreis; die \"Bremen\" (Schiff)",
      "sw_geo": "Bremen; USA; Bremerhaven; New York; Boston; Yale; New Haven"
    }
  ],
  "error": null,
  "meta": null
}

3. Dataset List (dlist)

/arpi?get=dlist

Returns a generic list of datasets based on either a tectonic path or a field query. Note: The search API is designed to be used in conjunction with a frontend and currently does not expose a fixed schema.

Query Parameters

Parameter Type Required Description
get String Yes Must be set to dlist.
query String No URL-encoded query string (e.g., field1=val1). Supports >= and <= operators for date/numeric ranges. Multiple conditions can be joined with &&.
tectonic String No Tectonic path separated by dots (e.g., 1.1). Returns datasets whose signatures start with this path.

Note: Either query or tectonic must be provided.

Response Schema (data array)

Field Type Description
sig_full String The full signature identifier of the dataset.
(dynamic) Any Additional fields and their values depend on the query and specific dataset.

Query Examples & Behavior

  1. Simple text search: /arpi?get=dlist&query=titel%3Dnew%20york ( open link ) (Decoded: query=titel=new york)

  2. Date range search (single bound): /arpi?get=dlist&query=timeframe%3D%3E%3D1930-01-01 ( open link ) (Decoded: query=timeframe=>=1930-01-01)

  3. Date range search (double bound using &&): /arpi?get=dlist&query=timeframe%253D%25253E%25253D1930-01-01%252B%252526%252526%252B%25253C%25253D1990-01-01 ( open link ) (Decoded: query=timeframe=>=1930-01-01 && <=1990-01-01)

  4. Full-text content search: /arpi?get=dlist&query=text_content%3DNew%20york ( open link ) (Decoded: query=text_content=New york)

  5. Empty query: /arpi?get=dlist&query= ( open link ) Returns an empty array [].

  6. Invalid field query: /arpi?get=dlist&query=foo%3Dbar ( open link ) If a non-existent field is queried, the API returns a warning in meta and an error string.

    {
      "meta": {
        "query": {"foo": "bar"},
        "warnings": ["Sie dürfen das Feld 'foo' nicht abfragen"]
      },
      "data": [],
      "error": "Keine gültigen Argumente"
    }

4. Keywords

/arpi?get=keywords

Returns an array of keywords of a specific type, along with the datasets attached to them.

Query Parameters

Parameter Type Required Description
get String Yes Must be set to keywords.
type String Yes The keyword type (e.g., sw_werke).

Response Schema (data array)

Field Type Description
word String The keyword string.
dsets Array List of datasets associated with this keyword.

dsets Object Schema

Field Type Description
sig_full String The full signature identifier of the dataset.
(dynamic) Any Additional fields and their values depend on the specific dataset.

Example Request: /arpi?get=keywords&type=sw_werke ( open link )

Example Response

{
  "data": [
    {
      "word": "Kahlschlag in unseren Köpfen",
      "dsets": [
        {
          "sig_full": "03.02.03.00.-0005",
          "titel": "Kulturjournal Frankfurt",
          "untertitel": "Grass über die Wiedervereinigung"
        }
      ]
    }
  ]
}