CapableDocs

Search the API docs

Find an endpoint or guide

Get an API key

CompanyGet the cap table

Company

Get the cap table

Fully diluted ownership by stakeholder on any date, with share class and equity plan totals.
GET/api/v1/cap-table

Requires an API key with the captable:read scope · How keys work

Query parameters

  • asOfdate

    Show the cap table as it stood on this date, YYYY-MM-DD. Leave it out, or send another format, for today.

Response 200

One row per stakeholder with a holding on the date, plus class and plan totals.

  • asOfdate

    The date of the cap table.

  • totalsobject

    Company-wide totals as of the date.

    ›Show 10 attributes
    • outstandingSharesnumber

      Issued shares outstanding, every class.

    • optionsnumber

      Options outstanding.

    • rsusnumber

      RSUs outstanding.

    • warrantsnumber

      Warrants outstanding.

    • availablePoolnumber

      Shares still available to grant across equity plans.

    • fullyDilutednumber

      Shares, options, RSUs, warrants and the available pool together.

    • safePrincipalnumber

      Outstanding SAFE investment, in US dollars.

    • notePrincipalnumber

      Outstanding convertible note principal, in US dollars.

    • capitalContributednumber

      Capital paid in for shares and convertibles, in US dollars.

    • stakeholdersWithSecuritiesnumber

      Stakeholders who hold at least one outstanding security.

  • rowsobject[]

    One row per stakeholder.

    ›Show 12 attributes
    • stakeholderIdstring

      The stakeholder.

    • namestring

      Their name.

    • relationshipstring

      How they relate to the company.

      One offounderemployeeformer_employeeinvestoradvisorconsultantboard_memberother

    • sharesnumber

      Shares held, every class.

    • optionsnumber

      Options outstanding.

    • rsusnumber

      RSUs outstanding.

    • warrantsnumber

      Warrants outstanding.

    • fullyDilutednumber

      Their fully diluted shares.

    • fullyDilutedPercentnumber

      Their share of the fully diluted total, from 0 to 100.

    • vestednumber

      Vested quantity on the date.

    • unvestednumber

      Unvested quantity on the date.

    • byClassobject

      Shares held per share class, keyed by share class id.

  • shareClassesobject[]

    Totals per share class.

    ›Show 5 attributes
    • idstring

      Share class id.

    • namestring

      Name, such as Series Seed Preferred.

    • typestring

      Common or preferred.

      One ofcommonpreferred

    • outstandingnumber

      Shares outstanding in the class.

    • authorizednumber | null

      Shares authorized, when on record.

  • plansobject[]

    Totals per equity plan.

    ›Show 5 attributes
    • idstring

      Equity plan id.

    • namestring

      Plan name.

    • sizenumber

      Shares reserved for the plan.

    • outstandingnumber

      Awards outstanding from the plan.

    • availablenumber

      Shares still available to grant.

Example

Request
curl https://capable.so/api/v1/cap-table?asOf=2026-06-30 \
  -H "Authorization: Bearer $CAPABLE_API_KEY"
Response · 200 OK
JSON
{
  "asOf": "2026-06-30",
  "totals": {
    "outstandingShares": 9500000,
    "options": 1015000,
    "rsus": 0,
    "warrants": 0,
    "availablePool": 985000,
    "fullyDiluted": 11500000,
    "safePrincipal": 1250000,
    "notePrincipal": 0,
    "capitalContributed": 1252850,
    "stakeholdersWithSecurities": 18
  },
  "rows": [
    {
      "stakeholderId": "stk_9d1rfoundr01",
      "name": "Maya Chen",
      "relationship": "founder",
      "shares": 4500000,
      "options": 0,
      "rsus": 0,
      "warrants": 0,
      "fullyDiluted": 4500000,
      "fullyDilutedPercent": 39.13,
      "vested": 3375000,
      "unvested": 1125000,
      "byClass": {
        "cls_common01x9": 4500000
      }
    },
    {
      "stakeholderId": "stk_4m8q2xw7ka1p",
      "name": "Priya Raman",
      "relationship": "employee",
      "shares": 0,
      "options": 48000,
      "rsus": 0,
      "warrants": 0,
      "fullyDiluted": 48000,
      "fullyDilutedPercent": 0.42,
      "vested": 16000,
      "unvested": 32000,
      "byClass": {}
    }
  ],
  "shareClasses": [
    {
      "id": "cls_common01x9",
      "name": "Common Stock",
      "type": "common",
      "outstanding": 9000000,
      "authorized": 15000000
    },
    {
      "id": "cls_seedpref02",
      "name": "Series Seed Preferred",
      "type": "preferred",
      "outstanding": 500000,
      "authorized": 500000
    }
  ],
  "plans": [
    {
      "id": "pln_2024plan7b",
      "name": "2024 Equity Incentive Plan",
      "size": 2000000,
      "outstanding": 1015000,
      "available": 985000
    }
  ]
}

Errors

StatusWhen
401 UnauthorizedThe key is missing, invalid or revoked, or its creator lost access.
402 Payment requiredThe company has no active plan in good standing: its trial ended without one, a payment has failed for over 21 days, or its subscription is paused or has ended.
403 ForbiddenThe key does not have the captable:read scope.
429 Too many requestsThe key went over its rate limit. Wait for Retry-After seconds.

Every error has the same shape. See Errors, limits and conventions.