Get started
Authentication
API keys
Create a key in Capable under Settings → Integrations → New key, give it a name you will recognise later, such as “Rippling sync”, and tick its scopes. Open Integrations
- Owners, admins and members with read/write access can create keys. Only an admin can revoke one.
- A key starts with
cap_and is shown once. Capable stores only a hash of it, so a lost key cannot be recovered; create a new one. - The key decides the company. To work with two companies, create a key in each.
- A key acts for the person who created it. It stops working as soon as they leave the company or move to a role without write access (Read only, HR admin or Billing admin), and Integrations marks it Inactive. Create a new key from an account that still has access.
- Integrations lists each key with its scopes and when it was last used.
Sending the key
Send the key as a bearer token on every request.
curl https://capable.so/api/v1/stakeholders \
-H "Authorization: Bearer $CAPABLE_API_KEY"A missing, mistyped or revoked key gets 401:
{
"error": {
"message": "Invalid or missing API key. Use: Authorization: Bearer cap_…"
}
}Scopes
Give each key the fewest scopes it needs. A request outside the key’s scopes gets 403 with the missing scope named.
| Scope | Allows |
|---|---|
captable:read | GET /company, GET /cap-table and GET /ocf |
stakeholders:read | GET /stakeholders and GET /stakeholders/{id} |
stakeholders:write | POST /stakeholders |
securities:read | GET /securities, GET /securities/{id} and GET /transactions |
securities:write | POST /securities |
documents:read | GET /documents |
Revoking a key
In Settings → Integrations, an admin chooses the bin icon next to the key. Requests with it stop working at once. Every key’s creation and revocation is recorded in the company’s activity log.
Plans and billing
The API is included on both the Startup and Growth plans at no extra cost, and works in full during the 14-day free trial. See pricing
Every request checks the company’s billing first, with the same rules as the app. When a company has no active plan in good standing, because its trial ended without one, a payment has failed for more than 21 days, or its subscription is paused or has ended, every request returns 402 until an owner sorts out billing on the Billing page. While a failed payment is being retried in its first 21 days, the API keeps working. Exports in the app stay open as the Terms describe.