Everything in the dashboard, as JSON.
The REST API, Knotbind MCP server and CLI share one service layer. Use the API for automation, MCP for tool-using agents, and the CLI for scripts and operators.
Endpoints
| Surface | URL | Authentication |
|---|---|---|
| OpenAPI | /openapi.json | Public |
| REST | /api/v1/* | Bearer kbk_… or OAuth kbo_… |
| Knotbind MCP | /mcp | OAuth 2.1 or Bearer |
| CLI | bin/knotbind.mjs | KNOTBIND_API_KEY |
Core API flow
"hl-c"># Public: returns a kbk_ key once
curl -X POST https://www.knotbind.com/api/v1/signup \
-H 'content-type: application/json' \
-d '{"company":"Acme","name":"Ada","email":"ada@acme.example"}'
"hl-c"># Authenticated: connect and start a Baseline
curl -X POST https://www.knotbind.com/api/v1/integration \
-H "authorization: Bearer $KNOTBIND_API_KEY" \
-H 'content-type: application/json' \
-d '{"mcp_url":"https://api.example.com/mcp"}'
curl https://www.knotbind.com/api/v1/status \
-H "authorization: Bearer $KNOTBIND_API_KEY"
Scopes
| Scope | Can do | Cannot do |
|---|---|---|
| read | Status, Runs, Findings, tools, assistant connections, plan | Change Checks or run a write operation |
| write | Everything in read plus connect, run, add/remove Checks and relay | Approve, reject or deploy production changes |
Error contract
Errors are JSON and stable enough for agents to act on:
{
"error": {
"code": "plan_limit",
"message": "The Free plan includes up to 3 Checks."
}
}