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
| Field | Type | Notes |
|---|---|---|
holdings[].stockClass._id | string | Use this to join against the stockClasses array. |
holdings[].stakeholder._id | string | Stakeholder currently holding the position. |
holdings[].quantity | number | Active share count. |
holdings[].sharePrice | number | Human-readable — the poller already unscaled by 1e10. The raw onchain value is sharePrice * 1e10; see the scaling note. |
holdings[].timestamp | number | Unix seconds at the issuing block. |
stockClasses[] | array | Every stock class on the issuer, even if it has no active holdings. |
issuer._id | string | Use 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.