View Cap Table

Use this page when you want to answer one question: who currently holds stock for this issuer?

This route returns active stock positions only. Options, warrants, and convertibles never appear here.

Send a GET request

curl "http://localhost:8293/cap-table/holdings/stock?issuerId=<YOUR_ISSUER_ID>"

Check the response

{
    "holdings": [
        {
            "stockClass": {
                "_id": "<YOUR_STOCK_CLASS_ID>"
            },
            "stakeholder": {
                "_id": "<YOUR_STAKEHOLDER_ID>"
            },
            "quantity": 100000,
            "sharePrice": 4.2,
            "timestamp": 1767225600
        }
    ],
    "stockClasses": [
        {
            "_id": "<YOUR_STOCK_CLASS_ID>"
        }
    ],
    "issuer": {
        "_id": "<YOUR_ISSUER_ID>"
    }
}

Response fields

FieldTypeNotes
holdings[].stockClass._idstringUse this to join against the stockClasses array.
holdings[].stakeholder._idstringStakeholder currently holding the position.
holdings[].quantitynumberActive share count.
holdings[].sharePricenumberHuman-readable — the poller already unscaled by 1e10. The raw onchain value is sharePrice * 1e10; see the scaling note.
holdings[].timestampnumberUnix seconds at the issuing block.
stockClasses[]arrayEvery stock class on the issuer, even if it has no active holdings.
issuer._idstringUse this to confirm you queried the right cap table.

Excluded from this route

  • Positions with zero remaining quantity (cancelled, transferred, repurchased).
  • Equity compensation, convertibles, and any non-stock instruments — those live on their own DB-only routes.

What’s next?