# usezombie ## Docs - [Delete a platform LLM key](https://docs.agentsfleet.net/api-reference/admin/delete-a-platform-llm-key.md): Removes a platform-wide LLM provider key. Workspaces without self-managed keys will no longer be able to use this provider. - [List platform LLM keys](https://docs.agentsfleet.net/api-reference/admin/list-platform-llm-keys.md): Lists all configured platform-wide LLM provider keys. These are shared keys that workspaces fall back to when no self-managed key is configured. - [Set a platform LLM key](https://docs.agentsfleet.net/api-reference/admin/set-a-platform-llm-key.md): Configures a platform-wide LLM provider key by referencing a workspace that has a self-managed key stored. The platform key proxies through the referenced workspace's credential. - [Issue an agent key for a zombie](https://docs.agentsfleet.net/api-reference/agent-keys/issue-an-agent-key-for-a-zombie.md): Creates a new `zmb_` agent key bound to a specific zombie. **The raw key is returned once.** Only the SHA-256 hash is persisted — the key cannot be retrieved again. - [List agent keys in a workspace](https://docs.agentsfleet.net/api-reference/agent-keys/list-agent-keys-in-a-workspace.md): Returns agent-key metadata only — never returns `key_hash`. - [Revoke an agent key](https://docs.agentsfleet.net/api-reference/agent-keys/revoke-an-agent-key.md): Revokes the agent key immediately. Subsequent requests with the key receive 401. - [Delete a revoked tenant API key](https://docs.agentsfleet.net/api-reference/api-keys/delete-a-revoked-tenant-api-key.md): Hard-deletes the row from `core.api_keys`. The key must already be revoked (`active = false`); an active key returns `409 UZ-APIKEY-008`. - [List tenant API keys](https://docs.agentsfleet.net/api-reference/api-keys/list-tenant-api-keys.md): Returns metadata for every tenant API key visible to the caller. Results are always scoped to the caller's tenant; `key_hash` is never returned. - [Mint a tenant API key](https://docs.agentsfleet.net/api-reference/api-keys/mint-a-tenant-api-key.md): Creates a new `zmb_t_`-prefixed tenant admin key. **The raw key is returned once.** Only the SHA-256 hash is persisted — the key cannot be retrieved again. Requires operator (or admin) role. - [Revoke a tenant API key](https://docs.agentsfleet.net/api-reference/api-keys/revoke-a-tenant-api-key.md): Partial lifecycle update. Body must be `{"active": false}` — re-activation is not supported; mint a new key instead. Sets `revoked_at` and `updated_at`. - [Approve a pending gate](https://docs.agentsfleet.net/api-reference/approvals/approve-a-pending-gate.md): Resolves the gate to "approved" and wakes the worker thread blocked on the gate. Funnels through the channel-agnostic resolve core that Slack callbacks and the auto-timeout sweeper share — first writer wins; concurrent resolvers receive 409 with the original outcome and resolver attribution. - [Deny a pending gate](https://docs.agentsfleet.net/api-reference/approvals/deny-a-pending-gate.md): Resolves the gate to "denied" and wakes the worker thread. The worker treats `denied` as "do not execute the proposed tool call". Same dedup semantics as `:approve`. - [Get a single approval gate by id](https://docs.agentsfleet.net/api-reference/approvals/get-a-single-approval-gate-by-id.md): Drives the dashboard detail page. 404 when the gate doesn't exist or belongs to a different workspace. - [List pending approval gates for a workspace](https://docs.agentsfleet.net/api-reference/approvals/list-pending-approval-gates-for-a-workspace.md): Returns approval gates oldest-first (oldest is most urgent). Each row surfaces the agent's proposed action, gathered evidence, blast-radius assessment, and timeout countdown. Filter by zombie, gate kind, or status. Cursor pagination over (requested_at, id) so concurrent inserts don't cause silent sk… - [Poll auth session status](https://docs.agentsfleet.net/api-reference/authentication/poll-auth-session-status.md): Step 2 of the CLI device flow. The CLI polls this endpoint with the `session_id` returned from `POST /v1/auth/sessions`. The response surfaces only the public material the CLI needs to proceed: `status`, `cli_public_key`, `token_name`, `expires_at_ms`. - [Start a CLI login session](https://docs.agentsfleet.net/api-reference/authentication/start-a-cli-login-session.md): Step 1 of the CLI device flow. The CLI generates an ephemeral P-256 ECDH keypair and POSTs the public key plus an operator-facing `token_name` label. The server allocates a UUIDv7 session_id and stores `{cli_public_key, token_name, status: pending, expires_at_ms}` in Redis with a 5-minute TTL. The C… - [Tenant billing snapshot](https://docs.agentsfleet.net/api-reference/billing/tenant-billing-snapshot.md): Returns the tenant-scoped billing row created at signup. The single row carries the credit-pool balance shared across every workspace the tenant owns. Two-rate metering in nanos: events are free (both postures); stages cost $0.001 (platform) or $0.0001 (self-managed). Debited by the worker as zombie… - [Tenant credit-pool charges](https://docs.agentsfleet.net/api-reference/billing/tenant-credit-pool-charges.md): Returns the newest-first slice of `zombie_execution_telemetry` rows for the caller's tenant. Two rows per event under the credit-pool model (`charge_type` ∈ `receive`, `stage`); the dashboard groups them by `event_id` to show one line per event with both charges. Limit-only paging is sufficient for… - [Delete a credential from the workspace vault](https://docs.agentsfleet.net/api-reference/credentials/delete-a-credential-from-the-workspace-vault.md): Idempotent — returns 204 whether or not the credential existed. - [List credentials stored for a workspace](https://docs.agentsfleet.net/api-reference/credentials/list-credentials-stored-for-a-workspace.md): Returns credential names. Values are never returned — they live encrypted in `vault.secrets`. - [Store a credential in the workspace vault](https://docs.agentsfleet.net/api-reference/credentials/store-a-credential-in-the-workspace-vault.md): Plaintext is the canonical-stringified form of the supplied JSON object, envelope-encrypted with the KEK (master key v1) and persisted to `vault.secrets`. The raw value is never stored unencrypted and never returned. `data` must be a non-empty JSON object whose stringified form is ≤ 4 KiB; bare stri… - [Error Codes](https://docs.agentsfleet.net/api-reference/error-codes.md): All error responses from zombied use RFC 7807 (application/problem+json). This page lists every error code, its HTTP status, and common causes. - [Liveness check](https://docs.agentsfleet.net/api-reference/health/liveness-check.md): Returns 200 as long as the process is alive and able to serve HTTP. Does not probe dependencies — use /readyz for readiness (database + queue). - [Prometheus metrics](https://docs.agentsfleet.net/api-reference/health/prometheus-metrics.md): Returns Prometheus-format metrics for scraping by monitoring infrastructure. - [Readiness probe](https://docs.agentsfleet.net/api-reference/health/readiness-probe.md): Kubernetes-style readiness probe. Returns 200 when both the database and the Redis queue are reachable; returns 503 fail-closed if either dependency is degraded. - [List integration grants for a zombie](https://docs.agentsfleet.net/api-reference/integration-grants/list-integration-grants-for-a-zombie.md): Returns pending, approved, and revoked grants, newest first. - [Request a new integration grant](https://docs.agentsfleet.net/api-reference/integration-grants/request-a-new-integration-grant.md): Called by a zombie (or on its behalf) to request permission to use a third-party integration (e.g. Slack, Gmail). Creates a pending grant that a human approves via the grant-approval webhook. - [Revoke an integration grant](https://docs.agentsfleet.net/api-reference/integration-grants/revoke-an-integration-grant.md): Immediately revokes a grant. A revoked grant blocks the zombie on its next execute attempt against the affected service. - [API Reference](https://docs.agentsfleet.net/api-reference/introduction.md): usezombie Control Plane API — deploy, observe, and control agents programmatically. - [List or search memory entries for a zombie](https://docs.agentsfleet.net/api-reference/memory/list-or-search-memory-entries-for-a-zombie.md): Returns memory entries for the zombie. Without `query` this lists most-recent entries (optionally filtered by `category`). With `query`, performs case-insensitive LIKE search across both `key` and `content` (LIKE metacharacters in `query` are escaped — a query of `%` does NOT return every entry). - [Read tenant LLM provider configuration](https://docs.agentsfleet.net/api-reference/tenant/read-tenant-llm-provider-configuration.md): Returns the tenant's persisted provider config — mode, provider name, model, context cap, and (under self-managed) the user-named credential_ref. The api_key is never serialised. Tenants with no row receive a synthesised platform default. - [Reset tenant LLM provider to platform default](https://docs.agentsfleet.net/api-reference/tenant/reset-tenant-llm-provider-to-platform-default.md): Equivalent to `PUT {mode: "platform"}`. Writes the explicit mode=platform row so the dashboard can distinguish "never configured" from "explicitly reset". - [Set tenant LLM provider posture](https://docs.agentsfleet.net/api-reference/tenant/set-tenant-llm-provider-posture.md): Eager-validates and UPSERTs the tenant_providers row. Validation order: body shape → credential_ref required (mode=self_managed) → credential_not_found → credential_data_malformed → model_not_in_caps_catalogue → UPSERT. Stored `provider` is read from the credential JSON; effective `model` is the bod… - [Approve or reject an integration grant request](https://docs.agentsfleet.net/api-reference/webhooks/approve-or-reject-an-integration-grant-request.md): Human-in-the-loop approval webhook for integration grant requests (Slack, GitHub, etc.). HMAC-signed. - [Ingest a GitHub Actions webhook](https://docs.agentsfleet.net/api-reference/webhooks/ingest-a-github-actions-webhook.md): GitHub `workflow_run` webhook receiver. Body is HMAC-SHA256 signed (X-Hub-Signature-256) against the workspace's `zombie:github` credential `webhook_secret` field. Only `action=completed` with `conclusion=failure` is XADDed to the zombie event stream; other events return 204. Idempotency keyed on `X… - [Receive a Svix-signed webhook (Clerk events)](https://docs.agentsfleet.net/api-reference/webhooks/receive-a-svix-signed-webhook-clerk-events.md): Ingress endpoint for Svix-signed webhooks (e.g. Clerk user lifecycle events). Signature is verified by the webhook auth middleware against the workspace's Svix secret before the handler runs. Body shape is event-specific and defined by the upstream issuer; the server validates the envelope and dispa… - [Resolve a zombie approval gate](https://docs.agentsfleet.net/api-reference/webhooks/resolve-a-zombie-approval-gate.md): Called by a human (via email link or Slack action) to approve or reject a paused zombie. Body is HMAC-signed by the issuer; the signature is verified against the zombie's webhook secret. - [Create a workspace](https://docs.agentsfleet.net/api-reference/workspaces/create-a-workspace.md): Creates a new workspace in the caller's tenant. All fields are optional — an empty body provisions a workspace with a server-assigned Heroku-style name. - [List a workspace's aggregate event history](https://docs.agentsfleet.net/api-reference/workspaces/list-a-workspaces-aggregate-event-history.md): Cursor-paginated list of operator-visible events across every zombie in the workspace, newest first. Replaces the deleted activity endpoint. Optional `zombie_id` filter narrows to one zombie. Same query shape as the per-zombie endpoint - `actor` glob, `since=` (duration or RFC 3339), and a `cursor`… - [List every workspace the caller's tenant owns](https://docs.agentsfleet.net/api-reference/workspaces/list-every-workspace-the-callers-tenant-owns.md): Returns the full set of workspaces owned by the caller's tenant. Backs the dashboard workspace switcher: a user can switch to any workspace in this list without re-issuing the JWT, because workspace authorisation is tenant-scoped. No pagination — a tenant's workspace count is bounded and small in pr… - [Create a zombie](https://docs.agentsfleet.net/api-reference/zombies/create-a-zombie.md): Creates a new zombie from a TRIGGER.md (deployment manifest) and a SKILL.md (agent instructions). The server is the single parser of TRIGGER.md frontmatter — `name` and the persisted `config_json` are derived server-side. The CLI (`zombiectl install --from `) sends the two markdown files as ra… - [Deliver an inbound webhook event to a Zombie](https://docs.agentsfleet.net/api-reference/zombies/deliver-an-inbound-webhook-event-to-a-zombie.md): Delivers an inbound event to the Zombie identified by `zombie_id`. The Zombie is looked up by primary key — no JSONB traversal, no source-name uniqueness required. The body MUST be HMAC-SHA256 signed with the workspace credential keyed by the Zombie's `trigger.source` (e.g. vault row `zombie:linear`… - [Hard-delete a zombie and cascade its history](https://docs.agentsfleet.net/api-reference/zombies/hard-delete-a-zombie-and-cascade-its-history.md): Hard-purge a zombie. Removes the `core.zombies` row and cascades every per-zombie record across PG schemas (events, telemetry, sessions, approval gates, integration grants, agent keys, memory entries) plus best-effort DELs the Redis event stream. - [List a zombie's event history](https://docs.agentsfleet.net/api-reference/zombies/list-a-zombies-event-history.md): Cursor-paginated list of operator-visible events for one zombie, newest first. Each row is a `core.zombie_events` entry — the durable record produced by the worker write path on every steer, webhook, cron, or continuation event. Filter by actor glob (e.g. `steer:*`, `webhook:github`) or `since=` (Go… - [List zombies in a workspace](https://docs.agentsfleet.net/api-reference/zombies/list-zombies-in-a-workspace.md): Returns zombies the caller has access to in the given workspace. Keyset paginated over `(created_at DESC, id DESC)`. Omit `cursor` for the first page; pass the response `cursor` back verbatim to fetch the next page. `cursor` is `null` when the last page has been reached. Response envelope follows th… - [Post a chat message to a zombie](https://docs.agentsfleet.net/api-reference/zombies/post-a-chat-message-to-a-zombie.md): Build an EventEnvelope with `actor=steer:` / `event_type=chat` and XADD it onto `zombie:{id}:events`. The Redis stream entry id IS the canonical event_id and is returned to the caller so SSE consumers can filter frames for the message they just sent. Same single-ingress contract as webhook and… - [Subscribe to a zombie's live activity stream (SSE)](https://docs.agentsfleet.net/api-reference/zombies/subscribe-to-a-zombies-live-activity-stream-sse.md): Server-Sent Events tail of the Redis pub/sub channel `zombie:{id}:activity`. The server fans the channel out from one shared subscription and forwards each PUBLISH frame as one SSE event with id (per-connection monotonic counter), event (frame kind), and data (JSON payload) lines. Frame kinds - even… - [Update zombie config or drive its status FSM](https://docs.agentsfleet.net/api-reference/zombies/update-zombie-config-or-drive-its-status-fsm.md): Partial update of a zombie. Body fields are optional and presence-based: - [Budgets and cost control](https://docs.agentsfleet.net/billing/budgets.md): Per-agent dollar ceilings, tenant-wide spend caps, and how debits work. - [Plans](https://docs.agentsfleet.net/billing/plans.md): One credit-based model — the starter credit and how per-second run billing works. - [Changelog](https://docs.agentsfleet.net/changelog.md): Stay up to date with the latest usezombie product updates, new features, platform improvements, and bug fixes. - [Configuration](https://docs.agentsfleet.net/cli/configuration.md): Configuration precedence and environment variables. - [Global flags](https://docs.agentsfleet.net/cli/flags.md): Flags available on all zombiectl commands. - [Install](https://docs.agentsfleet.net/cli/install.md): Install the zombiectl CLI. - [Command reference](https://docs.agentsfleet.net/cli/zombiectl.md): Complete zombiectl command reference. - [Key concepts](https://docs.agentsfleet.net/concepts.md): The four nouns, the tool bridge, and how a run works. - [How long does a run take?](https://docs.agentsfleet.net/concepts/context-lifecycle.md): When a run opens, when it stops, and the three knobs you'd ever tune. - [Your deploy failed. The agent already knows why.](https://docs.agentsfleet.net/index.md): usezombie is an open runtime that owns operational outcomes — an agent wakes on your events, gathers evidence from your own systems, posts a diagnosis with proof, and keeps a replayable log of every move it made. - [Memory](https://docs.agentsfleet.net/memory.md): How an agent remembers across events — four categories, four tools, when to use each. - [Quickstart](https://docs.agentsfleet.net/quickstart.md): Install zombiectl, run /usezombie-install-platform-ops, see a real diagnosis in Slack. - [Managing workspaces](https://docs.agentsfleet.net/workspaces/managing.md): Create, list, and remove workspaces. - [Workspaces](https://docs.agentsfleet.net/workspaces/overview.md): What a workspace is and how it relates to your tenant. - [Authoring an agent](https://docs.agentsfleet.net/zombies/authoring.md): The `SKILL.md` and `TRIGGER.md` file pair — how an agent is defined end-to-end. - [Workspace credentials](https://docs.agentsfleet.net/zombies/credentials.md): The vault your agents read from — and why the agent never sees the raw secret. - [Installing an agent](https://docs.agentsfleet.net/zombies/install.md): What `zombiectl install --from ` does and how to invoke it. - [Agents](https://docs.agentsfleet.net/zombies/overview.md): What an agent is, the lifecycle it moves through, and how it relates to your workspace. - [Starting, observing, and stopping](https://docs.agentsfleet.net/zombies/running.md): The lifecycle commands — install, status, logs, events, steer, stop, resume, kill, delete. - [Templates](https://docs.agentsfleet.net/zombies/templates.md): The shipped sample directory — pre-built agents you can install with one command. - [Tools catalogue](https://docs.agentsfleet.net/zombies/tools.md): Every tool an agent can declare in `TRIGGER.md`, what it does, and when to reach for it. - [Troubleshooting](https://docs.agentsfleet.net/zombies/troubleshooting.md): Common failure modes, the diagnostic command for each, and the fix. - [Webhooks](https://docs.agentsfleet.net/zombies/webhooks.md): How external systems deliver events to your agent, and how the platform authenticates them. ## OpenAPI Specs - [openapi](https://raw.githubusercontent.com/usezombie/usezombie/main/public/openapi.json) ## Optional - [Website](https://usezombie.com) - [GitHub](https://github.com/usezombie/usezombie) - [Contributing](https://github.com/usezombie/usezombie#contributing)