REST API Reference
The API runs on port 3200 by default. All endpoints return JSON.
GET /setup/status
Section titled “GET /setup/status”Returns the current setup state.
Response
{ "setupComplete": true, "workspaceId": "uuid", "hasActiveConnectors": true}POST /setup
Section titled “POST /setup”Creates the first workspace. Only valid when setupComplete is false.
Body
{ "workspaceName": "My Workspace" }Response
{ "workspaceId": "uuid" }Connectors
Section titled “Connectors”GET /connectors
Section titled “GET /connectors”Returns all registered connector manifests.
Response
[ { "id": "github", "name": "GitHub", "type": "webhook", "triggers": ["github.commit.pushed", "github.pr.opened"], ... }]GET /connectors/:id
Section titled “GET /connectors/:id”Returns a single connector’s manifest plus its config and secrets JSON Schemas.
Response
{ "manifest": { ... }, "configSchema": { "$schema": "...", "type": "object", "properties": { ... } }, "secretsSchema": { "$schema": "...", "type": "object", "properties": { ... } }}GET /connectors/:id/config?workspaceId=<uuid>
Section titled “GET /connectors/:id/config?workspaceId=<uuid>”Returns the current config for a connector in a given workspace.
Response
{ "enabled": true, "hasSecrets": true, "webhookUrl": "http://localhost:3200/webhooks/github/<token>", "config": { ... }}POST /connectors/:id/configure
Section titled “POST /connectors/:id/configure”Saves or updates the connector config for a workspace.
Body
{ "workspaceId": "uuid", "enabled": true, "config": { ... }, "secrets": { ... }}Response
{ "ok": true, "webhookUrl": "http://localhost:3200/webhooks/github/<token>"}Webhooks
Section titled “Webhooks”POST /webhooks/:connectorId/:webhookToken
Section titled “POST /webhooks/:connectorId/:webhookToken”Entry point for inbound webhooks. The connector verifies the payload and normalizes it to events.
Response
{ "ok": true, "published": 3 }Returns 401 if the webhook signature is invalid.
Events
Section titled “Events”GET /events/stream?workspaceId=<uuid>
Section titled “GET /events/stream?workspaceId=<uuid>”Server-Sent Events (SSE) stream of NormalizedEvent objects for the given workspace.
Each SSE message data is a JSON-serialized NormalizedEvent:
data: {"id":"...","type":"github.commit.pushed","workspaceId":"...","occurredAt":"...","source":"github","actor":{...},"subject":{...},"payload":{...}}Connect with EventSource in the browser or any SSE client library.