# Cadenya - [Introduction](https://cadenya.com/docs/index.md): Cadenya. The Agent Runtime. - [Tool Sets](https://cadenya.com/docs/guides/the-basics/tool-sets.md): The basics of how Tool Sets work in Cadenya's Agent Runtime - [Agents](https://cadenya.com/docs/guides/the-basics/agents.md): The basics of how Agents work in Cadenya's Agent Runtime - [Objectives](https://cadenya.com/docs/guides/the-basics/objectives.md): The basics of how Objectives work in Cadenya - [Memory](https://cadenya.com/docs/guides/the-basics/memory.md): The basics of how Memory works in Cadenya's Agent Runtime - [Widgets](https://cadenya.com/docs/guides/the-basics/widgets.md): The basics of how Widgets put Cadenya Agents in your web application - [Webhooks](https://cadenya.com/docs/guides/the-basics/webhooks.md): The basics of how Webhooks work in Cadenya's Agent Runtime - [API Reference](https://cadenya.com/docs/api-reference.md): Complete reference for the Cadenya API, generated from the OpenAPI specification. - [List tool sets](https://cadenya.com/docs/api-reference/toolservice/list-tool-sets.md): Lists all tool sets in the workspace - [Create a new tool set](https://cadenya.com/docs/api-reference/toolservice/create-a-new-tool-set.md): Creates a new tool set in the workspace - [Get a tool set by ID](https://cadenya.com/docs/api-reference/toolservice/get-a-tool-set-by-id.md): Retrieves a tool set by ID from the workspace - [Update a tool set](https://cadenya.com/docs/api-reference/toolservice/update-a-tool-set.md): Updates a tool set in the workspace - [Delete a tool set](https://cadenya.com/docs/api-reference/toolservice/delete-a-tool-set.md): Deletes a tool set in the workspace - [Archive a tool set](https://cadenya.com/docs/api-reference/toolservice/archive-a-tool-set.md): Transitions a tool set to STATE_ARCHIVED. Syncing stops, the tool set is hidden from list results, its tools are no longer offered to objectives, and new variation assignments are rejected. Existing assignments are retained, and history is preserved — unlike delete, archiving works while the tool se… - [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. - [List tool set events](https://cadenya.com/docs/api-reference/toolservice/list-tool-set-events.md): Lists all events (including sync status) for a tool set - [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 usage](https://cadenya.com/docs/api-reference/toolservice/list-tool-set-usage.md): Lists the agent variations (with their parent agent) that have the tool set assigned. Pass tool_id to instead list variations with a direct assignment of that individual tool; variations that receive the tool implicitly through a whole-set assignment are not included in that filtered view. - [List tools](https://cadenya.com/docs/api-reference/toolservice/list-tools.md): Lists all tools in the tool set - [Create a new tool](https://cadenya.com/docs/api-reference/toolservice/create-a-new-tool.md): Creates a new tool in the tool set - [Get a tool by ID](https://cadenya.com/docs/api-reference/toolservice/get-a-tool-by-id.md): Retrieves a tool by ID from the workspace - [Update a tool](https://cadenya.com/docs/api-reference/toolservice/update-a-tool.md): Updates a tool in the tool set - [Delete a tool](https://cadenya.com/docs/api-reference/toolservice/delete-a-tool.md): Deletes a tool in the tool set - [Omit a tool](https://cadenya.com/docs/api-reference/toolservice/omit-a-tool.md): Transitions a tool to STATE_OMITTED, excluding it from agent use. Fails if the tool is currently assigned to agent variations. - [Restore a tool](https://cadenya.com/docs/api-reference/toolservice/restore-a-tool.md): Transitions an omitted tool back to STATE_AVAILABLE. For managed tool sets, the next sync may omit the tool again if its filters still exclude it. - [Search for tools or tool sets](https://cadenya.com/docs/api-reference/searchservice/search-for-tools-or-tool-sets.md): Searches for tools or tool sets in the workspace - [List tool set secrets](https://cadenya.com/docs/api-reference/toolservice/list-tool-set-secrets.md): Lists all secrets scoped to the tool set - [Create a new tool set secret](https://cadenya.com/docs/api-reference/toolservice/create-a-new-tool-set-secret.md): Creates a new secret scoped to the tool set - [Get a tool set secret by ID](https://cadenya.com/docs/api-reference/toolservice/get-a-tool-set-secret-by-id.md): Retrieves a tool set secret by ID from the tool set - [Update a tool set secret](https://cadenya.com/docs/api-reference/toolservice/update-a-tool-set-secret.md): Updates a secret scoped to the tool set - [Delete a tool set secret](https://cadenya.com/docs/api-reference/toolservice/delete-a-tool-set-secret.md): Deletes a secret scoped to the tool set - [List agents](https://cadenya.com/docs/api-reference/agentservice/list-agents.md): Lists all agents in the workspace - [Create a new agent](https://cadenya.com/docs/api-reference/agentservice/create-a-new-agent.md): Creates a new agent in the workspace - [List feedback for an agent](https://cadenya.com/docs/api-reference/agentservice/list-feedback-for-an-agent.md): Lists feedback submitted across all objectives belonging to an agent. Supports search by comment, sentiment filter, agent variation filter, and creation date range. Results are ordered by creation time, newest first. - [List webhook deliveries](https://cadenya.com/docs/api-reference/agentservice/list-webhook-deliveries.md): Lists all webhook deliveries for an agent - [Get an agent by ID](https://cadenya.com/docs/api-reference/agentservice/get-an-agent-by-id.md): Retrieves an agent by ID from the workspace - [Delete an agent](https://cadenya.com/docs/api-reference/agentservice/delete-an-agent.md): Deletes an agent from the workspace - [Update an agent](https://cadenya.com/docs/api-reference/agentservice/update-an-agent.md): Updates an agent in the workspace - [Publish an agent](https://cadenya.com/docs/api-reference/agentservice/publish-an-agent.md): Transitions an agent to STATE_PUBLISHED, making it available for objectives. The agent must have at least one variation. - [Unpublish an agent](https://cadenya.com/docs/api-reference/agentservice/unpublish-an-agent.md): Transitions a published agent back to STATE_DRAFT. Active schedules for the agent are paused until it is published again. - [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. - [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. - [List variations](https://cadenya.com/docs/api-reference/agentvariationservice/list-variations.md): Lists all variations for an agent - [Create a new variation](https://cadenya.com/docs/api-reference/agentvariationservice/create-a-new-variation.md): Creates a new variation for an agent - [Get a variation by ID](https://cadenya.com/docs/api-reference/agentvariationservice/get-a-variation-by-id.md): Retrieves a variation by ID from an agent - [Delete a variation](https://cadenya.com/docs/api-reference/agentvariationservice/delete-a-variation.md): Deletes a variation from an agent - [Update a variation](https://cadenya.com/docs/api-reference/agentvariationservice/update-a-variation.md): Updates a variation for an agent - [Add an assignment to a variation](https://cadenya.com/docs/api-reference/agentvariationservice/add-an-assignment-to-a-variation.md): Assigns a tool, tool set, or sub-agent to a variation. Exactly one target ID must be set. - [Remove an assignment from a variation](https://cadenya.com/docs/api-reference/agentvariationservice/remove-an-assignment-from-a-variation.md): Detaches an assignment from a variation, identified by the assignment ID returned when it was added. - [Attach a memory layer to a variation](https://cadenya.com/docs/api-reference/agentvariationservice/attach-a-memory-layer-to-a-variation.md): Attaches a memory layer to a variation at a given position in the variation's baseline memory cascade. - [Remove a memory layer assignment from a variation](https://cadenya.com/docs/api-reference/agentvariationservice/remove-a-memory-layer-assignment-from-a-variation.md): Detaches a memory layer assignment from a variation, identified by the assignment id. - [Update a variation's memory layer assignment](https://cadenya.com/docs/api-reference/agentvariationservice/update-a-variations-memory-layer-assignment.md): Updates the position of a memory layer assignment on a variation. - [List schedules](https://cadenya.com/docs/api-reference/agentscheduleservice/list-schedules.md): Lists all schedules for an agent - [Create a new schedule](https://cadenya.com/docs/api-reference/agentscheduleservice/create-a-new-schedule.md): Creates a new schedule for an agent - [Get a schedule by ID](https://cadenya.com/docs/api-reference/agentscheduleservice/get-a-schedule-by-id.md): Retrieves a schedule by ID from an agent - [Delete a schedule](https://cadenya.com/docs/api-reference/agentscheduleservice/delete-a-schedule.md): Deletes a schedule from an agent - [Update a schedule](https://cadenya.com/docs/api-reference/agentscheduleservice/update-a-schedule.md): Updates a schedule for an agent - [Pause a schedule](https://cadenya.com/docs/api-reference/agentscheduleservice/pause-a-schedule.md): Transitions a schedule to STATE_PAUSED. Paused schedules retain history but do not fire. - [Resume a schedule](https://cadenya.com/docs/api-reference/agentscheduleservice/resume-a-schedule.md): Transitions a paused schedule back to STATE_ACTIVE so it fires on its cadence again. Archived schedules cannot be resumed. - [Archive a schedule](https://cadenya.com/docs/api-reference/agentscheduleservice/archive-a-schedule.md): Transitions a schedule to STATE_ARCHIVED and removes its underlying timer. Archiving is terminal: archived schedules never fire and cannot be reactivated; create a new schedule instead. - [List objectives](https://cadenya.com/docs/api-reference/objectiveservice/list-objectives.md): Lists all objectives in the workspace - [Create a new objective](https://cadenya.com/docs/api-reference/objectiveservice/create-a-new-objective.md): Creates a new objective in the workspace - [Get an objective by ID](https://cadenya.com/docs/api-reference/objectiveservice/get-an-objective-by-id.md): Retrieves an objective by ID from the workspace - [Cancel an objective](https://cadenya.com/docs/api-reference/objectiveservice/cancel-an-objective.md): Cancels a running or pending objective. The objective's state will be set to STATE_CANCELLED. - [Compact an objective](https://cadenya.com/docs/api-reference/objectiveservice/compact-an-objective.md): Triggers compaction on a running objective. Optionally override the variation's compaction config. - [List objective context windows](https://cadenya.com/docs/api-reference/objectiveservice/list-objective-context-windows.md): Read-only list of the last five windows of execution for this objective, ordered by most recent first - [Continue an objective](https://cadenya.com/docs/api-reference/objectiveservice/continue-an-objective.md): Continues an objective that has completed - [List objective events](https://cadenya.com/docs/api-reference/objectiveservice/list-objective-events.md): Lists all events for an objective - [Stream objective events](https://cadenya.com/docs/api-reference/objectiveeventstreamsservice/stream-objective-events.md): Streams events for an objective in real-time using server-sent events (SSE) - [Get objective context diagnostics](https://cadenya.com/docs/api-reference/objectiveservice/get-objective-context-diagnostics.md): Returns the context-usage breakdown measured for the objective's most recent iteration: character lengths per context component (system prompt, memory appendices, tool definitions, messages by role) alongside the iteration's input token counts. - [List feedback for an objective](https://cadenya.com/docs/api-reference/objectiveservice/list-feedback-for-an-objective.md): Lists all feedback submitted for an objective - [Submit feedback for an objective](https://cadenya.com/docs/api-reference/objectiveservice/submit-feedback-for-an-objective.md): Submits feedback for an objective's execution. Feedback scores are used by the agent variation scoring system to evaluate and rank variation performance. - [List objective tasks](https://cadenya.com/docs/api-reference/objectiveservice/list-objective-tasks.md): Lists all tasks for an objective - [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 - [List objective tool calls](https://cadenya.com/docs/api-reference/objectiveservice/list-objective-tool-calls.md): Lists all tool calls for an objective - [Get an objective tool call by ID](https://cadenya.com/docs/api-reference/objectiveservice/get-an-objective-tool-call-by-id.md): Retrieves a single tool call, including the content the tool returned. Media content (images, audio) is served as short-lived signed URLs. - [Approve a tool call](https://cadenya.com/docs/api-reference/objectiveservice/approve-a-tool-call.md): When an agent attempts to use a tool that requires approval, use this endpoint to mark it as approved. - [Deny a tool call](https://cadenya.com/docs/api-reference/objectiveservice/deny-a-tool-call.md): When an agent attempts to use a tool that requires approval, use this endpoint to mark it as denied. Use a memo to steer the LLM to a different decision or usage of the tool. - [Set a bare tool call's content](https://cadenya.com/docs/api-reference/objectiveservice/set-a-bare-tool-calls-content.md): For bare tool calls (tool sets with no execution adapter), sets the content an external API consumer supplies for the call — used for human-in-the-loop tools and reverse harnesses that execute tools locally and report results back. - [List objective tools](https://cadenya.com/docs/api-reference/objectiveservice/list-objective-tools.md): Lists all tools that were assigned to an objective - [List widgets](https://cadenya.com/docs/api-reference/widgetservice/list-widgets.md): Lists all widgets in a workspace - [Create a new widget](https://cadenya.com/docs/api-reference/widgetservice/create-a-new-widget.md): Creates a widget bound to an agent. The widget's DNS label and hostname are generated by the server and returned in `info`. The hostname may take up to a minute to become reachable while the edge propagates. - [Get a widget by ID](https://cadenya.com/docs/api-reference/widgetservice/get-a-widget-by-id.md): Retrieves a widget by ID - [Update a widget](https://cadenya.com/docs/api-reference/widgetservice/update-a-widget.md): Updates a widget's metadata or spec. The DNS label is immutable and cannot be updated. Re-pointing the agent affects new sessions only; in-flight conversations finish against the agent they started with. - [Delete a widget](https://cadenya.com/docs/api-reference/widgetservice/delete-a-widget.md): Deletes a widget. Its hostname stops serving and all of its sessions are revoked. - [Archive a widget](https://cadenya.com/docs/api-reference/widgetservice/archive-a-widget.md): Transitions a widget to STATE_ARCHIVED. The hostname stops serving at the edge, existing sessions are revoked, and no new sessions can be minted. Reversible via :unarchive. - [Unarchive a widget](https://cadenya.com/docs/api-reference/widgetservice/unarchive-a-widget.md): Transitions an archived widget back to STATE_ACTIVE so its hostname serves traffic again. Sessions revoked by archival stay revoked; mint new ones. - [List widget sessions](https://cadenya.com/docs/api-reference/widgetsessionservice/list-widget-sessions.md): Lists widget sessions in a workspace, filterable by widget, tenant, subject, and state - [Create a widget session](https://cadenya.com/docs/api-reference/widgetsessionservice/create-a-widget-session.md): Mints a session against a widget and returns the session bearer token (`spec.token`, returned only on creation) plus the authoritative widget hostname (`info.host`). Asserting a tenant upserts the tenant record; attached secrets flow to every conversation the session creates. - [Get a widget session by ID](https://cadenya.com/docs/api-reference/widgetsessionservice/get-a-widget-session-by-id.md): Retrieves a widget session. The bearer token is never returned on reads. - [Revoke a widget session](https://cadenya.com/docs/api-reference/widgetsessionservice/revoke-a-widget-session.md): Transitions a session to STATE_REVOKED. Outstanding tokens stop working immediately, open event streams close within seconds, and the session's secrets are deleted. Terminal. - [Delete a widget session](https://cadenya.com/docs/api-reference/widgetsessionservice/delete-a-widget-session.md): Deletes a session and its secrets. The session's conversations are disassociated, not deleted; use the tenant-level delete for full erasure. - [Delete all of a tenant's widget sessions](https://cadenya.com/docs/api-reference/widgetsessionservice/delete-all-of-a-tenants-widget-sessions.md): Deletes every session belonging to a tenant across all widgets in the workspace, along with the conversations those sessions created — built for GDPR erasure requests. The tenant is required; an empty value is rejected rather than matching everything. - [List tenants](https://cadenya.com/docs/api-reference/tenantservice/list-tenants.md): Lists the tenants asserted in a workspace, newest first. `query` matches against a tenant's name and its external_id, for type-ahead filters. - [Get a tenant by ID](https://cadenya.com/docs/api-reference/tenantservice/get-a-tenant-by-id.md): Retrieves a tenant by its canonical id or by the `external_id:` form the customer asserted it under. - [List a tenant's subjects](https://cadenya.com/docs/api-reference/tenantservice/list-a-tenants-subjects.md): Lists the subjects asserted under a tenant. Subjects are only listable through their tenant: a subject's external_id is unique within its tenant, not across the workspace, so the same key can name different people under different tenants. - [Erase a tenant](https://cadenya.com/docs/api-reference/tenantservice/erase-a-tenant.md): Destroys the tenant, its subjects, every objective associated with it and everything reachable from those objectives, and its widget sessions. This is the full erasure hammer, wider than `DELETE /widget_sessions`, which removes only what widget sessions created. The work runs in the background: this… - [List memory layers](https://cadenya.com/docs/api-reference/memoryservice/list-memory-layers.md): Lists all memory layers in the workspace - [Create a new memory layer](https://cadenya.com/docs/api-reference/memoryservice/create-a-new-memory-layer.md): Creates a new memory layer in the workspace - [Get a memory layer by ID](https://cadenya.com/docs/api-reference/memoryservice/get-a-memory-layer-by-id.md): Retrieves a memory layer by ID from the workspace - [Delete a memory layer](https://cadenya.com/docs/api-reference/memoryservice/delete-a-memory-layer.md): Deletes a memory layer from the workspace - [Update a memory layer](https://cadenya.com/docs/api-reference/memoryservice/update-a-memory-layer.md): Updates a memory layer in the workspace - [List memory entries](https://cadenya.com/docs/api-reference/memoryservice/list-memory-entries.md): Lists all entries in a memory layer - [Create a new memory entry](https://cadenya.com/docs/api-reference/memoryservice/create-a-new-memory-entry.md): Creates a new entry in a memory layer. Returns the detail view, including the resolved content body. - [Get a memory entry by ID](https://cadenya.com/docs/api-reference/memoryservice/get-a-memory-entry-by-id.md): Retrieves a memory entry by ID from a memory layer. Returns the detail view, including the content body. - [Delete a memory entry](https://cadenya.com/docs/api-reference/memoryservice/delete-a-memory-entry.md): Deletes a memory entry from a memory layer - [Update a memory entry](https://cadenya.com/docs/api-reference/memoryservice/update-a-memory-entry.md): Updates a memory entry in a memory layer. Returns the detail view, including the resolved content body. - [List models](https://cadenya.com/docs/api-reference/modelservice/list-models.md): Lists all models in the workspace - [Get a model by ID](https://cadenya.com/docs/api-reference/modelservice/get-a-model-by-id.md): Retrieves a model by ID from the workspace - [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 - [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. - [Swap models on agent variations](https://cadenya.com/docs/api-reference/modelservice/swap-models-on-agent-variations.md): Reassigns agent variations from one model to another in bulk. Runs asynchronously and returns immediately. - [Create an upload](https://cadenya.com/docs/api-reference/uploadservice/create-an-upload.md): Issues a short-lived presigned URL for direct upload to object storage. The returned id is used to reference the upload from resources that accept binary content. - [Get an upload by ID](https://cadenya.com/docs/api-reference/uploadservice/get-an-upload-by-id.md): Retrieves the current state of an upload, including its lifecycle status - [List workspaces](https://cadenya.com/docs/api-reference/workspaceservice/list-workspaces.md): Lists all workspaces for the current account - [List workspace secrets](https://cadenya.com/docs/api-reference/workspacesecretservice/list-workspace-secrets.md): Lists all workspace secrets in the workspace - [Create a new workspace secret](https://cadenya.com/docs/api-reference/workspacesecretservice/create-a-new-workspace-secret.md): Creates a new workspace secret in the workspace - [Get a workspace secret by ID](https://cadenya.com/docs/api-reference/workspacesecretservice/get-a-workspace-secret-by-id.md): Retrieves a workspace secret by ID from the workspace - [Delete a workspace secret](https://cadenya.com/docs/api-reference/workspacesecretservice/delete-a-workspace-secret.md): Deletes a workspace secret from the workspace - [Update a workspace secret](https://cadenya.com/docs/api-reference/workspacesecretservice/update-a-workspace-secret.md): Updates a workspace secret in the workspace - [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. - [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. - [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. - [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. - [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. - [List workspace members](https://cadenya.com/docs/api-reference/workspaceadminservice/list-workspace-members.md): Lists the members of a workspace. Admin only. - [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. - [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. - [Retrieves the current account for the token accessing the API](https://cadenya.com/docs/api-reference/accountservice/retrieves-the-current-account-for-the-token-accessing-the-api.md): Retrieves the current account for the token accessing the API. Useful to check if the credentials are valid. - [Retrieves the profile for the credentials accessing the API](https://cadenya.com/docs/api-reference/profilesservice/retrieves-the-profile-for-the-credentials-accessing-the-api.md): Retrieves the profile of the authenticated caller. Useful to check which principal a token belongs to. - [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. - [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. - [List API keys](https://cadenya.com/docs/api-reference/apikeyservice/list-api-keys.md): Lists the workspace's API keys. - [Create a new API key](https://cadenya.com/docs/api-reference/apikeyservice/create-a-new-api-key.md): Creates a new API key in the workspace. - [Get an API key by ID](https://cadenya.com/docs/api-reference/apikeyservice/get-an-api-key-by-id.md): Retrieves an API key by ID. - [Update an API key](https://cadenya.com/docs/api-reference/apikeyservice/update-an-api-key.md): Updates an API key. - [Delete an API key](https://cadenya.com/docs/api-reference/apikeyservice/delete-an-api-key.md): Deletes an API key. - [Rotate an API key](https://cadenya.com/docs/api-reference/apikeyservice/rotate-an-api-key.md): Rotates an API key and returns a new token. All previous tokens for this key are invalidated. - [Disable an API key](https://cadenya.com/docs/api-reference/apikeyservice/disable-an-api-key.md): Disables an API key. While disabled, presenting the key's token fails authentication on every endpoint; the key is retained. Idempotent. - [Enable an API key](https://cadenya.com/docs/api-reference/apikeyservice/enable-an-api-key.md): Re-enables a disabled API key so its token authenticates again. Idempotent. - [Get the global API key](https://cadenya.com/docs/api-reference/globalapikeyservice/get-the-global-api-key.md): Retrieves the account's global API key. The token is included only when the caller's scopes dominate the key's. - [Rotate the global API key](https://cadenya.com/docs/api-reference/globalapikeyservice/rotate-the-global-api-key.md): Rotates the global API key and returns a new token. All previous tokens are invalidated. - [Disable the global API key](https://cadenya.com/docs/api-reference/globalapikeyservice/disable-the-global-api-key.md): Disables the global API key. While disabled, presenting its token fails authentication on every endpoint; the key is retained. Idempotent. - [Enable the global API key](https://cadenya.com/docs/api-reference/globalapikeyservice/enable-the-global-api-key.md): Re-enables the disabled global API key so its token authenticates again. Idempotent. - [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 - [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 - [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 - [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 - [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 - [Webhook events](https://cadenya.com/docs/api-reference/webhook-events.md): Every event Cadenya can POST to an agent's webhook URL, what triggers it, and how to verify and unwrap a delivery. - [User message](https://cadenya.com/docs/api-reference/objective-user-message-event.md): Cadenya sends objective_event.user_message when an objective receives a message from your application. - [Assistant message](https://cadenya.com/docs/api-reference/objective-assistant-message-event.md): Cadenya sends objective_event.assistant_message each time the model finishes a turn, with its text and any tool calls it asked for. - [Tool called](https://cadenya.com/docs/api-reference/objective-tool-called-event.md): Cadenya sends objective_event.tool_called when it dispatches a tool call, with the tool, its adapter config, and the parsed arguments. - [Tool result](https://cadenya.com/docs/api-reference/objective-tool-result-event.md): Cadenya sends objective_event.tool_result when a tool returns, with the content blocks the model was shown. - [Tool approval requested](https://cadenya.com/docs/api-reference/objective-tool-approval-requested-event.md): Cadenya sends objective_event.tool_approval_requested when a tool call needs a human decision before it runs. - [Tool approved](https://cadenya.com/docs/api-reference/objective-tool-approved-event.md): Cadenya sends objective_event.tool_approved when a reviewer approves a pending tool call. - [Tool denied](https://cadenya.com/docs/api-reference/objective-tool-denied-event.md): Cadenya sends objective_event.tool_denied when a reviewer denies a pending tool call, along with the memo the agent receives. - [Tool error](https://cadenya.com/docs/api-reference/objective-tool-error-event.md): Cadenya sends objective_event.tool_error when a tool call fails during execution. - [Sub-agent spawned](https://cadenya.com/docs/api-reference/objective-sub-agent-spawned-event.md): Cadenya sends objective_event.sub_agent_spawned when an agent hands work to another agent as a sub-objective. - [Sub-agent updated](https://cadenya.com/docs/api-reference/objective-sub-agent-updated-event.md): Cadenya sends objective_event.sub_agent_updated to the parent objective when a sub-objective changes status. - [Memory read](https://cadenya.com/docs/api-reference/objective-memory-read-event.md): Cadenya sends objective_event.memory_read when the agent resolves a key through the memory cascade and loads an entry. - [Reasoning](https://cadenya.com/docs/api-reference/objective-reasoning-event.md): Cadenya sends objective_event.reasoning with the model's thinking text for a turn, when the model exposes it. - [Objective finalized](https://cadenya.com/docs/api-reference/objective-finalized-event.md): Cadenya sends objective_event.finalized when an objective completes with a final result. - [Error](https://cadenya.com/docs/api-reference/objective-error-event.md): Cadenya sends objective_event.error when the objective itself hits an error during execution. ## OpenAPI Specs - [api-spec](/docs/api-spec.yml)