Developer docs

Build on the cap table API

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.

Authentication

All API requests require a JWT Bearer token. Get one by logging in with your OpenCap Stack credentials or your AINative account.

Email / password login

bash
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" }
}

Sign in with AINative

bash
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" }
}

Using the token

bash
# Pass the token as a Bearer header on every request
curl https://api.opencapstack.com/api/v1/stakeholders \
  -H "Authorization: Bearer <your-token>"

REST API

Base URL: https://api.opencapstack.com/api/v1 · All requests and responses are JSON.

Key endpoints
GET/api/v1/stakeholders
POST/api/v1/stakeholders
GET/api/v1/share-classes
POST/api/v1/share-classes
GET/api/v1/equity-plans
POST/api/v1/equity-grants
GET/api/v1/safes
POST/api/v1/safes
GET/api/v1/valuations/latest
GET/api/v1/documents
POST/api/v1/auth/login
POST/api/v1/auth/ainative-login

Example: create a stakeholder

bash
curl -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"
  }'

Example: issue an equity grant

bash
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"
  }'

MCP Server

The @opencapstack/mcp-server package gives any MCP-compatible AI client (Claude, Cursor, etc.) direct access to your cap table via 29 tools.

Install

bash
npm install -g @opencapstack/mcp-server

# The skill auto-installs to ~/.claude/skills/opencap-mcp/
# on npm install — no manual setup needed in Claude Code

Configure Claude Code

Add to your ~/.claude.json projects entry:

json
{
  "mcpServers": {
    "opencap": {
      "type": "stdio",
      "command": "opencap-mcp",
      "env": {
        "OPENCAP_API_KEY": "<your-jwt-token>",
        "OPENCAP_BASE_URL": "https://api.opencapstack.com"
      }
    }
  }
}

Configure Cursor

json
// .cursor/mcp.json
{
  "mcpServers": {
    "opencap": {
      "command": "opencap-mcp",
      "env": {
        "OPENCAP_API_KEY": "<your-jwt-token>",
        "OPENCAP_BASE_URL": "https://api.opencapstack.com"
      }
    }
  }
}
Important: OPENCAP_BASE_URL must not end with /api/v1 — the MCP tools add that prefix automatically.

Get an API key

bash
# 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'

Available tools (29 total)

whoamiVerify auth, returns email and companyId
cap_table_summaryFull overview of stakeholders, SAFEs, grants, plans
list_workflowsStep-by-step guides for common operations
create_stakeholderAdd a new stakeholder
list_stakeholdersList all stakeholders
create_share_classDefine a new share class
create_safeRecord a SAFE investment
create_equity_grantIssue an equity grant
get_vesting_scheduleGet vesting schedule for a grant
create_valuation_requestKick off a 409A valuation
calculate_dilutionRun a dilution analysis
run_waterfall_analysisModel a liquidation waterfall
+ 17 more tools for documents, financial reports, analysis, and more

Example session in Claude

Claude · opencap MCP
You › Show me the cap table summary
Cap Table — AINative Studio (ainative-studio)
Stakeholders: 3 · Share classes: 2 · SAFEs: 2 · Grants: 1

Stakeholders: Kwanza Hall (Advisor), ...
Share Classes: Common Stock, Series Seed Preferred
SAFEs: $250K @ $5M cap · $250K @ $8M cap
Grants: GRANT-MP34648T (50,000 NSO shares, pending)
You › Approve Kwanza Hall's equity grant
✓ Updated GRANT-MP34648T status → approved
Kwanza Hall now holds 50,000 NSO shares vesting 4yr/1yr cliff.

OpenAPI Spec

A full OpenAPI 3.0 specification is available for code generation, documentation, and integration testing.

Rate Limits

Rate limits are enforced per API key and vary by plan.

PlanAPI calls / monthBurst limit
Free1,00010 req/min
Starter10,00060 req/min
Professional100,000200 req/min
EnterpriseUnlimitedCustom

Rate limit headers are returned on every response: x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset.

Ready to build?

Create a free account to get your API key and start integrating in minutes.