Humboldt-Universität zu Berlin Annotations API

Annotation layers and their preparation metadata

Operations 7

GET /api/elasticapi/v1/annotations List all indexed annotation layers #
GET /api/elasticapi/v1/annotations/latest/count Count the latest published annotation layers #
GET /api/elasticapi/v1/annotations/latest/{from}/{size} Page through the latest published annotation layers #
GET /api/elasticapi/v1/annotations/latest/searchMain Search the latest published annotation layers #
GET /api/elasticapi/v1/annotations/latest/searchMain/count Count annotation layers matching the main search #
GET /api/elasticapi/v1/annotations/{id}/{index} Retrieve one annotation layer by Elasticsearch id and index #
GET /api/elasticapi/v1/annotations/{id}/{index}/documents List the documents carrying one annotation layer #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/humboldt-universitat-zu-berlin-annotations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

humboldt-universitat-zu-berlin-annotations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: LAUDATIO-Repository REST API (Humboldt-Universität zu…
  description: Public, read-only REST API of the LAUDATIO-Repository (Long-term Access and Usage of Deeply Annotated Information), the open-access research-data repository for historical linguistic corpora operated by the Department of Corpus Linguistics (Institut für deutsche Sprache und Linguistik) together with the Computer- und Medienservice (CMS) of Humboldt-Universität zu Berlin.
  version: v1
  contact:
    name: LAUDATIO-Repository, Korpuslinguistik & Computer- und Medienservice, Humboldt-Universität zu Berlin
    url: https://www.laudatio-repository.org/contact
  termsOfService: https://www.hu-berlin.de/de/hu/impressum
servers:
- url: https://www.laudatio-repository.org
  description: LAUDATIO-Repository production
tags:
- name: Annotations
  description: Annotation layers and their preparation metadata
paths:
  /api/elasticapi/v1/annotations:
    get:
      tags:
      - Annotations
      summary: List all indexed annotation layers
      operationId: listAnnotations
      parameters:
      - $ref: '#/components/parameters/ApiVersion'
      responses:
        '200':
          description: Envelope carrying annotation hits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HitListEnvelope'
  /api/elasticapi/v1/annotations/latest/count:
    get:
      tags:
      - Annotations
      summary: Count the latest published annotation layers
      operationId: countLatestAnnotations
      parameters:
      - $ref: '#/components/parameters/ApiVersion'
      responses:
        '200':
          description: Count envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CountEnvelope'
              example:
                success: true
                data: '{"count":1160,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0}}'
                message: ' Latest annotations count retrieved successfully.'
                status: 200
                count: 1160
  /api/elasticapi/v1/annotations/latest/{from}/{size}:
    get:
      tags:
      - Annotations
      summary: Page through the latest published annotation layers
      operationId: listLatestAnnotations
      parameters:
      - $ref: '#/components/parameters/ApiVersion'
      - $ref: '#/components/parameters/From'
      - $ref: '#/components/parameters/Size'
      responses:
        '200':
          description: Envelope carrying a page of annotation hits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HitListEnvelope'
  /api/elasticapi/v1/annotations/latest/searchMain:
    get:
      tags:
      - Annotations
      summary: Search the latest published annotation layers
      operationId: searchLatestAnnotations
      parameters:
      - $ref: '#/components/parameters/ApiVersion'
      responses:
        '200':
          description: Envelope carrying matching annotation hits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HitListEnvelope'
  /api/elasticapi/v1/annotations/latest/searchMain/count:
    get:
      tags:
      - Annotations
      summary: Count annotation layers matching the main search
      operationId: countSearchLatestAnnotations
      parameters:
      - $ref: '#/components/parameters/ApiVersion'
      responses:
        '200':
          description: Count envelope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CountEnvelope'
  /api/elasticapi/v1/annotations/{id}/{index}:
    get:
      tags:
      - Annotations
      summary: Retrieve one annotation layer by Elasticsearch id and index
      operationId: getAnnotation
      parameters:
      - $ref: '#/components/parameters/ApiVersion'
      - $ref: '#/components/parameters/Id'
      - $ref: '#/components/parameters/Index'
      responses:
        '200':
          description: Envelope carrying the annotation hit
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HitListEnvelope'
  /api/elasticapi/v1/annotations/{id}/{index}/documents:
    get:
      tags:
      - Annotations
      summary: List the documents carrying one annotation layer
      operationId: getAnnotationDocuments
      parameters:
      - $ref: '#/components/parameters/ApiVersion'
      - $ref: '#/components/parameters/Id'
      - $ref: '#/components/parameters/Index'
      responses:
        '200':
          description: Envelope carrying document hits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HitListEnvelope'
components:
  parameters:
    Id:
      name: id
      in: path
      required: true
      description: Elasticsearch document id of the record.
      schema:
        type: string
        example: dGhNsGoB6bp_h9Nar9dI
    From:
      name: from
      in: path
      required: true
      description: Zero-based offset of the first hit to return.
      schema:
        type: integer
        minimum: 0
        example: 0
    ApiVersion:
      name: Api-Version
      in: header
      required: true
      description: API version selector; the published reference sends `v1` on every call.
      schema:
        type: string
        enum:
        - v1
        default: v1
    Size:
      name: size
      in: path
      required: true
      description: Number of hits to return.
      schema:
        type: integer
        minimum: 1
        example: 100
    Index:
      name: index
      in: path
      required: true
      description: Elasticsearch index the record lives in.
      schema:
        type: string
        example: corpus_marchenkorpus-version-1-0_1-0_1557736034
  schemas:
    HitListEnvelope:
      allOf:
      - $ref: '#/components/schemas/Envelope'
      - type: object
        properties:
          data:
            type: array
            description: Raw Elasticsearch hits.
            items:
              $ref: '#/components/schemas/Hit'
    Envelope:
      type: object
      description: Common response envelope returned by every LAUDATIO endpoint.
      properties:
        success:
          type: boolean
        message:
          type: string
        status:
          type: integer
          example: 200
      required:
      - success
    CountEnvelope:
      allOf:
      - $ref: '#/components/schemas/Envelope'
      - type: object
        properties:
          data:
            type: string
            description: JSON-encoded Elasticsearch count response, returned as a string.
          count:
            type: integer
            description: Number of matching records.
    Hit:
      type: object
      description: An Elasticsearch hit. `_source` carries the LAUDATIO TEI-ODD derived header metadata; its field set differs between corpus, document and annotation indices and is not fixed by the API, so it is described as a free-form object rather than invented here.
      properties:
        _index:
          type: string
        _type:
          type: string
        _id:
          type: string
        _score:
          type: number
        _source:
          type: object
          additionalProperties: true
x-method: derived
x-generated: '2026-09-01'
x-source: https://www.laudatio-repository.org/docs/elasticapi
x-operator: institution
x-authored-by: API Evangelist — NOT published by Humboldt-Universitaet zu Berlin