List company

Returns the caller org's formation and the stages reachable from it, or 404 when the org has not begun one.

GET /v1/company

Addresshttps://api.hanzo.ai/v1/company
MethodGET
Operationget_company
AuthAuthorization: Bearer $HANZO_API_KEY

Returns the caller org's formation and the stages reachable from it, or 404 when the org has not begun one.

Request

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

Response

StatusBodyMeaning
200company.formationViewok
defaultproblem-detailsrefused

200 body — 39 fields.

FieldInTypeAlwaysDescription
formationbodycompany.Formation—
formation.alreadyIncorporatedbodyboolean—AlreadyIncorporated declares an org that already has a legal entity, which takes the import path (structure → import → company) instead of forming one.
formation.capTableImportedbodyboolean—CapTableImported reports whether the existing company's cap table has been imported onto the canonical cap table.
formation.createdAtbodyinteger (int64)—CreatedAt is the unix second the formation was opened.
formation.documentIdsbodystring[]—DocumentIDs are the data room ids of the GENERATED formation documents.
formation.esignRefbodystring—EsignRef is the e-signature provider's reference for the signature request.
formation.filingbodycompany.Filing—
formation.filing.atbodyinteger (int64)—At is the unix second the filing record was written.
formation.filing.notebodystring—Note explains a filing Hanzo did not perform itself: what remains to be done and by whom.
formation.filing.providerbodystring—Provider is the filing partner that performed the filing, or "manual" when no partner is wired.
formation.filing.refbodystring—Ref is the partner's or the state's filing reference.
formation.filing.statusbodystring—Status is manual (no partner wired — a registered agent files out-of-band), submitted (the partner accepted it, awaiting the state), filed (the state accepted it) or rejected.
formation.foundersbodycompany.Founder[]—Founders is every founding stakeholder, with its equity split and KYC state.
formation.founders[].decidedBybodystring—DecidedBy is who settled a terminal KYC status: the provider name, or a reviewer's user id.
formation.founders[].emailbodystring—Email is the founder's email, and the key a KYC decision addresses a founder by — POST /v1/company/kyc/decision matches on it.
formation.founders[].equityBpsbodyinteger (int64)—EquityBps is the founder's ownership in basis points, 0–10000 (1% == 100 bps, so 10000 is the whole company).
formation.founders[].kycRefbodystring—KYCRef is the idv provider's session reference for this founder.
formation.founders[].kycStatusbodystring—KYCStatus is the founder's identity-verification state: pending, verified (a real idv provider reported a pass), reviewer_confirmed (a privileged reviewer confirmed out-of-band) or failed.
formation.founders[].namebodystring—Name is the founder's full legal name, as it appears on the formation documents.
formation.genesisbodycompany.Genesis—
formation.genesis.atbodyinteger (int64)—At is the unix second the genesis root was computed.
formation.genesis.blockbodyinteger (uint64)—Block is the L1 block the anchoring transaction landed in.
formation.genesis.chainIdbodyinteger (int64)—ChainID is the EVM chain the root is committed to — the Hanzo L1 by default.
formation.genesis.notebodystring—Note explains an unanchored genesis honestly — anchor wiring absent, or the submit error — rather than reporting a commit that did not happen.
formation.genesis.rootbodystring—Root is the 0x-prefixed keccak256 root of the founding allocation.
formation.genesis.statusbodystring—Status is pending (root computed, not yet on-chain) or anchored (committed).
formation.genesis.txHashbodystring—TxHash is the L1 transaction hash of the anchoring commit.
formation.importedbodyboolean—Imported reports whether the existing company's corporate documents have been ingested into the org's data room.
formation.importedDocsbodystring[]—ImportedDocs are the data room ids of the documents ingested from Drive.
formation.jurisdictionbodystring—Jurisdiction is the state of formation: DE or WY.
formation.namebodystring—Name is the company name the entity is being formed under.
formation.orgbodystring—Org is the owning org — the tenant key, and the reason there is exactly one formation per org.
formation.paidbodyboolean—Paid reports whether the one-time formation fee has been charged.
formation.paymentRefbodystring—PaymentRef is the billing reference recorded for the charged formation fee on the org's own ledger.
formation.signedbodyboolean—Signed reports whether the formation documents have come back signed — the e-signature provider's answer, which a real provider's webhook drives.
formation.stagebodystring—Stage is the machine's current state: structure, founders, payment, documents, esign or genesis on the formation path, import on the skip path, and company at the terminal.
formation.structurebodystring—Structure is the legal entity being formed: c-corp, llc or dao-llc.
formation.updatedAtbodyinteger (int64)—UpdatedAt is the unix second of the most recent write to the formation.
nextStagesbodystring[]—NextStages are the stages reachable from the formation's current stage, whether or not their guards are satisfied yet.

Failure carries the platform error shape — see Errors.

Examples

hanzo company get
import { Configuration, CompanyApi } from 'hanzoai';

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

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

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

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

let result = company_api::get_company(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.CompanyApi;

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

var result = new CompanyApi(client).getCompany();
curl https://api.hanzo.ai/v1/company \
  -H "Authorization: Bearer $HANZO_API_KEY"

MCP reaches company through the company tool, which names its 22 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_companies"
         }
       }
     }'

Company API · All Hanzo APIs · Interactive reference

Was this page useful?