Reports what keeping this entity costs every year, itemised.
Reports what keeping this entity costs every year, itemised.
POST /v1/standing/upkeep
| Address | https://api.hanzo.ai/v1/standing/upkeep |
| Method | POST |
| Operation | post_standing_upkeep |
| Auth | Authorization: Bearer $HANZO_API_KEY |
Reports what keeping this entity costs every year, itemised.
This is the figure that decides where to incorporate, and the one a formation price cannot show: Delaware is cheaper to form than Wyoming for a corporation and dearer to keep, so a founder shown only the formation fee is shown the half that reverses. Each state line carries the authority that publishes it and the date it was checked, and a franchise tax that scales is marked a minimum rather than quoted as final.
Request
3 fields, body application/json (required).
| Field | In | Type | Required | Description |
|---|---|---|---|---|
agentOfRecord | body | boolean | — | AgentOfRecord includes our agent fee, which most entities owe someone. |
jurisdiction | body | string | — | Jurisdiction is the state the entity stands in. |
structure | body | string | — | Structure is the entity kind: c-corp, llc or dao-llc. |
Response
| Status | Body | Meaning |
|---|---|---|
200 | Upkeep | ok |
200 body — 15 fields.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
atLeast | body | boolean | — | AtLeast reports that some obligation is a minimum, so YearlyCents is a floor rather than a final figure. |
currency | body | string | — | Currency is the ISO code every amount here is denominated in. |
jurisdiction | body | string | — | Jurisdiction is the state whose obligations these are. |
obligations | body | Obligation[] | — | Obligations are the recurring charges, in the order a reader should see them. |
obligations[].amountCents | body | integer | — | AmountCents is what it costs each period. |
obligations[].asOf | body | string | — | AsOf is when that amount was last checked against its source, RFC 3339 date. |
obligations[].code | body | string | — | Code names the obligation so a caller can branch without reading prose. |
obligations[].every | body | string | — | Every is how often it falls due — "yearly" for every obligation known here. |
obligations[].label | body | string | — | Label is what the payer sees. |
obligations[].minimum | body | boolean | — | Minimum marks a floor rather than a fixed price — a franchise tax that scales with shares or assets is quoted at its minimum, and an entity past the threshold… |
obligations[].passThrough | body | boolean | — | PassThrough marks money we collect and remit to the state rather than keep. |
obligations[].source | body | string | — | Source names the authority that publishes a pass-through amount, so the figure can be checked without first working out who would know. |
obligations[].stale | body | boolean | — | Stale reports that AsOf is older than the review window. |
structure | body | string | — | Structure is the entity this prices. |
yearlyCents | body | integer | — | YearlyCents is what the entity owes every year, all obligations summed. |
Failure carries the platform error shape — see Errors.
Examples
hanzo has no subcommand for this operation — the CLI serves only what cloud's live route table confirms. Use HTTP or an SDK.
import { Configuration, StandingApi } from 'hanzoai';
const api = new StandingApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postStandingUpkeep({ agentOfRecord: false, jurisdiction: "<jurisdiction>" });from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import StandingApi
client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = StandingApi(client).post_standing_upkeep(agent_of_record=False, jurisdiction="<jurisdiction>")cfg := cloud.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := cloud.NewAPIClient(cfg)
resp, _, err := client.StandingAPI.PostStandingUpkeep(context.Background()).Execute()
if err != nil {
return err
}use hanzo_cloud::apis::{configuration::Configuration, standing_api};
let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();
let result = standing_api::post_standing_upkeep(&cfg, Default::default()).await?;import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.StandingApi;
ApiClient client = new ApiClient();
client.setRequestInterceptor(b -> b.header("Authorization", "Bearer " + System.getenv("HANZO_API_KEY")));
var result = new StandingApi(client).postStandingUpkeep();The method above is the one at the current release of the document. [email protected] (npm) and [email protected] (PyPI) were generated from an earlier release, where this operation carried a different id, so it spells the method differently — regenerating the clients is what makes the two agree. SDKs →
curl -X POST https://api.hanzo.ai/v1/standing/upkeep \
-H "Authorization: Bearer $HANZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"agentOfRecord": false,
"jurisdiction": "<jurisdiction>"
}'The door declares no tool for standing — tools/list on https://api.hanzo.ai/v1/mcp names the products it does reach. Use HTTP or an SDK.
How is this guide?