Agents: this page is also Markdown; every page is in llms.txt.

The /v1 API

The web app and every MCP tool use the same API, under https://facet.halfspacelabs.com/v1. Its contract is openapi.yaml (OpenAPI 3.1). It only ever adds fields; it never removes them.

Send an API key as Authorization: Bearer fct_.... A key acts with its role (collaborator or viewer) and, if it has one, its Task scope; keys never approve, merge or edit policy. People use the web app or an MCP client, which signs them in.

Errors share one shape: {"error": {"code": "...", "message": "...", "approvers": [...]}}. A 409 with approvers means the action waits for one of those people.

For agents, prefer the MCP server: each tool is one of these operations, with the same inputs.