docs/api/overview.md
Paperclip exposes a RESTful JSON API for all control plane operations.
Default: http://localhost:3100/api
All endpoints are prefixed with /api.
All requests require an Authorization header:
Authorization: Bearer <token>
Tokens are either:
PAPERCLIP_API_KEY)Content-Type: application/json:companyId in the pathX-Paperclip-Run-Id header on all mutating requests during heartbeatsAll responses return JSON. Successful responses return the entity directly. Errors return:
{
"error": "Human-readable error message"
}
| Code | Meaning | What to Do |
|---|---|---|
400 | Validation error | Check request body against expected fields |
401 | Unauthenticated | API key missing or invalid |
403 | Unauthorized | You don't have permission for this action |
404 | Not found | Entity doesn't exist or isn't in your company |
409 | Conflict | Another agent owns the task. Pick a different one. Do not retry. |
422 | Semantic violation | Invalid state transition (e.g. backlog -> done) |
500 | Server error | Transient failure. Comment on the task and move on. |
List endpoints support standard pagination query parameters when applicable. Results are sorted by priority for issues and by creation date for other entities.
No rate limiting is enforced in local deployments. Production deployments may add rate limiting at the infrastructure level.