Skip to content

REST API

Katalon exposes all data via a versioned REST API under /v1. The complete machine-readable documentation (OpenAPI/Swagger) runs interactively in every installation at:

https://katalon.example.org/api/docs
https://katalon.example.org/api/redoc

Public requests (portal or anonymous access) only see records with status public.

Two authentication methods are available for internal or protected requests:

Authorization: Bearer <jwt-token>

or:

X-API-Key: <api-key>

API keys can be created in the Admin UI per user account with specific permissions.


The central entry point for external clients and search queries is /v1/search.

Terminal-Fenster
curl "https://katalon.example.org/v1/search?q=foto&type=object&page=1&page_size=20"

Response:

{
"total": 12,
"page": 1,
"page_size": 20,
"items": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"record_type": "object",
"title": "Street in Marrakesh",
"status": "public",
"score": 1.0
}
],
"facets": {}
}
Parameter Meaning
q Full-text search term
type object, entity, place, occurrence, procedure, collection
status draft, internal, public
page / page_size Pagination
facets Comma-separated metadata fields for aggregations
meta_<field> Filter on dynamic metadata fields (e.g. meta_material=papier)

A record is loaded via the corresponding type endpoint by UUID:

Terminal-Fenster
curl "https://katalon.example.org/v1/objects/550e8400-e29b-41d4-a716-446655440000"

Response structure:

{
"id": "550e8400-e29b-41d4-a716-446655440000",
"idno": "OBJ-0001",
"object_type": "photograph",
"collection_status": "active",
"status": "public",
"metadata_": {
"title": [{"value": "Street in Marrakesh", "lang": "de"}],
"date": [{"value": "1932"}],
"rights": [{"value": "CC BY 4.0"}]
},
"created_at": "2026-07-01T10:00:00",
"updated_at": "2026-07-01T10:00:00"
}

The structure of metadata_ flexibly follows the schema fields configured in the respective Katalon instance.


Record type List endpoint Detail endpoint
Object (object) GET /v1/objects GET /v1/objects/{id}
Entity (entity) GET /v1/entities GET /v1/entities/{id}
Place (place) GET /v1/places GET /v1/places/{id}
Occurrence (occurrence) GET /v1/occurrences GET /v1/occurrences/{id}
Procedure (procedure) GET /v1/procedures GET /v1/procedures/{id}
Collection (collection) GET /v1/collections GET /v1/collections/{id}
Storage location (storage_location) GET /v1/storage-locations GET /v1/storage-locations/{id}

Semantic linked data export & content negotiation

Section titled “Semantic linked data export & content negotiation”

Katalon supports the direct export of records in the standard ontologies CIDOC-CRM and LRMoo:

Terminal-Fenster
# JSON-LD export
curl "https://katalon.example.org/api/v1/objects/{id}/export?format=jsonld"
# Turtle (TTL) export
curl "https://katalon.example.org/api/v1/objects/{id}/export?format=turtle"

Clients can also request the semantic data model directly via the Accept HTTP header:

Terminal-Fenster
curl -H "Accept: application/ld+json" "https://katalon.example.org/v1/objects/{id}"
curl -H "Accept: text/turtle" "https://katalon.example.org/v1/objects/{id}"

See Linked Data Export (JSON-LD & RDF) for full details on RDF classes, predicates, and vocabulary convergence.