REST API

Read-only JSON over the SHAB proof-of-concept index. No authentication. Dataset may be incomplete — not an official SHAB interface.

Catalog JSON OpenAPI 3 Health

Endpoints

GET/api/health

Service status and per-schema row counts.

curl -sS 'http://127.0.0.1:5088/api/health' | jq .
GET/api/methods

Allowed method and schema values for search.

GET/api/search?q=&schema=&method=adaptive&limit=25&offset=0

Search persons and companies (default). Pass schema=Notice to include notices. Hits include address when stored. Citizenship/residence country codes are expanded to English names.

curl -sS 'http://127.0.0.1:5088/api/search?q=Eva+M%C3%BCller&schema=Person&limit=5' | jq '.hits[]|{caption,address,pob,citizenship,residence}'
GET/api/autocomplete?q=&schema=&limit=8

Fast prefix suggestions (FTS prefix).

GET/api/entities/{key}?enrich=1&raw=0

Full entity. Person/Company include linked companies / notices when enrich=1. Company officers are not inlined (the GUI loads them after paint); use /management. Notice includes related persons with parsed roles. Company address is a list of display lines. Raw *_rel key arrays are omitted unless raw=1 (counts still returned).

curl -sS 'http://127.0.0.1:5088/api/entities/CHE-108.827.854?graph=0' | jq '{caption,address,legal_seat,links}'
GET/api/entities/{key}/management?q=&status=&offset=0&limit=25

Company officers from SHAB notices (latest mention per person). A 10-year window applies only when the list is large; q searches all years. Graph stays a recent sample.

curl -sS 'http://127.0.0.1:5088/api/entities/CHE-105.940.833/management?q=Anca' | jq '.groups.active.hits[]|{caption,link_status,latest_role}'
GET/api/entities/{key}/related?schema=Person&offset=0&limit=25

ItemStorage relations for a notice (or other entity), paged. Persons are sorted A–Z.

GET/api/entities/{key}/graph?depth=1&cap=25&status=active

Person↔company relationship diagram payload (depth 1 or 2; hops still accepted). Default status=active is still-listed neighbours only; status=all includes no-longer-listed and unparsed links. has_others is true when those exist. sampled is true when notices or neighbors were capped.

Notes

CORS is enabled for browser clients. Errors return JSON {"error": "…"} with 4xx/5xx status. GUI pages remain at / and /e/{key}.