# REST API nutzen

# REST API

## Endpunkt

`https://api.tec.1885.cloud`

Die interaktive OpenAPI-Referenz wird im
[Developer Portal](https://pgb-1885-data-platform-preview-672c485.zuplo.site/api)
bereitgestellt. Der MCP-Zugang bleibt davon getrennt auf
`mcp.tec.1885.cloud`.

Der öffentliche API-Einstieg liegt unter
[`https://api.tec.1885.cloud`](https://api.tec.1885.cloud) und
[`https://api.tec.1885.cloud/api-docs`](https://api.tec.1885.cloud/api-docs).

## Authentifizierung

Jeder Nutzer oder technische Client erhält einen benannten Zuplo-Consumer-Key. Er wird bei jedem Aufruf als Bearer Credential gesendet:

```http
Authorization: Bearer <consumer-key>
```

Der Key enthält serverseitig `access_mode: read_only`, eine Liste exakter
`allowed_tables` und – falls benötigt – `allowed_products`. Ein Key kann deshalb
beispielsweise Regelwerke durchsuchen, ohne Zugriff auf Personen- oder
Bewegungsdaten zu besitzen.

Die Consumer-Keys werden im Zuplo API Key Service erzeugt, rotiert und
widerrufen. Cloudflare stellt Domain und Schutzebene, vergibt aber in diesem POC
keine zweite Anwendungsberechtigung. Für programmatische Clients sind weder ein
E-Mail-Versanddienst noch eine interaktive Benutzeranmeldung erforderlich. Eine
spätere Self-Service-Oberfläche kann Einladungen und Passkey-/SSO-Anmeldung
ergänzen, ohne das REST-/MCP-Scopesystem zu verändern.

## Aufrufe

```http
GET /v1/tables
GET /v1/business-questions?persona=hr
GET /v1/business-questions?answerability=available_snapshot
GET /v1/business-questions/BQ-HR-01
GET /v1/business-questions/BQ-HR-01/answer
GET /v1/tables/ctrl_cost_centers_raw
GET /v1/tables/ctrl_cost_centers_raw/rows?limit=25
GET /v1/tables/ctrl_cost_centers_raw/rows?limit=25&cursor=12345
GET /v1/dashboards/fleet-opex
GET /v1/regelwerke?limit=25
GET /v1/regelwerke/suche?q=Abnahme&regelwerk=VOB%2FB&limit=10
```

Die Antwort liefert `next_cursor` und `has_more`. Der Cursor basiert auf dem stabilen Primärschlüssel der jeweiligen Tabelle.

Der Fachfragenkatalog liefert für jede der 50 Goldfragen den aktuellen
Antwort-, Teil- oder Blockerstatus, das zuständige Datenprodukt und – beim
Einzelaufruf – die Abnahmekriterien und Hintergrundstrategie. Er liefert
bewusst keine erfundene Fachkennzahl: `catalog_status_only: true` und
`business_answer_included: false` machen diese Grenze maschinenlesbar.
Der zusätzliche `/answer`-Aufruf liefert bei bereits angebundenen Fragen eine
minimierte Projektion des freigegebenen Snapshots. Fehlt Produkt, Scope, Quelle
oder Semantik, bleibt `business_answer_included` falsch und die Antwort enthält
stattdessen den konkreten Blocker und die Hintergrundstrategie.

Die vollständigen Request- und Response-Schemas stehen in der
[API Reference](https://pgb-1885-data-platform-preview-672c485.zuplo.site/api).
