Brand Partner API¶
Isang maliit at predictable na REST API para gumawa ng mintbot orders, mag-poll ng status nila, at tumanggap ng lifecycle events. JSON in, JSON out. Bearer-token auth. Idempotent writes. Signed webhooks.
API access dashboard Tumalon sa webhooks
Mabilisang overview¶
| Base URL | https://mint.mintbot.ai/api/v1 |
| Auth | `Authorization: Bearer *** |
| Idempotency | Idempotency-Key: <uuid> sa bawat POST maliban sa POST /dns/records |
| Content type | application/json |
| Rate limit | 120 req / 60 s bawat partner |
| Webhooks | Signed gamit ang HMAC-SHA256, nire-retry hanggang 7 beses |
Authentication¶
Bawat request ay nagpapadala ng partner API key sa Authorization header. I-generate o i-rotate ang key sa dashboard.
Authorization: Bearer mo_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json
Walang grace window ang rotation
Kapag ni-rotate ang key, atomically nare-revoke ang nauna. Planuhin na palitan ang value sa iyong config bago i-click ang Rotate.
Idempotency¶
Bawat POST ay nangangailangan ng Idempotency-Key header — maliban sa POST /dns/records, na natural na idempotent sa provider layer at tumatanggap ng retries kahit wala nito. Gumagana ang anumang UUID para sa bawat distinct request.
- Kina-cache namin ang response sa loob ng 24 oras. Ang retry gamit ang parehong key ay ire-replay ang orihinal na response na may
Idempotent-Replay: true. - Ang paggamit ulit ng parehong key na may ibang body ay magbabalik ng
409 idempotency_key_mismatch.
Orders¶
Gumawa ng order¶
POST /orders
Gumagawa ng order at nagbabalik ng Stripe Checkout URL. Kapag na-confirm ang payment, ipo-provision ng mintbot ang agent at awtomatikong ire-record ang partner-cut revenue event.
Request
{
"tier": "s1",
"duration_months": 1,
"credit_usd": 10,
"language": "en",
"external_id": "your-side-id",
"success_url": "https://your.app/thanks?id={ORDER_ID}",
"cancel_url": "https://your.app/cart",
"webhook_url": "https://your.app/mintbot-webhook"
}
tier- Isa sa
trial,s1,s2,s4. duration_months- Calendar months ng server lifetime. Dapat isa sa
1,3, o12. credit_usd- Optional. Pre-funded chat credit na naka-bundle sa order.
language- Optional. Nakakaapekto sa Stripe Checkout locale at welcome-email language.
external_id- Optional. Ibabalik sa bawat webhook at order response — gamitin ito para i-thread ang mintbot orders sa rows sa sarili mong system.
success_url·cancel_url- Stripe Checkout return URLs. Ang
{ORDER_ID}ay pinapalitan server-side. webhook_url- Optional. Per-order override ng partner-level webhook URL.
Response — 201 Created
{
"id": 42,
"tier": "s1",
"duration_months": 1,
"credit_usd": 10,
"amount_cents": 1200,
"currency": "usd",
"status": "awaiting_payment",
"checkout_url": "https://checkout.stripe.com/c/pay/cs_test_…",
"panel_url": null,
"expires_at": null,
"language": "en",
"external_id": "your-side-id",
"created_at": "2026-05-16 09:58:00",
"paid_at": null
}
Halimbawa
curl -X POST https://mint.mintbot.ai/api/v1/orders \
-H "Authorization: Bearer $MINTBOT_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"tier": "s1",
"duration_months": 1,
"credit_usd": 10,
"success_url": "https://your.app/thanks?id={ORDER_ID}",
"cancel_url": "https://your.app/cart"
}'
import os, uuid, requests
r = requests.post(
"https://mint.mintbot.ai/api/v1/orders",
headers={
"Authorization": f"Bearer {os.environ['MINTBOT_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"tier": "s1",
"duration_months": 1,
"credit_usd": 10,
"success_url": "https://your.app/thanks?id={ORDER_ID}",
"cancel_url": "https://your.app/cart",
},
timeout=10,
)
r.raise_for_status()
order = r.json()
redirect_to = order["checkout_url"]
Kunin ang order¶
GET /orders/{id}
Kinukuha ang isang order gamit ang mintbot id nito. Nagbabalik ng parehong shape gaya ng POST /orders.
curl https://mint.mintbot.ai/api/v1/orders/42 \
-H "Authorization: Bearer $MINTBOT_API_KEY"
I-list ang orders¶
GET /orders
Cursor-paginated list, pinakabago muna.
Query parameters
status- Optional. I-filter ayon sa
awaiting_payment,completed,deployed,deploy_failed, oexpired. cursor- Optional. Ipasa ang
next_cursormula sa nakaraang page para magpatuloy.
Response
{
"items": [ /* OrderResponse … */ ],
"next_cursor": "37"
}
Ang next_cursor ay null kapag wala nang mga page.
I-renew ang order¶
POST /orders/{id}/renew
Pinapahaba ang existing agent para sa panibagong duration_months. Infra-only — walang bagong chat credit na naka-bundle. Nagbabalik ng bagong order id at fresh na Stripe Checkout URL.
Request
{
"duration_months": 1,
"external_id": "your-side-id",
"success_url": "https://your.app/thanks?id={ORDER_ID}",
"cancel_url": "https://your.app/account"
}
Revenue¶
Basahin ang revenue¶
GET /revenue
Totals plus ang pinakabagong 200 ledger events.
Query parameters
include_paid- Optional, default
true. I-set safalsepara makita lang ang events na hindi pa paid out.
Response
{
"currency": "usd",
"gross_cents": 12000,
"partner_cut_cents": 2000,
"mintbot_cut_cents": 10000,
"unpaid_cents": 800,
"events": [
{
"id": 7,
"order_id": 42,
"kind": "order_paid",
"gross_cents": 1200,
"partner_cut_cents": 200,
"mintbot_cut_cents": 1000,
"currency": "usd",
"created_at": "2026-05-16 09:58:00",
"payout_id": null,
"payout_at": null
}
]
}
Partner profile¶
Kunin ang profile¶
GET /partner
Ibabalik ang iyong partner profile kasama ang unpaid balance — useful para ipakita ang earnings sa loob ng sarili mong admin UI nang hindi mo kailangang i-store ang mga ito mismo.
Response
{
"id": 12,
"email": "you@kliendifirma.com",
"pricing_currency": "usd",
"balance_unpaid_cents": 800,
"webhook_url": "https://your.app/mintbot-webhook",
"api_key_prefix": "mo_live_a12b"
}
Settings¶
Get settings¶
GET /settings
Nagbabalik ng buo mong non-secret partner configuration sa isang payload — napiling modes, apex domain, DNS provider, bot provider, template repo, subdomain pattern (may rendered preview label), per-tier pricing, API key metadata, webhook metadata, at ang parehong readiness / per-section status na nagpapatakbo sa MintOffice dashboard banner.
Dinisenyo para sa integration agents na kailangang malaman kung paano naka-set up ang partner nang hindi nag-scrape ng dashboard o nagtatanong sa operator. Ang typical caller ay coding agent na nag-i-install ng white-label setup mo sa fresh server — mababasa nito ang endpoint na ito, mag-branch sa readiness.status, at masasabi sa operator kung aling sections pa ang nangangailangan ng attention.
Walang secret na ibinabalik kailanman
Anumang ibinigay ng partner bilang credential — Telegram bot token, Zone.ee API key, webhook signing secret, mismong plaintext ng API key — lumalabas lamang bilang *_set boolean. Dagdag pa rito, ine-expose ng webhook secret ang parehong 8-char display prefix na ipinapakita na sa dashboard, kaya mako-confirm ng caller aling secret ang naka-configure nang hindi kailanman nakikita ang value.
Response
{
"id": 12,
"email": "you@kliendifirma.com",
"status": "live",
"created_at": "2026-05-12 14:22:01",
"onboarded_at": "2026-05-12 14:48:33",
"activated_at": "2026-05-13 09:10:05",
"last_login_at": "2026-05-20 00:51:18",
"preferred_language": "en",
"pricing_currency": "usd",
"balance_unpaid_cents": 800,
"domain": {
"mode": "byo",
"client_apex_domain": "agent99.cc",
"dns_provider": "zone.ee",
"zone_ee_username": "you@kliendifirma.com",
"zone_ee_api_key_set": true,
"subdomain_prefix": "agent",
"subdomain_numbering": "natural",
"subdomain_pad_width": 3,
"subdomain_label_preview": "agent1"
},
"bot": {
"mode": "own",
"provider": "telegram",
"telegram_bot_username": "agent99cc_bot",
"telegram_bot_token_set": true
},
"template": {
"mode": "default",
"repo_url": null
},
"api": {
"key_prefix": "mo_live_a12b",
"key_created_at": "2026-05-13 09:11:42",
"webhook_url": "https://your.app/mintbot-webhook",
"webhook_secret_set": true,
"webhook_secret_prefix": "ab12cd34"
},
"pricing": {
"mode": "default",
"currency": "usd",
"tiers": {
"trial": { "price_cents": 0, "partner_cut_cents": 0, "updated_at": null },
"s1": { "price_cents": 1200, "partner_cut_cents": 200, "updated_at": "2026-05-13 09:05:00" },
"s2": { "price_cents": 2400, "partner_cut_cents": 400, "updated_at": "2026-05-13 09:05:00" },
"s4": { "price_cents": 4800, "partner_cut_cents": 800, "updated_at": "2026-05-13 09:05:00" }
}
},
"readiness": {
"ready": true,
"missing_fields": [],
"dns_blocker": null,
"status": "live"
},
"section_status": {
"domain": { "status": "ready", "mode": "byo", "issue": null, "dns_blocker": null },
"bot": { "status": "ready", "mode": "own", "issue": null, "dns_blocker": null },
"template": { "status": "ready", "mode": "default", "issue": null, "dns_blocker": null },
"api": { "status": "ready", "mode": "live", "issue": null, "dns_blocker": null },
"all_ready": true
}
}
Field reference¶
status- Lifecycle ng partner. Isa sa
onboarding,live,paused. Nire-reject ng Brand Partner API ang writes habangonboarding. domain.modebyo(dala mo ang sarili mong apex domain) ohosted(nagpo-provide ang mintbot ng*.mintbot.aisubdomain). Kapaghosted, sadyang walang laman ang DNS-provider fields kahit ano pa ang dating inilagay ng partner.domain.subdomain_label_preview- Ang rendered label na matatanggap ng unang customer agent (
agent1,1,001, …) base sa kasalukuyangsubdomain_prefix,subdomain_numbering, atsubdomain_pad_width. Gamitin ito para sa preview na "ito ang makikita ng customers mo" nang hindi kailangang i-reimplement ang numbering rules. bot.modeown(Telegram bot na provided ng partner),borrow(gamit ang bot ng mintbot habang testing), oweb(panel lang, walang Telegram).template.modedefault(reference template ng mintbot mula sa mintbot-ai/agent-template) ocustom(forked repo ng partner sarepo_url). Kinokontrol ng default template ang SOUL.md (persona), config.yaml (Hermes settings), at panel theme ng agent — i-fork ito at ituro angrepo_urlsa fork mo kapag gusto mo ng custom branding.api.webhook_secret_prefix- Unang 8 character ng webhook signing secret, naroroon lang kapag may naka-configure na secret. Hinahayaan nitong matukoy ng caller kung aling secret ang ginagamit nang hindi nakikita ang buong value. Ipinapakita rin ng dashboard ang parehong prefix.
readiness.missing_fields- Listahan ng dashboard field names na kailangan pa bago mag-Go Live. Walang laman kapag
readyaytrue. Sapat ang stability nito para mag-drive ng "ano pa ang kulang" UI sa sarili mong admin. readiness.dns_blocker- Naka-set sa maikling reason string kapag pumalya ang DNS verification (hal.
nameservers_not_pointing,glue_record_missing). Kung hindi,null. section_status.*.issue- Per-section human-readable hint kapag bina-block ng section na iyon ang Go Live. Katulad ito ng per-section status pills sa dashboard.
Halimbawa
curl https://mint.mintbot.ai/api/v1/settings \
-H "Authorization: Bearer ***
import os, requests
r = requests.get(
"https://mint.mintbot.ai/api/v1/settings",
headers={"Authorization": f"Bearer {os.environ['MINTBOT_API_KEY']}"},
timeout=10,
)
r.raise_for_status()
settings = r.json()
if not settings["readiness"]["ready"]:
print("Still missing:", settings["readiness"]["missing_fields"])
DNS records¶
Madalas kailangan ng brand-partner integrations na mag-provision ng DNS records sa apex domain ng partner — itinuturo ang @, www, o per-customer subdomains sa tamang server. Nag-e-expose ang MintOffice ng vendor-blind proxy para magawa mo ito nang hindi kailanman hinahawakan ang API key ng upstream provider sa sarili mong infrastructure. Ang credentials na sinave mo noong onboarding (ngayon: zone.ee; naka-roadmap ang cloudflare at route53 sa likod ng parehong shape) ay nananatiling encrypted sa MintOffice; pumapasok ang call mo gamit ang Bearer mo_live_… at kami ang gumagawa ng upstream call para sa iyo.
Ang scope ay sariling configured apex ng partner (domain.client_apex_domain mula sa GET /settings). Hindi mo maaaring galawin ang record sa zone na hindi mo pagmamay-ari.
Sa ngayon, sinusuportahan ng proxy ang operations na ginagamit mismo ng deploy pipeline — A-records (upsert / list / delete by id). Susunod sa parehong shape ang CNAME / TXT / MX support kapag pinalawak na ng underlying provider abstraction ang mga iyon.
Hindi kailangan ang Idempotency-Key dito
Hindi tulad ng order-creation endpoints, natural na idempotent ang DNS upserts sa provider layer (ang muling pag-run gamit ang parehong (subdomain, ip) ay no-op at nililinis ang stale duplicates sa bawat call). Hindi mo kailangang ipadala ang Idempotency-Key header — palaging nagko-converge ang retries sa iisang A-record per FQDN.
Mag-upsert ng A-record¶
POST /dns/records
Idempotently ituro ang <subdomain>.<your-apex> sa isang IPv4 address. Ipasa ang "" (o "@") para sa mismong apex.
Request
{
"subdomain": "www",
"ip": "203.0.113.10"
}
Tinatanggap ng subdomain ang:
""o"@"— ang mismong apex (example.com).- Isang DNS label —
"www","api"— para sa<label>.<apex>. - Dotted sub-labels —
"api.eu"— para sa nested subdomains (api.eu.example.com).
Ang ip ay dapat dotted IPv4 address. Bawat label ay [a-z0-9_-], 1–63 chars, walang leading/trailing -.
Response — 200
{
"apex": "example.com",
"provider": "zone_ee",
"fqdn": "www.example.com",
"records": [
{ "id": "9182734", "name": "www.example.com", "destination": "203.0.113.10" }
]
}
Palaging ipinapakita ng post-write records list ang kasalukuyang view ng upstream provider sa FQDN pagkatapos ng duplicate sweep — kaya ang successful response na may eksaktong isang record ang happy-path signal na wala nang stale na natitira.
I-list ang records¶
GET /dns/records
Ibinabalik ang bawat A-record sa configured apex. Idagdag ang ?name=<label-or-fqdn> para mag-filter sa isang FQDN — maaaring bare label ("www"), dotted subdomain ("api.eu"), o full FQDN ("www.example.com") ang value.
Response — 200
{
"apex": "example.com",
"provider": "zone_ee",
"items": [
{ "id": "9182734", "name": "example.com", "destination": "203.0.113.10" },
{ "id": "9182735", "name": "www.example.com", "destination": "203.0.113.10" }
]
}
Mag-delete ng record¶
DELETE /dns/records/{record_id}
Ang record_id ay vendor identifier na ibinalik ng GET /dns/records (nag-i-issue ang zone.ee ng integer ids, na sini-stringify sa API boundary). Ang pag-delete ng record na wala na ay itinuturing na success — idempotent ang endpoint sa client side.
Response — 200
{ "deleted": true, "id": "9182734" }
Errors¶
| HTTP | error.code |
Sanhi |
|---|---|---|
| 401 | unauthenticated / invalid_api_key |
Kulang / mali ang Bearer token. |
| 422 | validation_error |
Mali ang subdomain o non-IPv4 destination. |
| 422 | dns_not_configured |
Walang client_apex_domain ang partner o nawawala ang credentials ng configured provider. Ayusin sa Settings → Domain. |
| 422 | dns_provider_unsupported |
Hindi pa naka-wire ang DNS provider ng partner sa MintOffice proxy (hal. cloudflare placeholder). Lumipat muna sa zone_ee. |
| 502 | dns_provider_error |
Nagbalik ang upstream provider ng 4xx/5xx, o pumalya ang transport. Dala ng error message ang upstream status at maikling secret-redacted excerpt ng upstream body. Safe na mag-retry. |
Halimbawa¶
# Point apex + www at your server's IP.
curl https://mint.mintbot.ai/api/v1/dns/records \
-H "Authorization: Bearer *** \
-H "Content-Type: application/json" \
-d '{"subdomain": "", "ip": "203.0.113.10"}'
curl https://mint.mintbot.ai/api/v1/dns/records \
-H "Authorization: Bearer *** \
-H "Content-Type: application/json" \
-d '{"subdomain": "www", "ip": "203.0.113.10"}'
# Verify.
curl "https://mint.mintbot.ai/api/v1/dns/records" \
-H "Authorization: Bearer ***
import os, requests
URL = "https://mint.mintbot.ai/api/v1/dns/records"
H = {"Authorization": f"Bearer {os.environ['MINTBOT_API_KEY']}"}
for sub in ("", "www"):
r = requests.post(URL, headers=H, json={"subdomain": sub, "ip": "203.0.113.10"})
r.raise_for_status()
print(sub or "@", r.json()["records"])
Webhooks¶
Kapag may nangyari sa isang order, nag-POST kami ng signed JSON event sa configured webhook URL mo.
Optional ang Webhooks
Ang Webhook URL at Webhook signing secret sa Settings → API access ay ganap na optional — iwanang blank ang mga ito habang onboarding kung wala ka pang receiver. Gumagana nang maayos ang dashboard at ang natitirang API kahit walang webhooks; puwede mong i-poll ang GET /api/v1/orders/{id} para i-track ang lifecycle sa halip. Idagdag ang URL (at i-generate ang secret) kapag ready ka na, walang kailangang re-activation.
Event types¶
| Event | Kailan ito nagti-trigger |
|---|---|
order.created |
Nagawa ang Stripe Checkout session, naghihintay ng payment. |
order.paid |
Kinumpirma ng Stripe ang payment. Na-record ang revenue event. |
order.cancelled |
Nag-time out ang order o tahasang kinansela. |
agent.provisioning_started |
Nagsimula ang deploy pipeline para sa order na ito. |
agent.ready |
Successful ang deploy. May panel_url at expires_at ang payload. |
agent.failed |
Nag-error ang deploy pipeline. Tingnan ang error field para sa step na nasira. |
agent.expired |
Lumipas na ang Agent TTL. Maaaring mag-renew ang partner gamit ang POST /orders/{id}/renew. |
Delivery & retries¶
- Hanggang 7 attempts sa exponential schedule:
0s, 30s, 2m, 10m, 1h, 6h, 24h. - Pagkatapos ng huling attempt, mamamarkahan ang delivery bilang
exhaustedat hihinto sa retrying. - Mag-respond ng
2xxstatus sa loob ng 10 seconds para i-acknowledge.
Request headers¶
Content-Type: application/json
User-Agent: mintbot-webhook/1.0
X-Mintbot-Signature: t=<unix_ts>,v1=<hex_hmac_sha256>
X-Mintbot-Event-Id: evt_42_order.paid_1747371234567
X-Mintbot-Event-Type: order.paid
Sample payload — order.paid¶
{
"id": 42,
"tier": "s1",
"duration_months": 1,
"credit_usd": 10,
"amount_cents": 1200,
"currency": "usd",
"status": "completed",
"external_id": "your-side-id",
"paid_at": "2026-05-16 10:02:14"
}
Verifying the signature¶
Ang signature ay HMAC-SHA256(secret, "{timestamp}.{raw_body}"). Palaging i-verify ang raw request body — masisira ang comparison kapag ni-re-serialise mo ang parsed JSON.
import hmac, hashlib, time
def verify(secret: str, body: bytes, header: str, tolerance: int = 300) -> bool:
try:
ts_part, v1_part = header.split(",", 1)
ts = int(ts_part.split("=", 1)[1])
sig = v1_part.split("=", 1)[1]
except Exception:
return False
if abs(int(time.time()) - ts) > tolerance:
return False
expected = hmac.new(
secret.encode(),
f"{ts}.".encode() + body,
hashlib.sha256,
).hexdigest()
return hmac.compare_digest(expected, sig)
const crypto = require("crypto");
function verify(secret, rawBody, header, toleranceSec = 300) {
const [tsPart, v1Part] = header.split(",");
const ts = Number(tsPart.split("=")[1]);
const sig = v1Part.split("=")[1];
if (Math.abs(Date.now() / 1000 - ts) > toleranceSec) return false;
const expected = crypto
.createHmac("sha256", secret)
.update(`${ts}.`)
.update(rawBody)
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(expected, "hex"),
Buffer.from(sig, "hex"),
);
}
Idempotent receivers
Gamitin ang X-Mintbot-Event-Id bilang dedup key mo — ginagamit muli ng retries ang parehong id, kaya pinapanatiling safe ng row-level INSERT … ON CONFLICT DO NOTHING sa column na iyon ang handler mo.
Reference portal¶
May runnable end-to-end reference sa mintbot-ai/partner-portal-example — FastAPI + SQLite, Dockerised, may kasamang example brand na tinatawag na ExampleAI. May live brand fork sa mintbot-ai/partner-portal-agent99 (ang actual storefront na tumatakbo sa agent99.cc). Ang architectural picture — kung paano magkakasya ang storefront, itong API, deploy worker, at agent template — ay nasa MintOffice — Technical. Ini-implement ng portal ang:
- landing / plan-picker / thank-you / cancel pages,
POST /buy→POST /api/v1/orders→ Stripe redirect,POST /webhooks/mintofficekasama ang HMAC verifier na nire-reference sa itaas,- isang HTTP-Basic-auth
/adminevent browser para makita mo ang deliveries.
I-fork ito, i-set ang PARTNER_BRAND, MINTOFFICE_API_KEY, at MINTOFFICE_WEBHOOK_SECRET sa .env, patakbuhin ang docker compose up, at ituro ang webhook URL ng partner row mo sa https://<your-host>/webhooks/mintoffice. Tingnan ang MintOffice → Reference portal para sa buong walkthrough.
Errors¶
Bawat error response ay may stable na code na puwede mong i-branch programmatically. Ang message field ay human-readable hint at maaaring magbago sa pagitan ng releases. Ine-echo ng request_id ang X-Request-Id response header — isama ito sa support tickets.
{
"error": {
"code": "invalid_api_key",
"message": "API key is unknown or revoked.",
"request_id": "f0c2d6c4-…"
}
}
| Code | Kahulugan |
|---|---|
unauthenticated |
Kulang o malformed ang Authorization header. |
invalid_api_key |
Hindi kilala ang API key o na-rotate out na. |
rate_limited |
Lumampas sa per-partner o per-IP rate limit — tingnan ang Retry-After. |
missing_idempotency_key |
POST request na walang Idempotency-Key. |
idempotency_key_mismatch |
Ginamit muli ang parehong key na may ibang request body. |
validation_error |
Pumalya ang request body sa schema validation. |
not_found |
Wala ang resource o hindi ito kabilang sa partner mo. |
payment_gateway_error |
Ni-reject ng Stripe ang Checkout session creation. |
dns_not_configured |
POST /dns/records laban sa partner na walang apex / walang DNS credentials. Ayusin sa Settings → Domain. |
dns_provider_unsupported |
Hindi pa naka-wire ang dns_provider value ng partner sa MintOffice proxy. |
dns_provider_error |
Nagbalik ng error ang upstream DNS provider — may redacted excerpt ang message. |
quota_exceeded |
Naubos na ng partner ang lahat ng deploy slot (default ay 10). Makipag-contact sa mintbot support para itaas ang cap. Ibinabalik ng POST /orders at POST /orders/{id}/renew. Dala ng body ang deploys_used + deploy_quota. |
Rate limits¶
- 120 requests / 60 s rolling window, per partner. Magkapareho ang bucket ng burst at steady-state.
- 60 requests / 60 s hiwalay na per-IP bucket para sa unauthenticated at failed-auth requests — pinipigilan nitong ubusin ng bearer brute-force ang partner quota.
- Nagbabalik ang excess requests ng
429 rate_limitedkasama angRetry-Afterheader (seconds bago mag-back off).
Need help?¶
Isinulat ang docs na ito para sa partners na aktwal na gumagamit ng API. Kung may kulang, nakakalito, o stale, banggitin ito sa mintbot agent mo — ipapasa nila ang feedback at ia-update namin ang page.