Skip to content

REST API Reference

The API runs on port 3200 by default. All endpoints return JSON.

Returns the current setup state.

Response

{
"setupComplete": true,
"workspaceId": "uuid",
"hasActiveConnectors": true
}

Creates the first workspace. Only valid when setupComplete is false.

Body

{ "workspaceName": "My Workspace" }

Response

{ "workspaceId": "uuid" }

Returns all registered connector manifests.

Response

[
{
"id": "github",
"name": "GitHub",
"type": "webhook",
"triggers": ["github.commit.pushed", "github.pr.opened"],
...
}
]

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": { ... }
}

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>"
}

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.


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.