claude-tag-api changedmanage-claude/claude-tag-api
Recorded here
Lines+5added
Lines−4removed
From line
247
where the diff opens
First seen
23 Oct 2026
this site's first read of the page
Recorded edits6to this page, all time
The whole hunk
from line 247, old and new numbered
/
from line 247
247247| `enabled` | boolean | Whether Claude is on. |
248248| `instructions` | string | Standing guidance Claude reads in every session. At most 8,192 characters after leading and trailing white space is trimmed. Blank text clears the setting. |
249249| `model` | string | The model new sessions start on: a [model ID](https://platform.claude.com/docs/en/models/overview) your organization can use with Claude Tag. At most 128 characters. |
250| `environment_id` | string | The cloud environment sessions run in, prefixed `env_`. It must be active and belong to your organization. |
250| `environment_id` | string | The environment sessions run in: an active environment of your organization, prefixed `env_`, or a self-hosted runner pool of your organization that every member may use, prefixed `ccpool_`. |
251251| `guest_policy` | object | What Claude does in a channel while a Slack guest is in it, for everyone in the channel: `{"type": "allow"}` (Claude answers), `{"type": "restrict"}` (Claude does not answer), or `{"type": "channel_only"}` (Claude answers with only the Bundles attached to the channel itself; if `channel_only` is not available to your organization, a request that sets it returns `400`). See [Restrict guest channels](https://claude.com/docs/claude-tag/admins/restrict-access#restrict-guest-channels) for what it means in channels shared through Slack Connect or across an Enterprise Grid. |
252252
253253`model` and `environment_id` are checked when you write them and not again: if the model or environment later changes, responses keep returning the stored value.
254254
255If an organization owner has put a settings level on a self-hosted runner pool in claude.ai, its `environment_id` returns the pool’s ID, which starts with `ccpool_`. This API cannot set a runner pool, and returns `400` for a request that changes or clears `environment_id` on a settings level that stores one.
255A runner pool that only some members may use (a restricted pool) is chosen by an organization owner in claude.ai, and a read of a settings level on one returns its `ccpool_` ID like any other. A request that would put a settings level on one, or that changes or clears `environment_id` on a settings level that stores one, returns `400` with `error_code: "runner_pool_restricted"`. A pool your organization does not have returns the same `404` as an unknown environment.
256256
257257### Stored and inherited values
258258
from line 1246
12461246* To keep Claude out of a channel, keep it set up with `enabled` set to `false` rather than remove it, or make sure that what it would inherit, which removal does not touch, keeps Claude off.
12471247* To have a channel store nothing and keep its sessions and memory, clear each setting and detach each Bundle instead.
12481248
1249Two kinds of channel cannot be removed here at all, whether Claude is on or off in them, and return `400` with no `error_code`: a [group direct message](https://platform.claude.com/docs/en/manage-claude/claude-tag-api#group-direct-messages), and a channel that holds configuration this API does not manage, such as a runner pool or a setting that only claude.ai has. These are checked before `enabled` is, so turning Claude off does not help; an organization owner removes the second kind in claude.ai.
1249Two kinds of channel cannot be removed here at all, whether Claude is on or off in them, and return `400` with no `error_code`: a [group direct message](https://platform.claude.com/docs/en/manage-claude/claude-tag-api#group-direct-messages), and a channel that holds configuration this API does not manage, such as a restricted runner pool or a setting that only claude.ai has. These are checked before `enabled` is, so turning Claude off does not help; an organization owner removes the second kind in claude.ai.
12501250
12511251<CodeGroup>
12521252 ```bash cURL
from line 2493
24932493| `api_key_scope_missing` | 403 | The key lacks `read:claude_tag` or `write:claude_tag`, whichever the endpoint requires. |
24942494| `claude_tag_writes_not_enabled` | 403 | Your organization can read through this API but is not enabled for changes. |
24952495| `compliance_configuration_restricted` | 403 | Your organization has a compliance configuration under which Claude Tag stores nothing new, such as zero data retention. Setting a channel up, updating settings (even to clear them), and attaching a Bundle are refused. Detaching a Bundle and removing a channel are not, and such an organization can [remove](https://platform.claude.com/docs/en/manage-claude/claude-tag-api#remove-a-channel) a channel even while Claude is on in it. |
2496| `environment_not_found` | 404 | `environment_id` names no environment your organization can use here. The `id` in the path is fine. |
2496| `environment_not_found` | 404 | `environment_id` names no environment or runner pool your organization can use here. The `id` in the path is fine. |
24972497| `environment_archived` | 400 | `environment_id` names an archived environment. |
2498| `runner_pool_restricted` | 400 | The request would put a settings level on a restricted runner pool, or changes or clears `environment_id` on a settings level that stores one. An organization owner makes that change in claude.ai. See [Settings](https://platform.claude.com/docs/en/manage-claude/claude-tag-api#settings). |
24982499| `slack_channel_set_up_settings_refused` | 400 | The request set the channel up, then `settings` was refused. `details.slack_channel_id` is the channel. See [Set up a channel](https://platform.claude.com/docs/en/manage-claude/claude-tag-api#set-up-a-channel). |
24992500| `slack_channel_set_up_environment_not_found` | 404 | The request set the channel up, then `environment_id` was not found. `details.slack_channel_id` is the channel. See [Set up a channel](https://platform.claude.com/docs/en/manage-claude/claude-tag-api#set-up-a-channel). |
25002501| `slack_channel_set_up_settings_conflict` | 409 | The request set the channel up, then another change overlapped `settings`. Nothing of `settings` was stored. `details.slack_channel_id` is the channel. See [Set up a channel](https://platform.claude.com/docs/en/manage-claude/claude-tag-api#set-up-a-channel). |
No line in this hunk matches that.