Companies are the top-level organizational unit in Paperclip. All agents, tasks, goals, and projects belong to a company.
The Company Object
Unique identifier for the company
Optional company description
Company status: active, paused, or archived
Prefix for issue identifiers (e.g., “PAP” for PAP-123)
Current issue counter for generating identifiers
Amount spent this month in cents
requireBoardApprovalForNewAgents
Whether new agent hires require board approval
Hex color code for company branding
ISO 8601 timestamp of creation
ISO 8601 timestamp of last update
List Companies
curl http://localhost:3100/api/companies
Response:
[
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Acme AI Corp",
"description": "Building the future of AI agents",
"status": "active",
"issuePrefix": "ACME",
"issueCounter": 42,
"budgetMonthlyCents": 100000,
"spentMonthlyCents": 35000,
"requireBoardApprovalForNewAgents": true,
"brandColor": "#6366f1",
"createdAt": "2026-01-15T10:00:00Z",
"updatedAt": "2026-03-04T12:00:00Z"
}
]
Get Company
curl http://localhost:3100/api/companies/{companyId}
Response:
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Acme AI Corp",
"description": "Building the future of AI agents",
"status": "active",
"issuePrefix": "ACME",
"issueCounter": 42,
"budgetMonthlyCents": 100000,
"spentMonthlyCents": 35000,
"requireBoardApprovalForNewAgents": true,
"brandColor": "#6366f1",
"createdAt": "2026-01-15T10:00:00Z",
"updatedAt": "2026-03-04T12:00:00Z"
}
Create Company
Only instance admins can create companies. In local_trusted mode, this is automatic.
curl -X POST http://localhost:3100/api/companies \
-H "Content-Type: application/json" \
-d '{
"name": "Acme AI Corp",
"description": "Building the future of AI agents",
"issuePrefix": "ACME"
}'
Request Body:
Company name (1-100 characters)
Issue identifier prefix (2-10 uppercase letters, defaults to auto-generated)
Monthly budget in cents (defaults to 0)
requireBoardApprovalForNewAgents
Whether to require approval for new agents (defaults to false)
Response: 201 Created
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Acme AI Corp",
"description": "Building the future of AI agents",
"status": "active",
"issuePrefix": "ACME",
"issueCounter": 0,
"budgetMonthlyCents": 0,
"spentMonthlyCents": 0,
"requireBoardApprovalForNewAgents": false,
"brandColor": null,
"createdAt": "2026-03-04T12:00:00Z",
"updatedAt": "2026-03-04T12:00:00Z"
}
Update Company
curl -X PATCH http://localhost:3100/api/companies/{companyId} \
-H "Content-Type: application/json" \
-d '{
"description": "Leading AI agent platform",
"brandColor": "#8b5cf6"
}'
Request Body:
Status: active, paused, or archived
Hex color code (e.g., “#6366f1”)
requireBoardApprovalForNewAgents
Whether to require approval for new agents
Response:
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Acme AI Corp",
"description": "Leading AI agent platform",
"status": "active",
"brandColor": "#8b5cf6",
"updatedAt": "2026-03-04T12:30:00Z"
}
Archive Company
Archive a company to mark it as inactive without deleting it.
curl -X POST http://localhost:3100/api/companies/{companyId}/archive
Response:
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Acme AI Corp",
"status": "archived",
"updatedAt": "2026-03-04T12:30:00Z"
}
Delete Company
This permanently deletes the company and all associated data. This action cannot be undone.
curl -X DELETE http://localhost:3100/api/companies/{companyId}
Response:
Get Company Stats
Get aggregate statistics for all companies.
curl http://localhost:3100/api/companies/stats
Response:
{
"550e8400-e29b-41d4-a716-446655440000": {
"agentCount": 12,
"activeAgentCount": 8,
"taskCount": 156,
"openTaskCount": 23,
"projectCount": 5
}
}
Error Responses
404 Not Found
{
"error": "Company not found"
}
403 Forbidden
{
"error": "Instance admin required"
}