Update an agent
Change a Custom Agent’s or the personal agent’s name, model, status, and other settings in one request.
400 validation_error. A field set to its current value usually changes nothing. The exception is status: sending "disabled" for an agent that’s already disabled, other than through the API, returns a 403 restricted_resource and rejects the whole request. Leave status out when you only want to change other fields. All the fields in one request save together, so either every change applies or none does.
The response is the updated agent object, without instructions.
Which fields each agent and token can change
403 restricted_resource. The exception is is_favorited: a connection that sends it gets a 400 validation_error, because only a personal access token can change it.
For notion_ai, you can change name and model. name sets the token user’s name for their personal agent. Sending any other field returns a 400 validation_error. Only a personal access token can update notion_ai.
To change a Custom Agent’s credit limit, use Update an agent credit limit. Sending credit_limit to this endpoint returns a 400 validation_error.
Set the model
Setmodel to {"mode": "auto"} to let Notion choose, or to {"mode": "pinned", "id": "<model-id>"} to use one model. The model ID has to be one the token’s user can use, or the request returns a 400 validation_error. Changing a Custom Agent’s model also updates its published version.
Enable or disable a Custom Agent
Setstatus to "disabled" to turn off a running agent, or "active" to turn it back on. You can re-enable an agent only if an editor disabled it, through the API or in agent settings. An agent paused for another reason, such as reaching its credit limit, returns a 403 restricted_resource. So does re-enabling an agent while the workspace doesn’t allow Custom Agents.
This replaces Update agent status, which is deprecated.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
The API version to use for this request. The latest version is 2026-03-11.
2026-03-11 Path Parameters
The agent ID (a UUID), or notion_ai for the personal agent. Endpoint-specific restrictions still apply.
Body
Enable or disable the agent. Re-enabling works only for an agent an editor disabled, through the API or in agent settings.
active, disabled The agent's display name.
The custom agent's short description. Use an empty string to clear it.
Whether the personal-access-token owner has this agent in their favorites.
The model selection. Use auto to let Notion choose, or pinned with an available public model ID.
- Option 1
- Option 2
Response
Always agent
"agent"What kind of agent this is: "notion_ai" is the personal agent; "custom_agent" is a standalone agent you chat with; "autofill_custom_agent" fills a database property; "external" runs through an external provider.
notion_ai, custom_agent, autofill_custom_agent, external - Emoji
- File
- External
- Custom Emoji
- Icon
- Option 6
The model the agent runs on: auto (Notion selects) or a pinned model.
- Option 1
- Option 2
Integrations the agent is connected to (Notion, Slack, Discord, MCP servers, and other connectors), each with an account and per-target permissions.
100- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
"active" when the agent can run; "disabled" when it is paused (see pause_reason); "deleted" when it has been removed.
active, disabled, deleted Why the agent is paused when status is "disabled" (e.g. "credit_limit", "disabled_from_workspace_settings"); null when active.
run_limit, credit_limit, runaway_credit_usage, workspace_credit_limit, owner_allowance_limit, failure_limit, mark_session_failed_autopause, disabled_from_workspace_settings, disabled_from_workspace_settings_but_resumable, disabled_from_api, disabled_from_agent_settings, disabled_due_to_no_members_with_access, disabled_due_to_lack_of_editors, disabled_by_notion, internal_error, needs_user_review, tool_unavailable Whether the draft has edits not yet in the published version, or "hidden" when the caller lacks edit access to the agent.
ISO 8601 timestamp of the agent's most recent run, null if it has never run, or "hidden" when the caller lacks edit access to the agent.
^\d{4}-\d{2}-\d{2}TISO 8601 timestamp of the agent's most recent run, null if it has never run, or "hidden" when the caller lacks edit access to the agent.
^\d{4}-\d{2}-\d{2}TThe per-agent credit limit that applies to this agent, null when uncapped, or "hidden" when the caller lacks full access to the agent. This is the effective limit computed at runtime, folding in both the agent's own limit and any workspace-admin default.
x >= 0The agent's configured triggers, each with a machine type, an enabled flag, and (for recurrence triggers) a structured schedule.
100Whether this agent is in the caller's personal favorites, or null when the caller has no personal favorites scope.
Date and time when this agent was created.
Date and time when this agent was last edited.
The agent's inline instructions when verbose=true, or null when its instructions are stored on a page.