# Cadenya ## Docs - [API Reference](https://cadenya.com/docs/api-reference.md): Complete reference for the Cadenya API, generated from the OpenAPI specification. - [Get the current account](https://cadenya.com/docs/api-reference/accountservice/retrieves-the-current-account-for-the-token-accessing-the-api.md): The account behind your token, and the three server-managed secrets that live on it. - [Rotates the challenge token for the account](https://cadenya.com/docs/api-reference/accountservice/rotates-the-challenge-token-for-the-account.md): Rotates the challenge token sent in the X-Cadenya-Challenge-Token header on MCP tools/list requests. Returns only the new token. - [Rotates the webhook signing key for the account](https://cadenya.com/docs/api-reference/accountservice/rotates-the-webhook-signing-key-for-the-account.md): Rotates the webhook signing key for the account. Returns only the new key. - [Archive a schedule](https://cadenya.com/docs/api-reference/agentscheduleservice/archive-a-schedule.md): Retire a schedule for good. One-way: an archived schedule cannot come back. - [Create a schedule](https://cadenya.com/docs/api-reference/agentscheduleservice/create-a-new-schedule.md): Fire an objective on a cadence. Calendar rules for wall-clock times, interval rules for fixed durations, and a skip policy so runs never stack. - [Delete a schedule](https://cadenya.com/docs/api-reference/agentscheduleservice/delete-a-schedule.md): Remove a schedule permanently, in any state. - [Get a schedule](https://cadenya.com/docs/api-reference/agentscheduleservice/get-a-schedule-by-id.md): One schedule's rules and its run history. The read for 'is this firing, and what did it do?' - [List schedules](https://cadenya.com/docs/api-reference/agentscheduleservice/list-schedules.md): Every schedule on an agent, with its state and next fire time. The schedules dashboard read. - [Pause a schedule](https://cadenya.com/docs/api-reference/agentscheduleservice/pause-a-schedule.md): Stop a schedule firing without losing it. Resume when you are ready. - [Resume a schedule](https://cadenya.com/docs/api-reference/agentscheduleservice/resume-a-schedule.md): Turn a paused schedule back on. It picks up its cadence from now. - [Update a schedule](https://cadenya.com/docs/api-reference/agentscheduleservice/update-a-schedule.md): Change a schedule's cadence, message, or overlap policy. State is not one of them. - [Archive an agent](https://cadenya.com/docs/api-reference/agentservice/archive-an-agent.md): Transitions an agent to STATE_ARCHIVED. Archived agents are hidden from list results and cannot be used for objectives; active schedules are paused. - [Create an agent](https://cadenya.com/docs/api-reference/agentservice/create-a-new-agent.md): The role, not the resume. An agent holds the contract its objectives obey: input schema, output schema, memory, and how variations compete. - [Delete an agent](https://cadenya.com/docs/api-reference/agentservice/delete-an-agent.md): Remove an agent and its variations. Objectives already running keep going. - [Get an agent](https://cadenya.com/docs/api-reference/agentservice/get-an-agent-by-id.md): The agent's shell: its name, mode, and state. The real configuration lives in its variations. - [List agents](https://cadenya.com/docs/api-reference/agentservice/list-agents.md): Every agent in the workspace, filterable by state. Archived ones are hidden until you ask. - [List feedback for an agent](https://cadenya.com/docs/api-reference/agentservice/list-feedback-for-an-agent.md): Every score the agent has earned, across all its objectives, in one flat stream. - [List webhook deliveries](https://cadenya.com/docs/api-reference/agentservice/list-webhook-deliveries.md): The delivery log for an agent's webhooks: what Cadenya sent, what your endpoint answered, and how long it took. - [Publish an agent](https://cadenya.com/docs/api-reference/agentservice/publish-an-agent.md): The gate between a draft agent and one that can run. Nothing happens until you publish. - [Unarchive an agent](https://cadenya.com/docs/api-reference/agentservice/unarchive-an-agent.md): Transitions an archived agent back to STATE_DRAFT. Publish the agent again to make it available for objectives. - [Unpublish an agent](https://cadenya.com/docs/api-reference/agentservice/unpublish-an-agent.md): Take a live agent offline: back to draft, no new objectives, schedules stop firing. - [Update an agent](https://cadenya.com/docs/api-reference/agentservice/update-an-agent.md): Change the agent shell: name, selection mode, episodic memory, output schema. A published agent stays published. - [Assign a tool, tool set, or sub-agent](https://cadenya.com/docs/api-reference/agentvariationservice/add-an-assignment-to-a-variation.md): Give a variation a capability. One call, one target: a single tool, a whole tool set, or another agent. - [Attach a memory layer to a variation](https://cadenya.com/docs/api-reference/agentvariationservice/attach-a-memory-layer-to-a-variation.md): Add a memory layer to a variation's cascade at a position you choose. - [Create a variation](https://cadenya.com/docs/api-reference/agentvariationservice/create-a-new-variation.md): A variation is one concrete setup of an agent: model, prompt, tools, compaction, and the limits that keep a runaway objective from running forever. - [Delete a variation](https://cadenya.com/docs/api-reference/agentvariationservice/delete-a-variation.md): Remove one variation and its assignments. Mind the last one on a published agent. - [Get a variation](https://cadenya.com/docs/api-reference/agentvariationservice/get-a-variation-by-id.md): One variation's full configuration and its live score, in a single read. - [List variations](https://cadenya.com/docs/api-reference/agentvariationservice/list-variations.md): Every variation on an agent, with the score that decides which one runs. - [Remove a memory layer from a variation](https://cadenya.com/docs/api-reference/agentvariationservice/remove-a-memory-layer-assignment-from-a-variation.md): Detach a layer from one variation. The layer itself is untouched. - [Remove an assignment from a variation](https://cadenya.com/docs/api-reference/agentvariationservice/remove-an-assignment-from-a-variation.md): Unwire a tool set or sub-agent from a variation. Memory layers have their own endpoint. - [Update a variation](https://cadenya.com/docs/api-reference/agentvariationservice/update-a-variation.md): Change a prompt, a model, a threshold. The update merges, which means a zero value needs updateMask. - [Reposition a memory layer](https://cadenya.com/docs/api-reference/agentvariationservice/update-a-variations-memory-layer-assignment.md): Change a layer's position in a variation's cascade without detaching it. - [Create a new AI provider key](https://cadenya.com/docs/api-reference/aiproviderkeyservice/create-a-new-ai-provider-key.md): Creates a new customer-provided AI provider key in the workspace - [Delete an AI provider key](https://cadenya.com/docs/api-reference/aiproviderkeyservice/delete-an-ai-provider-key.md): Deletes an AI provider key from the workspace - [Get an AI provider key by ID](https://cadenya.com/docs/api-reference/aiproviderkeyservice/get-an-ai-provider-key-by-id.md): Retrieves an AI provider key by ID from the workspace - [List AI provider keys](https://cadenya.com/docs/api-reference/aiproviderkeyservice/list-ai-provider-keys.md): Lists all customer-provided AI provider keys in the workspace - [Update an AI provider key](https://cadenya.com/docs/api-reference/aiproviderkeyservice/update-an-ai-provider-key.md): Updates an AI provider key's name or key value in the workspace - [Create an API key](https://cadenya.com/docs/api-reference/apikeyservice/create-a-new-api-key.md): Mint a workspace-scoped credential. The response carries the raw token, and no later read ever shows it again. - [Delete an API key](https://cadenya.com/docs/api-reference/apikeyservice/delete-an-api-key.md): Remove a key for good. Its token dies with it, and there is no undo. - [Disable an API key](https://cadenya.com/docs/api-reference/apikeyservice/disable-an-api-key.md): The kill switch. A disabled key fails auth on every endpoint, and enable brings it back intact. - [Enable an API key](https://cadenya.com/docs/api-reference/apikeyservice/enable-an-api-key.md): Turn a disabled key back on. Its existing token authenticates again, unchanged. - [Get an API key](https://cadenya.com/docs/api-reference/apikeyservice/get-an-api-key-by-id.md): One key's metadata, state, and scopes. The token is not here, by design. - [List API keys](https://cadenya.com/docs/api-reference/apikeyservice/list-api-keys.md): Every API key in a workspace. Tokens never appear here: the raw value shows once at creation and once on rotation. - [Rotate an API key](https://cadenya.com/docs/api-reference/apikeyservice/rotate-an-api-key.md): Issue a fresh token and invalidate every previous one, in a single call. Also the only way to see a token after creation. - [Update an API key](https://cadenya.com/docs/api-reference/apikeyservice/update-an-api-key.md): Rename a key, rewrite its description, or change its scopes in place. The token stays the same. - [Disable the global API key](https://cadenya.com/docs/api-reference/globalapikeyservice/disable-the-global-api-key.md): The account-wide kill switch. The global key cannot be deleted, but it can be turned off. - [Enable the global API key](https://cadenya.com/docs/api-reference/globalapikeyservice/enable-the-global-api-key.md): Turn the disabled global key back on. Its token authenticates again in every workspace, unchanged. - [Get the global API key](https://cadenya.com/docs/api-reference/globalapikeyservice/get-the-global-api-key.md): The account's system-provisioned key, the one credential that works in every workspace. - [Rotate the global API key](https://cadenya.com/docs/api-reference/globalapikeyservice/rotate-the-global-api-key.md): Reissue the account-wide credential. Every previous token dies, in every workspace at once. - [Create a memory entry](https://cadenya.com/docs/api-reference/memoryservice/create-a-new-memory-entry.md): One keyed value inside a memory layer. The agent reads it by key, on demand, with get_memory. - [Create a memory layer](https://cadenya.com/docs/api-reference/memoryservice/create-a-new-memory-layer.md): Give an agent knowledge it pulls on demand. Skills layers advertise what they hold; episodic layers let the agent write notes to itself. - [Delete a memory entry](https://cadenya.com/docs/api-reference/memoryservice/delete-a-memory-entry.md): Remove one keyed entry from a layer. Address it by id, not by key. - [Delete a memory layer](https://cadenya.com/docs/api-reference/memoryservice/delete-a-memory-layer.md): Remove a layer and its entries. Detach it from every variation first. - [Get a memory entry](https://cadenya.com/docs/api-reference/memoryservice/get-a-memory-entry-by-id.md): The one read that returns an entry's content. The list omits it; this hands it back. - [Get a memory layer](https://cadenya.com/docs/api-reference/memoryservice/get-a-memory-layer-by-id.md): One layer's configuration and entry count. The entries themselves live on a separate read. - [List memory entries](https://cadenya.com/docs/api-reference/memoryservice/list-memory-entries.md): Browse a layer by key prefix or search its keys and descriptions. Bodies stay behind. - [List memory layers](https://cadenya.com/docs/api-reference/memoryservice/list-memory-layers.md): Every memory layer in a workspace, the ones you author and the ones agents write for themselves. - [Update a memory entry](https://cadenya.com/docs/api-reference/memoryservice/update-a-memory-entry.md): Edit an entry's content, description, or its key. The key is mutable. - [Update a memory layer](https://cadenya.com/docs/api-reference/memoryservice/update-a-memory-layer.md): Rename a layer, or change its TTL. The type is fixed, and system-managed layers are off limits. - [Disable a model](https://cadenya.com/docs/api-reference/modelservice/disable-a-model.md): Transitions a model to STATE_DISABLED. Fails while agent variations are still provisioned on the model; use :swapModelOnVariations to move them first. - [Enable a model](https://cadenya.com/docs/api-reference/modelservice/enable-a-model.md): Transitions a model to STATE_ENABLED, making it available for agent variations in the workspace - [Get a model](https://cadenya.com/docs/api-reference/modelservice/get-a-model-by-id.md): One model's context window, price, and whether it is enabled. Skip the prefix filter and fetch it directly. - [List models](https://cadenya.com/docs/api-reference/modelservice/list-models.md): What your workspace can run, how much context each model holds, and what it costs per million tokens. - [Swap models on variations](https://cadenya.com/docs/api-reference/modelservice/swap-models-on-agent-variations.md): Move every agent variation off one model and onto another, workspace-wide, in one call. - [Objective assistant message event](https://cadenya.com/docs/api-reference/objective-assistant-message-event.md): Triggered when an assistant message event occurs in an objective - [Objective error event](https://cadenya.com/docs/api-reference/objective-error-event.md): Triggered when an error occurs during objective execution - [Objective memory read event](https://cadenya.com/docs/api-reference/objective-memory-read-event.md): Triggered when the agent loads a memory entry by resolving a key against the objective's memory stack - [Objective sub-agent spawned event](https://cadenya.com/docs/api-reference/objective-sub-agent-spawned-event.md): Triggered when a sub-agent is spawned from a parent objective - [Objective sub-agent updated event](https://cadenya.com/docs/api-reference/objective-sub-agent-updated-event.md): Triggered when a sub-agent objective's status changes (e.g. running, completed, failed, cancelled) - [Objective tool approval requested event](https://cadenya.com/docs/api-reference/objective-tool-approval-requested-event.md): Triggered when a tool call requires approval. Use the ApproveToolCall or DenyToolCall RPCs to respond. - [Objective tool approved event](https://cadenya.com/docs/api-reference/objective-tool-approved-event.md): Triggered when a tool call is approved via the ApproveToolCall RPC - [Objective tool called event](https://cadenya.com/docs/api-reference/objective-tool-called-event.md): Triggered when a tool call is executed in an objective - [Objective tool denied event](https://cadenya.com/docs/api-reference/objective-tool-denied-event.md): Triggered when a tool call is denied via the DenyToolCall RPC - [Objective tool error event](https://cadenya.com/docs/api-reference/objective-tool-error-event.md): Triggered when a tool call encounters an error during execution - [Objective tool result event](https://cadenya.com/docs/api-reference/objective-tool-result-event.md): Triggered when a tool result event occurs in an objective - [Objective user message event](https://cadenya.com/docs/api-reference/objective-user-message-event.md): Triggered when a user message event occurs in an objective - [Stream objective events](https://cadenya.com/docs/api-reference/objectiveeventstreamsservice/stream-objective-events.md): Watch an objective work in real time over server-sent events: every message, tool call, and approval request as it happens. - [Approve a tool call](https://cadenya.com/docs/api-reference/objectiveservice/approve-a-tool-call.md): Release a tool call that is parked waiting for human approval. Deny it instead, with a memo, and the agent reads the memo and picks another path. - [Cancel an objective](https://cadenya.com/docs/api-reference/objectiveservice/cancel-an-objective.md): Stop a running objective. Cancellation is asynchronous. - [Compact an objective](https://cadenya.com/docs/api-reference/objectiveservice/compact-an-objective.md): Summarize a conversation and start a fresh context window on demand, before the threshold forces it. - [Continue an objective](https://cadenya.com/docs/api-reference/objectiveservice/continue-an-objective.md): Send the next turn to an objective that answered and is waiting. This is how an objective becomes a conversation. - [Create an objective](https://cadenya.com/docs/api-reference/objectiveservice/create-a-new-objective.md): Hand a task to an agent. The objective runs on its own: calling tools, reading memory, looping until it finishes or stops for input. - [Deny a tool call](https://cadenya.com/docs/api-reference/objectiveservice/deny-a-tool-call.md): Refuse an action the agent wanted to take, and tell it why. The memo is the whole feature. - [Get an objective](https://cadenya.com/docs/api-reference/objectiveservice/get-an-objective-by-id.md): The state of one run. What to poll, what it does not tell you, and where the answer lives. - [Get an objective task by ID](https://cadenya.com/docs/api-reference/objectiveservice/get-an-objective-task-by-id.md): Retrieves a task by ID from an objective - [Get a tool call](https://cadenya.com/docs/api-reference/objectiveservice/get-an-objective-tool-call-by-id.md): One tool call, with the result the tool returned. The only single-call endpoint that hydrates a result body. - [Get objective diagnostics](https://cadenya.com/docs/api-reference/objectiveservice/get-objective-context-diagnostics.md): Where an objective's context window is going, component by component. The endpoint to reach for when a run costs more than it should. - [List feedback for an objective](https://cadenya.com/docs/api-reference/objectiveservice/list-feedback-for-an-objective.md): Every score left on one objective, and who left it. An objective can carry more than one. - [List objective context windows](https://cadenya.com/docs/api-reference/objectiveservice/list-objective-context-windows.md): Every window an objective has burned through, with the token counts and the summary each one handed to the next. - [List objective events](https://cadenya.com/docs/api-reference/objectiveservice/list-objective-events.md): The full, immutable transcript of an objective: every message, tool call, and result, with the bodies the stream leaves out. - [List objective tasks](https://cadenya.com/docs/api-reference/objectiveservice/list-objective-tasks.md): Lists all tasks for an objective - [List objective tool calls](https://cadenya.com/docs/api-reference/objectiveservice/list-objective-tool-calls.md): Every tool an objective invoked, what it was called with, and whether it ran. The endpoint a bare-tool harness polls. - [List objective tools](https://cadenya.com/docs/api-reference/objectiveservice/list-objective-tools.md): The tools an agent has in one run, resolved and frozen. Not the same as the tool set's rows. - [List objectives](https://cadenya.com/docs/api-reference/objectiveservice/list-objectives.md): Find the runs you care about: by agent, by state, by parent, or by the schedule that created them. - [Set a bare tool call's content](https://cadenya.com/docs/api-reference/objectiveservice/set-a-bare-tool-calls-content.md): Answer a tool call yourself. Your code becomes the tool runtime, and Cadenya never needs a route into your network. - [Submit feedback for an objective](https://cadenya.com/docs/api-reference/objectiveservice/submit-feedback-for-an-objective.md): Score a finished objective from -1.0 to 1.0. Under Feedback Driven selection, that score teaches the agent which variation to reach for next. - [Get the current profile](https://cadenya.com/docs/api-reference/profilesservice/retrieves-the-profile-for-the-credentials-accessing-the-api.md): Which identity is holding this token: a person, an API key, or the system. - [Search tools and tool sets](https://cadenya.com/docs/api-reference/searchservice/search-for-tools-or-tool-sets.md): Find a tool, a tool set, or an agent by name prefix. One query, three buckets of results. - [Erase a tenant](https://cadenya.com/docs/api-reference/tenantservice/erase-a-tenant.md): Destroy a tenant, its subjects, every objective it ever ran, and its widget sessions. Irreversible. - [Get a tenant by ID](https://cadenya.com/docs/api-reference/tenantservice/get-a-tenant-by-id.md): One tenant, by canonical ID or by the external_id you asserted it under. - [List a tenant's subjects](https://cadenya.com/docs/api-reference/tenantservice/list-a-tenants-subjects.md): The people asserted under one tenant. Subjects have no workspace-wide list, and that is by design. - [List tenants](https://cadenya.com/docs/api-reference/tenantservice/list-tenants.md): Every tenant asserted in a workspace, newest first. The census of who your agents have worked for. - [Archive a tool set](https://cadenya.com/docs/api-reference/toolservice/archive-a-tool-set.md): Retire a tool set without deleting it. Reversible, and allowed even while agents still assign it. - [Create a new tool](https://cadenya.com/docs/api-reference/toolservice/create-a-new-tool.md): Creates a new tool in the tool set - [Create a tool set](https://cadenya.com/docs/api-reference/toolservice/create-a-new-tool-set.md): Point a tool set at an MCP server, an OpenAPI spec, an HTTP API, or nothing at all. Cadenya syncs the tools it finds. - [Create a tool set secret](https://cadenya.com/docs/api-reference/toolservice/create-a-new-tool-set-secret.md): Store a credential once. Reference it as ${NAME} in adapter headers, and it resolves at call time and never comes back. - [Delete a tool](https://cadenya.com/docs/api-reference/toolservice/delete-a-tool.md): Deletes a tool in the tool set - [Delete a tool set](https://cadenya.com/docs/api-reference/toolservice/delete-a-tool-set.md): Permanently remove a tool set. It refuses while any variation still assigns it. - [Delete a tool set secret](https://cadenya.com/docs/api-reference/toolservice/delete-a-tool-set-secret.md): Remove a tool-set-scoped secret. A same-named workspace secret takes over. - [Get a tool](https://cadenya.com/docs/api-reference/toolservice/get-a-tool-by-id.md): One tool's full definition: its parameters, its approval flag, and the name the model sees. - [Get a tool set](https://cadenya.com/docs/api-reference/toolservice/get-a-tool-set-by-id.md): One tool set: its adapter, its state, and the counts that tell you whether it is healthy. - [Get a tool set secret](https://cadenya.com/docs/api-reference/toolservice/get-a-tool-set-secret-by-id.md): Read a tool-set-scoped secret's metadata. The value stays hidden. - [Get consumed OpenAPI spec](https://cadenya.com/docs/api-reference/toolservice/get-consumed-openapi-spec.md): Retrieves the current OpenAPI specification JSON that has been consumed by the tool set. Only applicable to tool sets using the OpenAPI adapter. - [List tool set events](https://cadenya.com/docs/api-reference/toolservice/list-tool-set-events.md): The sync history of a tool set. The only way to know a sync landed, and whether it landed whole. - [List tool set secrets](https://cadenya.com/docs/api-reference/toolservice/list-tool-set-secrets.md): Every secret scoped to one tool set. Values redacted. - [List tool set usage](https://cadenya.com/docs/api-reference/toolservice/list-tool-set-usage.md): The agent variations that use a tool set. Answers "what breaks if I delete this?" before you find out. - [List tool sets](https://cadenya.com/docs/api-reference/toolservice/list-tool-sets.md): Every tool set in a workspace, with a live tool count. Archived ones stay hidden unless you ask. - [List tools](https://cadenya.com/docs/api-reference/toolservice/list-tools.md): The tools inside one tool set, with the name the model sees and four ways to filter. - [Omit a tool](https://cadenya.com/docs/api-reference/toolservice/omit-a-tool.md): Hide a tool from your agents without deleting it. For hand-authored tool sets. Synced sets curate with filters. - [Restore a tool](https://cadenya.com/docs/api-reference/toolservice/restore-a-tool.md): Bring an omitted tool back into circulation. The inverse of omit. - [Unarchive a tool set](https://cadenya.com/docs/api-reference/toolservice/unarchive-a-tool-set.md): Transitions an archived tool set back to STATE_ACTIVE. Managed tool sets resume syncing on their next cycle and their tools become available to objectives again. - [Update a tool](https://cadenya.com/docs/api-reference/toolservice/update-a-tool.md): Updates a tool in the tool set - [Update a tool set](https://cadenya.com/docs/api-reference/toolservice/update-a-tool-set.md): Change the name, labels, or adapter. Editing the adapter is also how you force a re-sync. - [Update a tool set secret](https://cadenya.com/docs/api-reference/toolservice/update-a-tool-set-secret.md): Rotate a tool-set-scoped secret in place. You cannot read it back to confirm. - [Create an upload](https://cadenya.com/docs/api-reference/uploadservice/create-an-upload.md): The two-step path for a large payload: ask for a signed URL, PUT the bytes, then reference the upload by ID. - [Get an upload](https://cadenya.com/docs/api-reference/uploadservice/get-an-upload-by-id.md): Poll an upload's status before you reference it, or re-fetch its signed URL to retry the PUT. - [Archive a widget](https://cadenya.com/docs/api-reference/widgetservice/archive-a-widget.md): Take a widget offline without losing its hostname. Sessions are revoked; the label waits for unarchive. - [Create a widget](https://cadenya.com/docs/api-reference/widgetservice/create-a-new-widget.md): Bind an agent to a hostname. The server mints the DNS label; you bring the agent and the origin allowlist. - [Delete a widget](https://cadenya.com/docs/api-reference/widgetservice/delete-a-widget.md): Gone for good. The hostname stops serving and every session on the widget is revoked. - [Get a widget](https://cadenya.com/docs/api-reference/widgetservice/get-a-widget-by-id.md): One widget, by wgt_… id or external_id form, with the authoritative hostname in info.host. - [List widgets](https://cadenya.com/docs/api-reference/widgetservice/list-widgets.md): Every widget in a workspace, with its hostname and agent binding. Filter by agent to find what serves it. - [Unarchive a widget](https://cadenya.com/docs/api-reference/widgetservice/unarchive-a-widget.md): Bring an archived widget back to STATE_ACTIVE. Same hostname, fresh sessions. - [Update a widget](https://cadenya.com/docs/api-reference/widgetservice/update-a-widget.md): Edit the name, allowlist, agent binding, or variation pin. The DNS label never changes. - [Create a widget session](https://cadenya.com/docs/api-reference/widgetsessionservice/create-a-widget-session.md): Mint a visitor's session server-to-server. You get the bearer token once, here, and never again. - [Delete a widget session](https://cadenya.com/docs/api-reference/widgetsessionservice/delete-a-widget-session.md): Remove one session row and its secrets. Conversations are disassociated, not deleted. - [Delete all of a tenant's widget sessions](https://cadenya.com/docs/api-reference/widgetsessionservice/delete-all-of-a-tenants-widget-sessions.md): The erasure endpoint. Every session for a tenant, across all widgets, and every conversation they created. - [Get a widget session](https://cadenya.com/docs/api-reference/widgetsessionservice/get-a-widget-session-by-id.md): One session in full: state, assertions, activity. The bearer token is never in the response. - [List widget sessions](https://cadenya.com/docs/api-reference/widgetsessionservice/list-widget-sessions.md): Every session in a workspace, filterable by widget, tenant, subject, and state. Tokens never appear. - [Revoke a widget session](https://cadenya.com/docs/api-reference/widgetsessionservice/revoke-a-widget-session.md): The kill switch. Tokens stop working now, streams close in seconds, secrets are wiped. Terminal. - [Add a member to a workspace](https://cadenya.com/docs/api-reference/workspaceadminservice/add-a-member-to-a-workspace.md): Grants a profile access to the workspace by creating (or reactivating) the actor that links the profile to the workspace. Accepts either an existing profile_id or an email to resolve-or-invite. Idempotent for an already-active member. Admin only. - [Archive a workspace](https://cadenya.com/docs/api-reference/workspaceadminservice/archive-a-workspace.md): Archives a workspace (soft delete). The workspace is retained, but any subsequent request scoped to it returns a permission error. Archiving the account's last active (non-archived) workspace is not allowed and returns FailedPrecondition. Admin only. - [Create a workspace](https://cadenya.com/docs/api-reference/workspaceadminservice/create-a-workspace.md): Creates a new workspace in the account. Admin only. - [Get a workspace by ID](https://cadenya.com/docs/api-reference/workspaceadminservice/get-a-workspace-by-id.md): Retrieves a workspace in the account by ID. Admin only. - [List all workspaces in the account](https://cadenya.com/docs/api-reference/workspaceadminservice/list-all-workspaces-in-the-account.md): Lists every workspace in the account, optionally including archived ones. Admin only. - [List workspace members](https://cadenya.com/docs/api-reference/workspaceadminservice/list-workspace-members.md): Lists the members of a workspace. Admin only. - [Remove a member from a workspace](https://cadenya.com/docs/api-reference/workspaceadminservice/remove-a-member-from-a-workspace.md): Revokes a member's access by deactivating their actor; the member is immediately cut off. The underlying profile is not deleted. Admin only. - [Search account profiles](https://cadenya.com/docs/api-reference/workspaceadminservice/search-account-profiles.md): Searches the account's profiles for a member picker, with free-form name/email search and an optional type filter. Account-scoped; admin only. - [Update a workspace](https://cadenya.com/docs/api-reference/workspaceadminservice/update-a-workspace.md): Updates a workspace's metadata (e.g. name) and spec. Admin only. - [Create a workspace secret](https://cadenya.com/docs/api-reference/workspacesecretservice/create-a-new-workspace-secret.md): Store a credential once, reference it as ${NAME} in adapter headers, and never see it in a response again. - [Delete a workspace secret](https://cadenya.com/docs/api-reference/workspacesecretservice/delete-a-workspace-secret.md): Remove a secret. Any adapter that still references it fails to resolve. - [Get a workspace secret](https://cadenya.com/docs/api-reference/workspacesecretservice/get-a-workspace-secret-by-id.md): Read a secret's metadata. The value never comes back. - [List workspace secrets](https://cadenya.com/docs/api-reference/workspacesecretservice/list-workspace-secrets.md): Every secret in the workspace, by name. No values, ever. - [Update a workspace secret](https://cadenya.com/docs/api-reference/workspacesecretservice/update-a-workspace-secret.md): Rotate a secret's value in place, or rename it. You cannot read the value back to confirm it. - [List workspaces](https://cadenya.com/docs/api-reference/workspaceservice/list-workspaces.md): Every workspace your token can reach. One of the few routes with no workspace in its path. - [How agents and variations work](https://cadenya.com/docs/guides/agents.md): Understand the boundary between an agent, its candidate variations, and the immutable configuration snapshot on each objective. - [Assign tools, memory, and sub-agents](https://cadenya.com/docs/guides/agents/assignments.md): Configure the capabilities available to one agent variation and choose the narrowest assignment that fits the job. - [Optimize variations with objective feedback](https://cadenya.com/docs/guides/agents/feedback-and-sampling.md): Score objective runs, update each variation's Thompson Sampling posterior, and influence variation selection on future objectives. - [Configure agent variations](https://cadenya.com/docs/guides/agents/variations.md): Add candidate prompts and models, select Random or Feedback Driven traffic, and understand when an objective chooses its variation. - [API design](https://cadenya.com/docs/guides/api-design.md) - [API key scopes](https://cadenya.com/docs/guides/api-key-scopes.md): The permission model for API keys, the full scope reference, and the rules for managing keys with keys. - [Approving a tool](https://cadenya.com/docs/guides/callbacks/approving-a-tool.md): A hands-on lesson. Receive a tool-approval webhook, route it to the right person using the objective's labels, then approve or deny with the Cadenya SDK. - [Email updates from an objective](https://cadenya.com/docs/guides/callbacks/streaming-objective-events.md): A handler that turns objective events into email. When a run finishes, send the result; when it fails, send an alert, to the right person. - [Create and publish an agent](https://cadenya.com/docs/guides/configure-a-simple-agent.md): Create a draft agent in the dashboard, configure its first variation, publish it, and send it an objective. - [Delegate to sub-agents](https://cadenya.com/docs/guides/delegate-to-sub-agents.md): Attach a published specialist to one parent variation, run the specialist in a child objective, and inspect the handoff. - [Get structured output](https://cadenya.com/docs/guides/get-structured-output.md): Configure an agent with a JSON Schema, run an objective, and consume its typed output from the dashboard, SDK, event stream, or webhook. - [Getting started](https://cadenya.com/docs/guides/getting-started.md): Understand the core Cadenya workflow and how the pieces fit together. - [Give your agent memory](https://cadenya.com/docs/guides/give-your-agent-memory.md): A hands-on lesson. Write a memory layer, attach it to a variation, and watch the agent read what it needs on demand. - [How memory layers work](https://cadenya.com/docs/guides/memory-layers.md): Give your agents context without overloading the context window. Memory layers let agents read knowledge on demand. - [How objectives work](https://cadenya.com/docs/guides/objectives.md): Understand objective configuration snapshots, lifecycle states, prompt data, tools, memory, events, context windows, continuations, and feedback. - [Prevent tool bloat](https://cadenya.com/docs/guides/preventing-tool-bloat.md): Filter the reachable catalog, enable progressive discovery on a variation, and load exact tool definitions only when an objective needs them. - [Run your first objective](https://cadenya.com/docs/guides/run-an-objective.md): Create an objective in the dashboard, inspect its configuration snapshot and event timeline, continue the conversation, and dispatch the same task from code. - [Run an agent on a schedule](https://cadenya.com/docs/guides/schedule-an-agent.md): Configure a calendar or interval cadence in the dashboard, control overlap and variation selection, and inspect the objectives it creates. - [Agents and variations](https://cadenya.com/docs/guides/sdk/agents.md): Create a draft agent and variation, publish it, dispatch an objective, and manage candidate configurations with the SDK. - [Objectives](https://cadenya.com/docs/guides/sdk/objectives.md): Hand an agent a task, watch it work, answer its questions, and rate the result. The objective lifecycle in code. - [Tool sets](https://cadenya.com/docs/guides/sdk/tool-sets.md): Point a tool set at an MCP server, an API, or your own code. Store secrets, curate what syncs, and hand it to an agent. - [How secrets work](https://cadenya.com/docs/guides/secrets.md): Store sensitive values and interpolate them into tool adapter headers. Secrets keep your API keys out of your tool configuration. - [Store and use a secret](https://cadenya.com/docs/guides/store-and-use-secrets.md): A hands-on lesson. Store a credential as a workspace secret, reference it in a tool header, and let Cadenya inject it at call time. - [Run tools in your code](https://cadenya.com/docs/guides/tool-sets/bare.md): Configure a Bare tool set in the dashboard, then supply each tool call's result from your application. - [Filter tools and require approval](https://cadenya.com/docs/guides/tool-sets/filter-and-approve.md): Limit a managed tool source, mark sensitive calls for review, and approve a paused call from code. - [Wrap an HTTP API](https://cadenya.com/docs/guides/tool-sets/http.md): Define a typed HTTP tool in the dashboard, then call it from an agent objective. - [Choose a tool set adapter](https://cadenya.com/docs/guides/tool-sets/index.md): Compare OpenAPI, MCP, HTTP, and Bare tool sets, then pick a configuration that matches your provider and runtime. - [Connect an MCP server](https://cadenya.com/docs/guides/tool-sets/mcp.md): Connect a Streamable HTTP MCP server, choose when its tools load, and verify each sync. - [Connect an OpenAPI spec](https://cadenya.com/docs/guides/tool-sets/openapi.md): Turn a hosted OpenAPI specification into a filtered, callable tool set from the dashboard. - [Tools](https://cadenya.com/docs/guides/tools.md): Tools give your agents the ability to interact with the outside world through OpenAPI, MCP, HTTP, Bare, or built-in tools. - [Use your own IDs](https://cadenya.com/docs/guides/use-your-own-ids.md): Give agents and objectives identifiers from your system, then use external_id references across SDK and API paths. - [Handling webhooks](https://cadenya.com/docs/guides/webhooks.md): How Cadenya signs and delivers objective event webhooks, and how to verify them with the SDK or by hand. - [Introduction](https://cadenya.com/docs/index.md): Cadenya is a headless agent runtime. Learn how to build, deploy, and manage AI agents. - [Quickstart](https://cadenya.com/docs/quickstart.md): Start with an empty workspace, build a Faker-powered agent in the dashboard, and watch its first objective from code. - [Building a Slack bot](https://cadenya.com/docs/use-cases/slack-bots.md): Drive Cadenya agents from Slack with Bolt, route webhook events back into threads, and continue objectives inline. ## OpenAPI Specs - [api-spec](https://cadenya.com/docs/api-spec.yml) - [openapi](https://cadenya.com/docs/api-reference/openapi.json)