Replace referral
Updates the caller's referral code and returns the updated referral summary.
PUT /v1/referral
| Address | https://api.hanzo.ai/v1/referral |
| Method | PUT |
| Operation | put_referral |
| Auth | Authorization: Bearer $HANZO_API_KEY |
Updates the caller's referral code and returns the updated referral summary.
Request
1 field, body application/json (required).
| Field | In | Type | Required | Description |
|---|---|---|---|---|
code | body | string | — | Code is the custom referral code to assign to the caller's org (2-32 uppercase alphanumeric, hyphen, or underscore characters). |
Response
| Status | Body | Meaning |
|---|---|---|
200 | referral.myReferrals | ok |
default | problem-details | refused |
200 body — 12 fields.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
code | body | string | — | Code is the org's STABLE referral code — a deterministic function of the org id, so it never changes and never has to be stored to be reproduced. |
counts | body | referral.statusCounts | — | |
counts.qualified | body | integer (int64) | — | Qualified is how many referees have made metered spend. |
counts.signup | body | integer (int64) | — | Signup is how many referees have signed up but not yet spent. |
counts.total | body | integer (int64) | — | Total is every referral this org has made. |
link | body | string | — | Link is the shareable signup link carrying the code, on the brand's own host. |
referrals | body | referral.myReferralView[] | — | Referrals is one row per org that signed up with this code. |
referrals[].createdAt | body | integer (int64) | — | CreatedAt is when the referral was recorded, as a Unix timestamp. |
referrals[].id | body | string | — | ID is the referral's handle. |
referrals[].qualifiedAt | body | integer (int64) | — | QualifiedAt is when the referee first made metered spend, as a Unix timestamp; 0 while the referral is still pending. |
referrals[].referee | body | string | — | Referee is the org that signed up with my code. |
referrals[].status | body | string | — | Status is the referral's lifecycle state: "signup" until the referee makes metered spend, then "qualified". |
Failure carries the platform error shape — see Errors.
Examples
CLI
SDK
HTTP
MCP
hanzo referral replace.ts
.py
.go
.rs
.java
import { Configuration, ReferralApi } from 'hanzoai';
const api = new ReferralApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.putReferral({ code: "<code>" });from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import ReferralApi
client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = ReferralApi(client).put_referral(code="<code>")cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)
resp, _, err := client.ReferralAPI.PutReferral(context.Background()).Execute()
if err != nil {
return err
}use hanzo_client::apis::{configuration::Configuration, referral_api};
let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();
let result = referral_api::put_referral(&cfg, Default::default()).await?;import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.ReferralApi;
ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));
var result = new ReferralApi(client).putReferral();curl -X PUT https://api.hanzo.ai/v1/referral \
-H "Authorization: Bearer $HANZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"code": "<code>"
}'MCP reaches referral through the referral tool, which names its 3 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_referrals"
}
}
}'Was this page useful?
Broken link or missing step? Drop it in #docs on Discord or open a PR.