List options

Returns the caller org's option grants, newest first.

GET /v1/captable/options

Addresshttps://api.hanzo.ai/v1/captable/options
MethodGET
Operationget_captable_options
AuthAuthorization: Bearer $HANZO_API_KEY

Returns the caller org's option grants, newest first. Each row is joined to its grantee and its equity plan. Grants that are EXERCISED, EXPIRED or CANCELLED are listed here but do not dilute the cap table.

Request

GET /v1/captable/options takes no parameters and no body — the credential is the whole request.

Response

StatusBodyMeaning
200captable.captableOptionsok
defaultproblem-detailsrefused

200 body — 15 fields.

FieldInTypeAlwaysDescription
databodycaptable.captableOption[]—Data is every option grant, newest first.
data[].cliffYearsbodyinteger (int64)—CliffYears is how many years before any of the grant vests.
data[].equityPlanIdbodystring—EquityPlanID is the plan the grant draws from.
data[].equityPlanNamebodystring—EquityPlanName is that plan's name.
data[].exercisePricebodynumber (double)—ExercisePrice is the strike price per share.
data[].expirationDatebodystring—ExpirationDate is the ISO date the grant expires.
data[].grantIdbodystring—GrantID is the grant number, unique within the company.
data[].idbodystring—ID is the option id.
data[].issueDatebodystring—IssueDate is the ISO date the grant was issued.
data[].quantitybodyinteger (int64)—Quantity is how many shares the grant covers.
data[].stakeholderIdbodystring—StakeholderID is the grantee.
data[].stakeholderNamebodystring—StakeholderName is that grantee's name.
data[].statusbodystring—Status is the grant's state, e.g. DRAFT, ACTIVE, EXERCISED, EXPIRED or CANCELLED.
data[].typebodystring—Type is the grant kind, ISO or NSO.
data[].vestingYearsbodyinteger (int64)—VestingYears is the total vesting period in years.

Failure carries the platform error shape — see Errors.

Examples

hanzo captable options list
import { Configuration, CaptableApi } from 'hanzoai';

const api = new CaptableApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getCaptableOptions();
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import CaptableApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = CaptableApi(client).get_captable_options()
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.CaptableAPI.GetCaptableOptions(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, captable_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = captable_api::get_captable_options(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.CaptableApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new CaptableApi(client).getCaptableOptions();
curl https://api.hanzo.ai/v1/captable/options \
  -H "Authorization: Bearer $HANZO_API_KEY"

MCP reaches captable through the captable tool, which names its 30 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_captable_classes"
         }
       }
     }'

Captable API · All Hanzo APIs · Interactive reference

Was this page useful?