60+ REST endpoints, a full OpenAPI 3.0 spec, JWT authentication, and an MCP server for AI-native integrations. Everything you need to integrate equity data into your product or workflow.
All API requests require a JWT Bearer token. Get one by logging in with your OpenCap Stack credentials or your AINative account.
curl -X POST https://api.opencapstack.com/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com", "password": "yourpassword"}'
# Response
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": { "email": "you@example.com", "role": "user" }
}curl -X POST https://api.opencapstack.com/api/v1/auth/ainative-login \
-H "Content-Type: application/json" \
-d '{"email": "you@ainative.studio", "password": "yourpassword"}'
# Response
{
"message": "Login successful",
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refreshToken": "...",
"user": { "email": "you@ainative.studio", "name": "...", "role": "user" }
}# Pass the token as a Bearer header on every request
curl https://api.opencapstack.com/api/v1/stakeholders \
-H "Authorization: Bearer <your-token>"Base URL: https://api.opencapstack.com/api/v1 · All requests and responses are JSON.
/api/v1/stakeholders/api/v1/stakeholders/api/v1/share-classes/api/v1/share-classes/api/v1/equity-plans/api/v1/equity-grants/api/v1/safes/api/v1/safes/api/v1/valuations/latest/api/v1/documents/api/v1/auth/login/api/v1/auth/ainative-logincurl -X POST https://api.opencapstack.com/api/v1/stakeholders \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Jane Smith",
"email": "jane@example.com",
"role": "Investor",
"companyId": "your-company-id"
}'curl -X POST https://api.opencapstack.com/api/v1/equity-grants \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"employeeId": "<stakeholder-row-id>",
"equityPlanId": "<plan-row-id>",
"shareCount": 50000,
"vestingSchedule": "4-year/1-year cliff",
"grantType": "NSO",
"companyId": "your-company-id"
}'The @opencapstack/mcp-server package gives any MCP-compatible AI client (Claude, Cursor, etc.) direct access to your cap table via 29 tools.
npm install -g @opencapstack/mcp-server
# The skill auto-installs to ~/.claude/skills/opencap-mcp/
# on npm install — no manual setup needed in Claude CodeAdd to your ~/.claude.json projects entry:
{
"mcpServers": {
"opencap": {
"type": "stdio",
"command": "opencap-mcp",
"env": {
"OPENCAP_API_KEY": "<your-jwt-token>",
"OPENCAP_BASE_URL": "https://api.opencapstack.com"
}
}
}
}// .cursor/mcp.json
{
"mcpServers": {
"opencap": {
"command": "opencap-mcp",
"env": {
"OPENCAP_API_KEY": "<your-jwt-token>",
"OPENCAP_BASE_URL": "https://api.opencapstack.com"
}
}
}
}OPENCAP_BASE_URL must not end with /api/v1 — the MCP tools add that prefix automatically.# Option 1: login and copy the token
curl -X POST https://api.opencapstack.com/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com", "password": "yourpassword"}' \
| jq -r '.token'
# Option 2: sign in with AINative
curl -X POST https://api.opencapstack.com/api/v1/auth/ainative-login \
-H "Content-Type: application/json" \
-d '{"email": "you@ainative.studio", "password": "yourpassword"}' \
| jq -r '.accessToken'whoamiVerify auth, returns email and companyIdcap_table_summaryFull overview of stakeholders, SAFEs, grants, planslist_workflowsStep-by-step guides for common operationscreate_stakeholderAdd a new stakeholderlist_stakeholdersList all stakeholderscreate_share_classDefine a new share classcreate_safeRecord a SAFE investmentcreate_equity_grantIssue an equity grantget_vesting_scheduleGet vesting schedule for a grantcreate_valuation_requestKick off a 409A valuationcalculate_dilutionRun a dilution analysisrun_waterfall_analysisModel a liquidation waterfallA full OpenAPI 3.0 specification is available for code generation, documentation, and integration testing.
Rate limits are enforced per API key and vary by plan.
| Plan | API calls / month | Burst limit |
|---|---|---|
| Free | 1,000 | 10 req/min |
| Starter | 10,000 | 60 req/min |
| Professional | 100,000 | 200 req/min |
| Enterprise | Unlimited | Custom |
Rate limit headers are returned on every response: x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset.
Create a free account to get your API key and start integrating in minutes.