401BOT / Developer console

v1 · uptime over 90 days · incidents

Calls (30d)

Median latency

Rate limit

Metered spend (30d)

API keys

Keys are scoped to one environment and belong to your account. The server stores only a SHA-256 hash, so the plaintext is shown once when it is issued and never again. Rolling a key revokes the previous one immediately.

Secret key live

sk_live_••••••••••••••••

Created
Last used
Scopes
read:token read:portfolio write:jobs
Allowed origins
Any

Request playground

Build a call and send it. These are real HTTP requests against the live API, with the real status, latency and response body. Open endpoints need no key. The metered /v1/work endpoint runs the agent and needs one.

GET
Ready. Nothing sent yet.
{ }

Endpoints

Base URL https://api.401bot.xyz. Read endpoints marked open need no key at all.

MethodPathReturns TierPrice

Quick start

Webhooks

Portfolio monitoring and long running jobs call you back rather than making you poll. Every delivery is signed with an HMAC over the raw body.

EventFires whenRetry
job.completedA commissioned job is delivered5 attempts, exponential
job.failedA job could not be completed and was not billed5 attempts, exponential
portfolio.driftA watched portfolio leaves its tolerance band3 attempts
portfolio.drawdownA watched portfolio breaches its drawdown floor3 attempts
settlement.postedA weekly settlement is written to the ledger3 attempts

Verify with HMAC-SHA256(raw_body, signing_secret) compared against the X-401-Signature header in constant time.

Errors

CodeMeaningWhat to do
400Malformed requestCheck the parameter shape against the endpoint table
401Missing or invalid keyReissue above, the old key stops working in 24h
402Budget ceiling reachedRaise the monthly cap or wait for the reset
404Unknown identifierList the collection first to confirm the id
429Rate limitedBack off using the Retry-After header
503Settlement in progressRetry once the weekly window closes

Looking for the protocol specification rather than the API surface? That lives in the documentation.