OCTA Schema
OpenCap Stack is fully aligned with the Open Cap Table Alliance (OCTA) v2.0 schema — the industry standard for interoperable equity data. This means cap table data can be exported, imported, and shared with any OCTA-compatible tool (Carta, Pulley, AngelList, law firm platforms).
Core Entities
Stakeholder
{
"id": "stakeholder_abc123",
"name": "Jane Doe",
"email": "jane@startup.com",
"type": "FOUNDER",
"title": "CEO",
"companyId": "co_xyz789",
"address": {
"line1": "123 Main St",
"city": "San Francisco",
"state": "CA",
"country": "US",
"postalCode": "94105"
},
"taxId": "***-**-1234",
"createdAt": "2024-01-01T00:00:00Z"
}
Types: FOUNDER INVESTOR EMPLOYEE ADVISOR BOARD_MEMBER CONSULTANT
ShareClass
{
"id": "sc_series_a",
"name": "Series A Preferred",
"type": "PREFERRED",
"totalShares": 10000000,
"authorizedShares": 12000000,
"pricePerShare": 1.00,
"liquidationPreference": 1.0,
"participationRights": "NON_PARTICIPATING",
"conversionRatio": 1.0,
"dividendRate": 0.08,
"isConvertible": true,
"votesPerShare": 1,
"companyId": "co_xyz789"
}
Types: COMMON PREFERRED OPTIONS_POOL WARRANT CONVERTIBLE_NOTE
EquityGrant
{
"id": "grant_def456",
"grantNumber": "GRANT-MP34648T-FF2DB6F9",
"stakeholderId": "stakeholder_abc123",
"shareClassId": "sc_options_pool",
"quantity": 100000,
"grantType": "OPTION",
"strikePrice": 0.10,
"fairMarketValue": 0.50,
"vestingSchedule": "4_YEAR_1_YEAR_CLIFF",
"grantDate": "2026-01-01",
"vestingStartDate": "2026-01-01",
"cliffDate": "2027-01-01",
"fullyVestedDate": "2030-01-01",
"status": "APPROVED",
"companyId": "co_xyz789"
}
Grant types: OPTION RSU WARRANT RESTRICTED_STOCK PHANTOM_STOCK
Vesting schedules: 4_YEAR_1_YEAR_CLIFF 3_YEAR_MONTHLY 2_YEAR_6_MONTH_CLIFF IMMEDIATE CUSTOM
SAFENote
{
"id": "safe_ghi789",
"investorId": "stakeholder_investor1",
"investmentAmount": 500000,
"valuationCap": 10000000,
"discountRate": 0.20,
"safeType": "POST_MONEY",
"status": "ACTIVE",
"issueDate": "2026-01-15",
"convertedDate": null,
"convertedShareClassId": null,
"proRataRights": true,
"mfnProvision": false,
"companyId": "co_xyz789"
}
SAFE types: PRE_MONEY POST_MONEY MFN (Most Favored Nation)
Valuation409A
{
"id": "val_jkl012",
"valuationDate": "2026-03-01",
"commonStockFMV": 0.50,
"preferredStockFMV": 1.00,
"company409AValue": 15000000,
"methodology": "INCOME_APPROACH",
"provider": "Internal",
"status": "APPROVED",
"expiresAt": "2027-03-01",
"notes": "Pre-Series B 409A",
"companyId": "co_xyz789"
}
OCTA Export Format
Export a full cap table as OCTA-compliant JSON:
curl https://api.opencapstack.com/api/v1/cap-table/export?format=octa \
-H "Authorization: Bearer $TOKEN"
OCTA v2.0 export envelope:
{
"schema_version": "2.0",
"generated_at": "2026-05-13T00:00:00Z",
"company": {
"id": "co_xyz789",
"name": "Startup Inc.",
"formation_date": "2023-01-01",
"jurisdiction": "DE",
"tax_id": "XX-XXXXXXX"
},
"stakeholders": [...],
"share_classes": [...],
"equity_grants": [...],
"safe_notes": [...],
"valuations": [...],
"cap_table_snapshot": {
"as_of_date": "2026-05-13",
"total_authorized": 20000000,
"total_issued": 12500000,
"fully_diluted": 14000000
}
}
Import from Other Platforms
Import OCTA-compliant exports from Carta, Pulley, or other platforms:
curl -X POST https://api.opencapstack.com/api/v1/cap-table/import \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d @octa_export.json
The importer validates the OCTA schema, deduplicates stakeholders by email, and maps share class types automatically.
Interoperability
OpenCap Stack's OCTA alignment means data flows freely between:
| Platform | Direction | Format |
|---|---|---|
| Carta | Export from Carta → Import to OpenCap Stack | OCTA v2.0 JSON |
| Pulley | Bidirectional | OCTA v2.0 JSON |
| AngelList | Import from AL → OpenCap Stack | OCTA v2.0 JSON |
| Law firm platforms | Export for legal review | OCTA v2.0 JSON |
| Custom tools | REST API or MCP | Native JSON or OCTA |
For the full OCTA specification: opencaptablecoalition.com