Follow Discord
Sweep 10 Nov 2026 · 02:18Z Build v2.1.322 539 read Stable v2.1.311 Latest v2.1.322 Next v2.1.322 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One capture · api

One read of Claude Developer Platformapi-20261110T043707Z

343 pages moved out of 893 read.

Pages moved 343 significant first
Pages read 893 in this capture
Captured 04:37 UTC
Corpus hash 9b50913f24d5 corpus-hash

What this read moved

26-50 of 343, page 2 of 14

This capture is too large to show at once. Changes 26-50 of 343 are below, significant first; the rest are on the following screens.

api/beta/organization/analytics/cost Changed · +42 / -17 lines

from line 49
4949 
5050- `agent_ids: optional array of string`
5151 
52 Filter to usage incurred by sessions of specific Claude Managed Agents agents. Use `group_by[]=agent_id` to break out per-agent values. Claude Developer Platform organizations only.
52 Filter to usage incurred by sessions of specific Claude Managed Agents agents. Use `group_by[]=agent_id` to break out per-agent values. Claude Platform organizations only.
5353 
5454 maxItems: 100
5555 
5656- `api_key_ids: optional array of string`
5757 
58 Filter to usage authenticated by specific API keys, by tagged API key ID (`apikey_...`), whichever identity the usage is attributed to. Include an empty entry (`api_key_ids[]=`) to also match usage that no API key authenticated. Use `group_by[]=api_key_id` to break out per-key values; usage without a key has a null `api_key_id`. Claude Developer Platform organizations only.
58 Filter to usage authenticated by specific API keys, by tagged API key ID (`apikey_...`), whichever identity the usage is attributed to. Include an empty entry (`api_key_ids[]=`) to also match usage that no API key authenticated. Use `group_by[]=api_key_id` to break out per-key values; usage without a key has a null `api_key_id`. Claude Platform organizations only.
5959 
6060 maxItems: 100
6161 
6262- `claude_tag_categories: optional array of BetaAnalyticsClaudeTagCategory`
6363 
64 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. `dm` usage is reported under the user's product rather than `claude_tag`, so combining this filter with `products[]=claude_tag` excludes it. Use `group_by[]=claude_tag_category` to break out per-category values.
64 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. Use `group_by[]=claude_tag_category` to break out per-category values.
6565 
6666 maxItems: 100
6767 
from line 93
9393 
9494- `deployment_ids: optional array of string`
9595 
96 Filter to usage incurred by Claude Managed Agents sessions that specific deployments started. Use `group_by[]=deployment_id` to break out per-deployment values. Claude Developer Platform organizations only.
96 Filter to usage incurred by Claude Managed Agents sessions that specific deployments started. Use `group_by[]=deployment_id` to break out per-deployment values. Claude Platform organizations only.
9797 
9898 maxItems: 100
9999 
from line 105
105105 
106106- `environment_ids: optional array of string`
107107 
108 Filter to usage incurred by Claude Managed Agents sessions that ran in specific environments. Use `group_by[]=environment_id` to break out per-environment values. Claude Developer Platform organizations only.
108 Filter to usage incurred by Claude Managed Agents sessions that ran in specific environments. Use `group_by[]=environment_id` to break out per-environment values. Claude Platform organizations only.
109109 
110110 maxItems: 100
111111 
from line 145
145145 
146146 - `"model"`
147147 
148 - `"organization_id"`
149 
148150 - `"product"`
149151 
150152 - `"rbac_group_id"`
from line 207
205207 
206208 - `"time"`
207209 
210- `organization_ids: optional array of string`
211 
212 Filter a parent organization's report to specific child organizations, by organization UUID or `org_` ID; an ID that is not one of its child organizations matches nothing. Requires an API key created at the parent organization level. Use `group_by[]=organization_id` to break out per-organization values.
213 
214 maxItems: 100
215 
208216- `page: optional string`
209217 
210218 Opaque cursor from a previous response's `next_page` field.
from line 255
247255 
248256- `service_tiers: optional array of BetaAnalyticsServiceTier`
249257 
250 Filter to specific service tiers. Use `group_by[]=service_tier` to break out per-tier values. Claude Developer Platform organizations only; matches nothing for a Claude Enterprise organization.
258 Filter to specific service tiers. Use `group_by[]=service_tier` to break out per-tier values. Claude Platform organizations only; matches nothing for a Claude Enterprise organization.
251259 
252260 maxItems: 100
253261 
from line 273
265273 
266274- `session_ids: optional array of string`
267275 
268 Filter to usage incurred by specific Claude Managed Agents sessions, by tagged session ID (`sesn_...`). Use `group_by[]=session_id` to break out per-session values. Claude Developer Platform organizations only.
276 Filter to usage incurred by specific Claude Managed Agents sessions, by tagged session ID (`sesn_...`). Use `group_by[]=session_id` to break out per-session values. Claude Platform organizations only.
269277 
270278 maxItems: 100
271279 
from line 305
297305 
298306- `user_profile_ids: optional array of string`
299307 
300 Filter to usage attributed to specific user profiles, by tagged user profile ID (`uprof_...`). Use `group_by[]=user_profile_id` to break out per-profile values. Claude Developer Platform organizations only.
308 Filter to usage attributed to specific user profiles, by tagged user profile ID (`uprof_...`). Use `group_by[]=user_profile_id` to break out per-profile values. Claude Platform organizations only.
301309 
302310 maxItems: 100
303311 
304312- `workspace_ids: optional array of string`
305313 
306 Filter to usage in specific workspaces, by tagged workspace ID (`wrkspc_...`). Use `group_by[]=workspace_id` to break out per-workspace values. Claude Developer Platform organizations only; matches nothing for a Claude Enterprise organization.
314 Filter to usage in specific workspaces, by tagged workspace ID (`wrkspc_...`). Use `group_by[]=workspace_id` to break out per-workspace values. Claude Platform organizations only; matches nothing for a Claude Enterprise organization.
307315 
308316 maxItems: 100
309317 
from line 323
315323 
316324 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http).
317325 
318- `"anthropic-beta": optional array of AnthropicBeta`
326- `"anthropic-beta": array of AnthropicBeta`
319327 
320328 This endpoint is in beta: requests must send `analytics-usage-cost-2026-08-24` in this header.
321329 
from line 433
425433 
426434 - `"webhooks-2026-10-07"`
427435 
436 - `"admin-user-sign-out-2026-10-08"`
437 
428438 - `"message-threads-2026-08-12"`
429439 
430440 - `"analytics-usage-cost-2026-08-24"`
from line 591
581591 
582592 - `claude_tag_category: BetaAnalyticsClaudeTagCategory or null`
583593 
584 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude_tag`. New categories may be added over time.
594 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. New categories may be added over time.
585595 
586596 - `"dm"`
587597 
from line 647
637647 
638648 Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-5-5`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution.
639649 
650 - `organization_id: string or null`
651 
652 UUID of the child organization the usage belongs to, on a parent organization's report across its children. Null unless `organization_id` is in `group_by[]`.
653 
640654 - `product: string or null`
641655 
642656 Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include `chat`, `claude_code`, `cowork`, `office_agent`, `claude_in_chrome`, `claude_design`, `claude_tag`, and `chat_cowork_unified`. `claude_tag` is Claude Tag, the Claude product in Slack. `chat_cowork_unified` is Chat and Cowork unified, Cowork's features inside claude.ai chat: chat and Cowork usage by a member who has it turned on is reported under this value instead of `chat` or `cowork`. It is accepted as a filter only where Chat and Cowork unified is available. Some unattributed usage is reported as "other".
from line 681
667681 
668682 - `slack_channel_id: string or null`
669683 
670 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled).
684 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack, for some Claude Tag usage that has no channel recorded, and for usage recorded before channel attribution was enabled.
671685 
672686 - `speed: BetaAnalyticsSpeed or null`
673687 
from line 774
760774 "environment_id": "env_017oTjuGedHtjhJauVC5xGJD",
761775 "inference_geo": "global",
762776 "model": "claude-opus-5-5",
777 "organization_id": "12345678-1234-5678-1234-567812345678",
763778 "product": "chat",
764779 "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
765780 "service_tier": "standard",
from line 915
900915 
901916 - `claude_tag_category: BetaAnalyticsClaudeTagCategory or null`
902917 
903 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude_tag`. New categories may be added over time.
918 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. New categories may be added over time.
904919 
905920 - `"dm"`
906921 
from line 971
956971 
957972 Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-5-5`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution.
958973 
974 - `organization_id: string or null`
975 
976 UUID of the child organization the usage belongs to, on a parent organization's report across its children. Null unless `organization_id` is in `group_by[]`.
977 
959978 - `product: string or null`
960979 
961980 Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include `chat`, `claude_code`, `cowork`, `office_agent`, `claude_in_chrome`, `claude_design`, `claude_tag`, and `chat_cowork_unified`. `claude_tag` is Claude Tag, the Claude product in Slack. `chat_cowork_unified` is Chat and Cowork unified, Cowork's features inside claude.ai chat: chat and Cowork usage by a member who has it turned on is reported under this value instead of `chat` or `cowork`. It is accepted as a filter only where Chat and Cowork unified is available. Some unattributed usage is reported as "other".
from line 1005
9861005 
9871006 - `slack_channel_id: string or null`
9881007 
989 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled).
1008 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack, for some Claude Tag usage that has no channel recorded, and for usage recorded before channel attribution was enabled.
9901009 
9911010 - `speed: BetaAnalyticsSpeed or null`
9921011 
from line 1039
10201039 
10211040### Beta Analytics Cost Group By
10221041 
1023- `BetaAnalyticsCostGroupBy = "actor" or "actor_type" or "agent_id" or 18 more`
1042- `BetaAnalyticsCostGroupBy = "actor" or "actor_type" or "agent_id" or 19 more`
10241043 
10251044 - `"actor"`
10261045 
from line 1065
10461065 
10471066 - `"model"`
10481067 
1068 - `"organization_id"`
1069 
10491070 - `"product"`
10501071 
10511072 - `"rbac_group_id"`
from line 1233
12121233 
12131234 - `claude_tag_category: BetaAnalyticsClaudeTagCategory or null`
12141235 
1215 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude_tag`. New categories may be added over time.
1236 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. New categories may be added over time.
12161237 
12171238 - `"dm"`
12181239 
from line 1289
12681289 
12691290 Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-5-5`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution.
12701291 
1292 - `organization_id: string or null`
1293 
1294 UUID of the child organization the usage belongs to, on a parent organization's report across its children. Null unless `organization_id` is in `group_by[]`.
1295 
12711296 - `product: string or null`
12721297 
12731298 Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include `chat`, `claude_code`, `cowork`, `office_agent`, `claude_in_chrome`, `claude_design`, `claude_tag`, and `chat_cowork_unified`. `claude_tag` is Claude Tag, the Claude product in Slack. `chat_cowork_unified` is Chat and Cowork unified, Cowork's features inside claude.ai chat: chat and Cowork usage by a member who has it turned on is reported under this value instead of `chat` or `cowork`. It is accepted as a filter only where Chat and Cowork unified is available. Some unattributed usage is reported as "other".
from line 1323
12981323 
12991324 - `slack_channel_id: string or null`
13001325 
1301 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled).
1326 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack, for some Claude Tag usage that has no channel recorded, and for usage recorded before channel attribution was enabled.
13021327 
13031328 - `speed: BetaAnalyticsSpeed or null`
13041329 

api/beta/organization/analytics/cost/list Changed · +27 / -12 lines

from line 47
4747 
4848- `agent_ids: optional array of string`
4949 
50 Filter to usage incurred by sessions of specific Claude Managed Agents agents. Use `group_by[]=agent_id` to break out per-agent values. Claude Developer Platform organizations only.
50 Filter to usage incurred by sessions of specific Claude Managed Agents agents. Use `group_by[]=agent_id` to break out per-agent values. Claude Platform organizations only.
5151 
5252 maxItems: 100
5353 
5454- `api_key_ids: optional array of string`
5555 
56 Filter to usage authenticated by specific API keys, by tagged API key ID (`apikey_...`), whichever identity the usage is attributed to. Include an empty entry (`api_key_ids[]=`) to also match usage that no API key authenticated. Use `group_by[]=api_key_id` to break out per-key values; usage without a key has a null `api_key_id`. Claude Developer Platform organizations only.
56 Filter to usage authenticated by specific API keys, by tagged API key ID (`apikey_...`), whichever identity the usage is attributed to. Include an empty entry (`api_key_ids[]=`) to also match usage that no API key authenticated. Use `group_by[]=api_key_id` to break out per-key values; usage without a key has a null `api_key_id`. Claude Platform organizations only.
5757 
5858 maxItems: 100
5959 
6060- `claude_tag_categories: optional array of BetaAnalyticsClaudeTagCategory`
6161 
62 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. `dm` usage is reported under the user's product rather than `claude_tag`, so combining this filter with `products[]=claude_tag` excludes it. Use `group_by[]=claude_tag_category` to break out per-category values.
62 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. Use `group_by[]=claude_tag_category` to break out per-category values.
6363 
6464 maxItems: 100
6565 
from line 91
9191 
9292- `deployment_ids: optional array of string`
9393 
94 Filter to usage incurred by Claude Managed Agents sessions that specific deployments started. Use `group_by[]=deployment_id` to break out per-deployment values. Claude Developer Platform organizations only.
94 Filter to usage incurred by Claude Managed Agents sessions that specific deployments started. Use `group_by[]=deployment_id` to break out per-deployment values. Claude Platform organizations only.
9595 
9696 maxItems: 100
9797 
from line 103
103103 
104104- `environment_ids: optional array of string`
105105 
106 Filter to usage incurred by Claude Managed Agents sessions that ran in specific environments. Use `group_by[]=environment_id` to break out per-environment values. Claude Developer Platform organizations only.
106 Filter to usage incurred by Claude Managed Agents sessions that ran in specific environments. Use `group_by[]=environment_id` to break out per-environment values. Claude Platform organizations only.
107107 
108108 maxItems: 100
109109 
from line 143
143143 
144144 - `"model"`
145145 
146 - `"organization_id"`
147 
146148 - `"product"`
147149 
148150 - `"rbac_group_id"`
from line 205
203205 
204206 - `"time"`
205207 
208- `organization_ids: optional array of string`
209 
210 Filter a parent organization's report to specific child organizations, by organization UUID or `org_` ID; an ID that is not one of its child organizations matches nothing. Requires an API key created at the parent organization level. Use `group_by[]=organization_id` to break out per-organization values.
211 
212 maxItems: 100
213 
206214- `page: optional string`
207215 
208216 Opaque cursor from a previous response's `next_page` field.
from line 253
245253 
246254- `service_tiers: optional array of BetaAnalyticsServiceTier`
247255 
248 Filter to specific service tiers. Use `group_by[]=service_tier` to break out per-tier values. Claude Developer Platform organizations only; matches nothing for a Claude Enterprise organization.
256 Filter to specific service tiers. Use `group_by[]=service_tier` to break out per-tier values. Claude Platform organizations only; matches nothing for a Claude Enterprise organization.
249257 
250258 maxItems: 100
251259 
from line 271
263271 
264272- `session_ids: optional array of string`
265273 
266 Filter to usage incurred by specific Claude Managed Agents sessions, by tagged session ID (`sesn_...`). Use `group_by[]=session_id` to break out per-session values. Claude Developer Platform organizations only.
274 Filter to usage incurred by specific Claude Managed Agents sessions, by tagged session ID (`sesn_...`). Use `group_by[]=session_id` to break out per-session values. Claude Platform organizations only.
267275 
268276 maxItems: 100
269277 
from line 303
295303 
296304- `user_profile_ids: optional array of string`
297305 
298 Filter to usage attributed to specific user profiles, by tagged user profile ID (`uprof_...`). Use `group_by[]=user_profile_id` to break out per-profile values. Claude Developer Platform organizations only.
306 Filter to usage attributed to specific user profiles, by tagged user profile ID (`uprof_...`). Use `group_by[]=user_profile_id` to break out per-profile values. Claude Platform organizations only.
299307 
300308 maxItems: 100
301309 
302310- `workspace_ids: optional array of string`
303311 
304 Filter to usage in specific workspaces, by tagged workspace ID (`wrkspc_...`). Use `group_by[]=workspace_id` to break out per-workspace values. Claude Developer Platform organizations only; matches nothing for a Claude Enterprise organization.
312 Filter to usage in specific workspaces, by tagged workspace ID (`wrkspc_...`). Use `group_by[]=workspace_id` to break out per-workspace values. Claude Platform organizations only; matches nothing for a Claude Enterprise organization.
305313 
306314 maxItems: 100
307315 
from line 321
313321 
314322 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http).
315323 
316- `"anthropic-beta": optional array of AnthropicBeta`
324- `"anthropic-beta": array of AnthropicBeta`
317325 
318326 This endpoint is in beta: requests must send `analytics-usage-cost-2026-08-24` in this header.
319327 
from line 431
423431 
424432 - `"webhooks-2026-10-07"`
425433 
434 - `"admin-user-sign-out-2026-10-08"`
435 
426436 - `"message-threads-2026-08-12"`
427437 
428438 - `"analytics-usage-cost-2026-08-24"`
from line 589
579589 
580590 - `claude_tag_category: BetaAnalyticsClaudeTagCategory or null`
581591 
582 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude_tag`. New categories may be added over time.
592 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. New categories may be added over time.
583593 
584594 - `"dm"`
585595 
from line 645
635645 
636646 Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-5-5`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution.
637647 
648 - `organization_id: string or null`
649 
650 UUID of the child organization the usage belongs to, on a parent organization's report across its children. Null unless `organization_id` is in `group_by[]`.
651 
638652 - `product: string or null`
639653 
640654 Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include `chat`, `claude_code`, `cowork`, `office_agent`, `claude_in_chrome`, `claude_design`, `claude_tag`, and `chat_cowork_unified`. `claude_tag` is Claude Tag, the Claude product in Slack. `chat_cowork_unified` is Chat and Cowork unified, Cowork's features inside claude.ai chat: chat and Cowork usage by a member who has it turned on is reported under this value instead of `chat` or `cowork`. It is accepted as a filter only where Chat and Cowork unified is available. Some unattributed usage is reported as "other".
from line 679
665679 
666680 - `slack_channel_id: string or null`
667681 
668 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled).
682 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack, for some Claude Tag usage that has no channel recorded, and for usage recorded before channel attribution was enabled.
669683 
670684 - `speed: BetaAnalyticsSpeed or null`
671685 
from line 772
758772 "environment_id": "env_017oTjuGedHtjhJauVC5xGJD",
759773 "inference_geo": "global",
760774 "model": "claude-opus-5-5",
775 "organization_id": "12345678-1234-5678-1234-567812345678",
761776 "product": "chat",
762777 "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
763778 "service_tier": "standard",

api/beta/organization/analytics/cost_report Changed · +3 / -3 lines

from line 37
3737 
3838- `claude_tag_categories: optional array of BetaAnalyticsClaudeTagCategory`
3939 
40 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. `dm` usage is reported under the user's product rather than `claude-tag`, so combining this filter with `products[]=claude-tag` excludes it. Use `group_by[]=claude_tag_category` to break out per-category values.
40 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. Use `group_by[]=claude_tag_category` to break out per-category values.
4141 
4242 maxItems: 100
4343 
from line 209
209209 
210210 - `claude_tag_category: BetaAnalyticsClaudeTagCategory or null`
211211 
212 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude-tag`. New categories may be added over time.
212 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. New categories may be added over time.
213213 
214214 - `"dm"`
215215 
from line 279
279279 
280280 - `slack_channel_id: string or null`
281281 
282 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled).
282 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack, for some Claude Tag usage that has no channel recorded, and for usage recorded before channel attribution was enabled.
283283 
284284 - `speed: "fast" or "standard" or null`
285285 

api/beta/organization/analytics/cost_report/list Changed · +3 / -3 lines

from line 35
3535 
3636- `claude_tag_categories: optional array of BetaAnalyticsClaudeTagCategory`
3737 
38 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. `dm` usage is reported under the user's product rather than `claude-tag`, so combining this filter with `products[]=claude-tag` excludes it. Use `group_by[]=claude_tag_category` to break out per-category values.
38 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. Use `group_by[]=claude_tag_category` to break out per-category values.
3939 
4040 maxItems: 100
4141 
from line 207
207207 
208208 - `claude_tag_category: BetaAnalyticsClaudeTagCategory or null`
209209 
210 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude-tag`. New categories may be added over time.
210 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. New categories may be added over time.
211211 
212212 - `"dm"`
213213 
from line 277
277277 
278278 - `slack_channel_id: string or null`
279279 
280 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled).
280 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack, for some Claude Tag usage that has no channel recorded, and for usage recorded before channel attribution was enabled.
281281 
282282 - `speed: "fast" or "standard" or null`
283283 

api/beta/organization/analytics/usage Changed · +42 / -17 lines

from line 49
4949 
5050- `agent_ids: optional array of string`
5151 
52 Filter to usage incurred by sessions of specific Claude Managed Agents agents. Use `group_by[]=agent_id` to break out per-agent values. Claude Developer Platform organizations only.
52 Filter to usage incurred by sessions of specific Claude Managed Agents agents. Use `group_by[]=agent_id` to break out per-agent values. Claude Platform organizations only.
5353 
5454 maxItems: 100
5555 
5656- `api_key_ids: optional array of string`
5757 
58 Filter to usage authenticated by specific API keys, by tagged API key ID (`apikey_...`), whichever identity the usage is attributed to. Include an empty entry (`api_key_ids[]=`) to also match usage that no API key authenticated. Use `group_by[]=api_key_id` to break out per-key values; usage without a key has a null `api_key_id`. Claude Developer Platform organizations only.
58 Filter to usage authenticated by specific API keys, by tagged API key ID (`apikey_...`), whichever identity the usage is attributed to. Include an empty entry (`api_key_ids[]=`) to also match usage that no API key authenticated. Use `group_by[]=api_key_id` to break out per-key values; usage without a key has a null `api_key_id`. Claude Platform organizations only.
5959 
6060 maxItems: 100
6161 
6262- `claude_tag_categories: optional array of BetaAnalyticsClaudeTagCategory`
6363 
64 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. `dm` usage is reported under the user's product rather than `claude_tag`, so combining this filter with `products[]=claude_tag` excludes it. Use `group_by[]=claude_tag_category` to break out per-category values.
64 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. Use `group_by[]=claude_tag_category` to break out per-category values.
6565 
6666 maxItems: 100
6767 
from line 93
9393 
9494- `deployment_ids: optional array of string`
9595 
96 Filter to usage incurred by Claude Managed Agents sessions that specific deployments started. Use `group_by[]=deployment_id` to break out per-deployment values. Claude Developer Platform organizations only.
96 Filter to usage incurred by Claude Managed Agents sessions that specific deployments started. Use `group_by[]=deployment_id` to break out per-deployment values. Claude Platform organizations only.
9797 
9898 maxItems: 100
9999 
from line 105
105105 
106106- `environment_ids: optional array of string`
107107 
108 Filter to usage incurred by Claude Managed Agents sessions that ran in specific environments. Use `group_by[]=environment_id` to break out per-environment values. Claude Developer Platform organizations only.
108 Filter to usage incurred by Claude Managed Agents sessions that ran in specific environments. Use `group_by[]=environment_id` to break out per-environment values. Claude Platform organizations only.
109109 
110110 maxItems: 100
111111 
from line 143
143143 
144144 - `"model"`
145145 
146 - `"organization_id"`
147 
146148 - `"product"`
147149 
148150 - `"rbac_group_id"`
from line 207
205207 
206208 - `"uncached_input_tokens"`
207209 
210- `organization_ids: optional array of string`
211 
212 Filter a parent organization's report to specific child organizations, by organization UUID or `org_` ID; an ID that is not one of its child organizations matches nothing. Requires an API key created at the parent organization level. Use `group_by[]=organization_id` to break out per-organization values.
213 
214 maxItems: 100
215 
208216- `page: optional string`
209217 
210218 Opaque cursor from a previous response's `next_page` field.
from line 255
247255 
248256- `service_tiers: optional array of BetaAnalyticsServiceTier`
249257 
250 Filter to specific service tiers. Use `group_by[]=service_tier` to break out per-tier values. Claude Developer Platform organizations only; matches nothing for a Claude Enterprise organization.
258 Filter to specific service tiers. Use `group_by[]=service_tier` to break out per-tier values. Claude Platform organizations only; matches nothing for a Claude Enterprise organization.
251259 
252260 maxItems: 100
253261 
from line 273
265273 
266274- `session_ids: optional array of string`
267275 
268 Filter to usage incurred by specific Claude Managed Agents sessions, by tagged session ID (`sesn_...`). Use `group_by[]=session_id` to break out per-session values. Claude Developer Platform organizations only.
276 Filter to usage incurred by specific Claude Managed Agents sessions, by tagged session ID (`sesn_...`). Use `group_by[]=session_id` to break out per-session values. Claude Platform organizations only.
269277 
270278 maxItems: 100
271279 
from line 305
297305 
298306- `user_profile_ids: optional array of string`
299307 
300 Filter to usage attributed to specific user profiles, by tagged user profile ID (`uprof_...`). Use `group_by[]=user_profile_id` to break out per-profile values. Claude Developer Platform organizations only.
308 Filter to usage attributed to specific user profiles, by tagged user profile ID (`uprof_...`). Use `group_by[]=user_profile_id` to break out per-profile values. Claude Platform organizations only.
301309 
302310 maxItems: 100
303311 
304312- `workspace_ids: optional array of string`
305313 
306 Filter to usage in specific workspaces, by tagged workspace ID (`wrkspc_...`). Use `group_by[]=workspace_id` to break out per-workspace values. Claude Developer Platform organizations only; matches nothing for a Claude Enterprise organization.
314 Filter to usage in specific workspaces, by tagged workspace ID (`wrkspc_...`). Use `group_by[]=workspace_id` to break out per-workspace values. Claude Platform organizations only; matches nothing for a Claude Enterprise organization.
307315 
308316 maxItems: 100
309317 
from line 323
315323 
316324 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http).
317325 
318- `"anthropic-beta": optional array of AnthropicBeta`
326- `"anthropic-beta": array of AnthropicBeta`
319327 
320328 This endpoint is in beta: requests must send `analytics-usage-cost-2026-08-24` in this header.
321329 
from line 433
425433 
426434 - `"webhooks-2026-10-07"`
427435 
436 - `"admin-user-sign-out-2026-10-08"`
437 
428438 - `"message-threads-2026-08-12"`
429439 
430440 - `"analytics-usage-cost-2026-08-24"`
from line 569
559569 
560570 - `claude_tag_category: BetaAnalyticsClaudeTagCategory or null`
561571 
562 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude_tag`. New categories may be added over time.
572 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. New categories may be added over time.
563573 
564574 - `"dm"`
565575 
from line 613
603613 
604614 Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-5-5`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution.
605615 
616 - `organization_id: string or null`
617 
618 UUID of the child organization the usage belongs to, on a parent organization's report across its children. Null unless `organization_id` is in `group_by[]`.
619 
606620 - `product: string or null`
607621 
608622 Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include `chat`, `claude_code`, `cowork`, `office_agent`, `claude_in_chrome`, `claude_design`, `claude_tag`, and `chat_cowork_unified`. `claude_tag` is Claude Tag, the Claude product in Slack. `chat_cowork_unified` is Chat and Cowork unified, Cowork's features inside claude.ai chat: chat and Cowork usage by a member who has it turned on is reported under this value instead of `chat` or `cowork`. It is accepted as a filter only where Chat and Cowork unified is available. Some unattributed usage is reported as "other".
from line 647
633647 
634648 - `slack_channel_id: string or null`
635649 
636 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled).
650 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack, for some Claude Tag usage that has no channel recorded, and for usage recorded before channel attribution was enabled.
637651 
638652 - `speed: BetaAnalyticsSpeed or null`
639653 
from line 767
753767 "environment_id": "env_017oTjuGedHtjhJauVC5xGJD",
754768 "inference_geo": "global",
755769 "model": "claude-opus-5-5",
770 "organization_id": "12345678-1234-5678-1234-567812345678",
756771 "product": "chat",
757772 "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
758773 "service_tier": "standard",
from line 921
906921 
907922 - `claude_tag_category: BetaAnalyticsClaudeTagCategory or null`
908923 
909 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude_tag`. New categories may be added over time.
924 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. New categories may be added over time.
910925 
911926 - `"dm"`
912927 
from line 965
950965 
951966 Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-5-5`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution.
952967 
968 - `organization_id: string or null`
969 
970 UUID of the child organization the usage belongs to, on a parent organization's report across its children. Null unless `organization_id` is in `group_by[]`.
971 
953972 - `product: string or null`
954973 
955974 Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include `chat`, `claude_code`, `cowork`, `office_agent`, `claude_in_chrome`, `claude_design`, `claude_tag`, and `chat_cowork_unified`. `claude_tag` is Claude Tag, the Claude product in Slack. `chat_cowork_unified` is Chat and Cowork unified, Cowork's features inside claude.ai chat: chat and Cowork usage by a member who has it turned on is reported under this value instead of `chat` or `cowork`. It is accepted as a filter only where Chat and Cowork unified is available. Some unattributed usage is reported as "other".
from line 999
980999 
9811000 - `slack_channel_id: string or null`
9821001 
983 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled).
1002 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack, for some Claude Tag usage that has no channel recorded, and for usage recorded before channel attribution was enabled.
9841003 
9851004 - `speed: BetaAnalyticsSpeed or null`
9861005 
from line 1019
10001019 
10011020### Beta Analytics Usage Group By
10021021 
1003- `BetaAnalyticsUsageGroupBy = "actor" or "actor_type" or "agent_id" or 16 more`
1022- `BetaAnalyticsUsageGroupBy = "actor" or "actor_type" or "agent_id" or 17 more`
10041023 
10051024 - `"actor"`
10061025 
from line 1043
10241043 
10251044 - `"model"`
10261045 
1046 - `"organization_id"`
1047 
10271048 - `"product"`
10281049 
10291050 - `"rbac_group_id"`
from line 1187
11661187 
11671188 - `claude_tag_category: BetaAnalyticsClaudeTagCategory or null`
11681189 
1169 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude_tag`. New categories may be added over time.
1190 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. New categories may be added over time.
11701191 
11711192 - `"dm"`
11721193 
from line 1231
12101231 
12111232 Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-5-5`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution.
12121233 
1234 - `organization_id: string or null`
1235 
1236 UUID of the child organization the usage belongs to, on a parent organization's report across its children. Null unless `organization_id` is in `group_by[]`.
1237 
12131238 - `product: string or null`
12141239 
12151240 Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include `chat`, `claude_code`, `cowork`, `office_agent`, `claude_in_chrome`, `claude_design`, `claude_tag`, and `chat_cowork_unified`. `claude_tag` is Claude Tag, the Claude product in Slack. `chat_cowork_unified` is Chat and Cowork unified, Cowork's features inside claude.ai chat: chat and Cowork usage by a member who has it turned on is reported under this value instead of `chat` or `cowork`. It is accepted as a filter only where Chat and Cowork unified is available. Some unattributed usage is reported as "other".
from line 1265
12401265 
12411266 - `slack_channel_id: string or null`
12421267 
1243 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled).
1268 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack, for some Claude Tag usage that has no channel recorded, and for usage recorded before channel attribution was enabled.
12441269 
12451270 - `speed: BetaAnalyticsSpeed or null`
12461271 

api/beta/organization/analytics/usage/list Changed · +27 / -12 lines

from line 47
4747 
4848- `agent_ids: optional array of string`
4949 
50 Filter to usage incurred by sessions of specific Claude Managed Agents agents. Use `group_by[]=agent_id` to break out per-agent values. Claude Developer Platform organizations only.
50 Filter to usage incurred by sessions of specific Claude Managed Agents agents. Use `group_by[]=agent_id` to break out per-agent values. Claude Platform organizations only.
5151 
5252 maxItems: 100
5353 
5454- `api_key_ids: optional array of string`
5555 
56 Filter to usage authenticated by specific API keys, by tagged API key ID (`apikey_...`), whichever identity the usage is attributed to. Include an empty entry (`api_key_ids[]=`) to also match usage that no API key authenticated. Use `group_by[]=api_key_id` to break out per-key values; usage without a key has a null `api_key_id`. Claude Developer Platform organizations only.
56 Filter to usage authenticated by specific API keys, by tagged API key ID (`apikey_...`), whichever identity the usage is attributed to. Include an empty entry (`api_key_ids[]=`) to also match usage that no API key authenticated. Use `group_by[]=api_key_id` to break out per-key values; usage without a key has a null `api_key_id`. Claude Platform organizations only.
5757 
5858 maxItems: 100
5959 
6060- `claude_tag_categories: optional array of BetaAnalyticsClaudeTagCategory`
6161 
62 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. `dm` usage is reported under the user's product rather than `claude_tag`, so combining this filter with `products[]=claude_tag` excludes it. Use `group_by[]=claude_tag_category` to break out per-category values.
62 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. Use `group_by[]=claude_tag_category` to break out per-category values.
6363 
6464 maxItems: 100
6565 
from line 91
9191 
9292- `deployment_ids: optional array of string`
9393 
94 Filter to usage incurred by Claude Managed Agents sessions that specific deployments started. Use `group_by[]=deployment_id` to break out per-deployment values. Claude Developer Platform organizations only.
94 Filter to usage incurred by Claude Managed Agents sessions that specific deployments started. Use `group_by[]=deployment_id` to break out per-deployment values. Claude Platform organizations only.
9595 
9696 maxItems: 100
9797 
from line 103
103103 
104104- `environment_ids: optional array of string`
105105 
106 Filter to usage incurred by Claude Managed Agents sessions that ran in specific environments. Use `group_by[]=environment_id` to break out per-environment values. Claude Developer Platform organizations only.
106 Filter to usage incurred by Claude Managed Agents sessions that ran in specific environments. Use `group_by[]=environment_id` to break out per-environment values. Claude Platform organizations only.
107107 
108108 maxItems: 100
109109 
from line 141
141141 
142142 - `"model"`
143143 
144 - `"organization_id"`
145 
144146 - `"product"`
145147 
146148 - `"rbac_group_id"`
from line 205
203205 
204206 - `"uncached_input_tokens"`
205207 
208- `organization_ids: optional array of string`
209 
210 Filter a parent organization's report to specific child organizations, by organization UUID or `org_` ID; an ID that is not one of its child organizations matches nothing. Requires an API key created at the parent organization level. Use `group_by[]=organization_id` to break out per-organization values.
211 
212 maxItems: 100
213 
206214- `page: optional string`
207215 
208216 Opaque cursor from a previous response's `next_page` field.
from line 253
245253 
246254- `service_tiers: optional array of BetaAnalyticsServiceTier`
247255 
248 Filter to specific service tiers. Use `group_by[]=service_tier` to break out per-tier values. Claude Developer Platform organizations only; matches nothing for a Claude Enterprise organization.
256 Filter to specific service tiers. Use `group_by[]=service_tier` to break out per-tier values. Claude Platform organizations only; matches nothing for a Claude Enterprise organization.
249257 
250258 maxItems: 100
251259 
from line 271
263271 
264272- `session_ids: optional array of string`
265273 
266 Filter to usage incurred by specific Claude Managed Agents sessions, by tagged session ID (`sesn_...`). Use `group_by[]=session_id` to break out per-session values. Claude Developer Platform organizations only.
274 Filter to usage incurred by specific Claude Managed Agents sessions, by tagged session ID (`sesn_...`). Use `group_by[]=session_id` to break out per-session values. Claude Platform organizations only.
267275 
268276 maxItems: 100
269277 
from line 303
295303 
296304- `user_profile_ids: optional array of string`
297305 
298 Filter to usage attributed to specific user profiles, by tagged user profile ID (`uprof_...`). Use `group_by[]=user_profile_id` to break out per-profile values. Claude Developer Platform organizations only.
306 Filter to usage attributed to specific user profiles, by tagged user profile ID (`uprof_...`). Use `group_by[]=user_profile_id` to break out per-profile values. Claude Platform organizations only.
299307 
300308 maxItems: 100
301309 
302310- `workspace_ids: optional array of string`
303311 
304 Filter to usage in specific workspaces, by tagged workspace ID (`wrkspc_...`). Use `group_by[]=workspace_id` to break out per-workspace values. Claude Developer Platform organizations only; matches nothing for a Claude Enterprise organization.
312 Filter to usage in specific workspaces, by tagged workspace ID (`wrkspc_...`). Use `group_by[]=workspace_id` to break out per-workspace values. Claude Platform organizations only; matches nothing for a Claude Enterprise organization.
305313 
306314 maxItems: 100
307315 
from line 321
313321 
314322 Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning?sdk_languages=http).
315323 
316- `"anthropic-beta": optional array of AnthropicBeta`
324- `"anthropic-beta": array of AnthropicBeta`
317325 
318326 This endpoint is in beta: requests must send `analytics-usage-cost-2026-08-24` in this header.
319327 
from line 431
423431 
424432 - `"webhooks-2026-10-07"`
425433 
434 - `"admin-user-sign-out-2026-10-08"`
435 
426436 - `"message-threads-2026-08-12"`
427437 
428438 - `"analytics-usage-cost-2026-08-24"`
from line 567
557567 
558568 - `claude_tag_category: BetaAnalyticsClaudeTagCategory or null`
559569 
560 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude_tag`. New categories may be added over time.
570 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. New categories may be added over time.
561571 
562572 - `"dm"`
563573 
from line 611
601611 
602612 Model that produced the usage or cost, as a model name in the form the `models[]` filter accepts (for example, `claude-opus-5-5`). Null unless `model` is in `group_by[]`; it can also be null on grouped rows whose usage or cost is not attributed to a specific model, such as code execution.
603613 
614 - `organization_id: string or null`
615 
616 UUID of the child organization the usage belongs to, on a parent organization's report across its children. Null unless `organization_id` is in `group_by[]`.
617 
604618 - `product: string or null`
605619 
606620 Product surface that produced the usage or cost. Null unless product is in `group_by[]`; it can also be null on grouped rows whose usage cannot be attributed to a known surface. Values include `chat`, `claude_code`, `cowork`, `office_agent`, `claude_in_chrome`, `claude_design`, `claude_tag`, and `chat_cowork_unified`. `claude_tag` is Claude Tag, the Claude product in Slack. `chat_cowork_unified` is Chat and Cowork unified, Cowork's features inside claude.ai chat: chat and Cowork usage by a member who has it turned on is reported under this value instead of `chat` or `cowork`. It is accepted as a filter only where Chat and Cowork unified is available. Some unattributed usage is reported as "other".
from line 645
631645 
632646 - `slack_channel_id: string or null`
633647 
634 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled).
648 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack, for some Claude Tag usage that has no channel recorded, and for usage recorded before channel attribution was enabled.
635649 
636650 - `speed: BetaAnalyticsSpeed or null`
637651 
from line 765
751765 "environment_id": "env_017oTjuGedHtjhJauVC5xGJD",
752766 "inference_geo": "global",
753767 "model": "claude-opus-5-5",
768 "organization_id": "12345678-1234-5678-1234-567812345678",
754769 "product": "chat",
755770 "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
756771 "service_tier": "standard",

api/beta/organization/analytics/usage_report Changed · +3 / -3 lines

from line 37
3737 
3838- `claude_tag_categories: optional array of BetaAnalyticsClaudeTagCategory`
3939 
40 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. `dm` usage is reported under the user's product rather than `claude-tag`, so combining this filter with `products[]=claude-tag` excludes it. Use `group_by[]=claude_tag_category` to break out per-category values.
40 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. Use `group_by[]=claude_tag_category` to break out per-category values.
4141 
4242 maxItems: 100
4343 
from line 221
221221 
222222 - `claude_tag_category: BetaAnalyticsClaudeTagCategory or null`
223223 
224 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude-tag`. New categories may be added over time.
224 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. New categories may be added over time.
225225 
226226 - `"dm"`
227227 
from line 283
283283 
284284 - `slack_channel_id: string or null`
285285 
286 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled).
286 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack, for some Claude Tag usage that has no channel recorded, and for usage recorded before channel attribution was enabled.
287287 
288288 - `speed: "fast" or "standard" or null`
289289 

api/beta/organization/analytics/usage_report/list Changed · +3 / -3 lines

from line 35
3535 
3636- `claude_tag_categories: optional array of BetaAnalyticsClaudeTagCategory`
3737 
38 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. `dm` usage is reported under the user's product rather than `claude-tag`, so combining this filter with `products[]=claude-tag` excludes it. Use `group_by[]=claude_tag_category` to break out per-category values.
38 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. Use `group_by[]=claude_tag_category` to break out per-category values.
3939 
4040 maxItems: 100
4141 
from line 219
219219 
220220 - `claude_tag_category: BetaAnalyticsClaudeTagCategory or null`
221221 
222 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude-tag`. New categories may be added over time.
222 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. New categories may be added over time.
223223 
224224 - `"dm"`
225225 
from line 281
281281 
282282 - `slack_channel_id: string or null`
283283 
284 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled).
284 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack, for some Claude Tag usage that has no channel recorded, and for usage recorded before channel attribution was enabled.
285285 
286286 - `speed: "fast" or "standard" or null`
287287 

api/beta/organization/analytics/user_cost_report Changed · +25 / -23 lines

from line 11
1111 
1212[Legacy] Get per-user cost in USD across a date range.
1313 
14Returns cost per user, ranked by spend; `group_by[]` or `bucket_width` splits a user across several rows. Use this to see which users account for the most cost. Only cost attributed to a user account is included; cost with no user attributed to it, such as Code Review usage and Claude Tag usage in Slack channels, is left out. Available to organizations on a Claude Enterprise plan. Requires an API key with the `read:analytics` scope.
14Returns cost per user, ranked by spend; `group_by[]` or `bucket_width` splits a user across several rows. Use this to see which users account for the most cost. Only cost attributed to a user account is included, so cost with no user account, such as Code Review usage and Claude Tag usage in Slack channels, is left out. Claude Tag one-to-one direct messages are included, with product `claude-tag`, only for members who have connected a Claude account. Available to organizations on a Claude Enterprise plan. Requires an API key with the `read:analytics` scope.
1515 
1616This endpoint is one of the legacy Claude Enterprise usage and cost reports. For new integrations, use [`GET /v1/organizations/analytics/cost`](https://platform.claude.com/docs/en/api/beta/organization/analytics/cost/list?sdk_languages=http) in the Usage and Cost Analytics API instead. To move an existing integration, see [Migrate from the Claude Enterprise usage and cost reports](https://platform.claude.com/docs/en/manage-claude/usage-cost-analytics-api?sdk_languages=http#migrate-from-enterprise-analytics-reports).
1717 
from line 35
3535 
3636- `claude_tag_categories: optional array of BetaAnalyticsClaudeTagCategory`
3737 
38 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. `dm` usage is reported under the user's product rather than `claude-tag`, so combining this filter with `products[]=claude-tag` excludes it. Use `group_by[]=claude_tag_category` to break out per-category values.
38 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. Use `group_by[]=claude_tag_category` to break out per-category values.
3939 
4040 maxItems: 100
4141 
from line 221
221221 
222222 The user this row's usage or cost is attributed to. Always a `user_actor`.
223223 
224 - `type: "user_actor"`
224 - `BetaAnalyticsUserActor object`
225225 
226 Actor type. Always `"user_actor"`.
226 - `type: "user_actor"`
227227 
228 - `deleted: boolean`
228 Actor type. Always `"user_actor"`.
229229 
230 True when the account has been deleted, or when the user is no longer a member of the organization or its associated organizations (for example, their membership was removed or they were deprovisioned via your identity provider). `email_address` stays populated for removed users and is null when the account has been deleted. `name` follows the rules described on that field. The `user_id` is still populated for reconciliation.
230 - `deleted: boolean`
231231 
232 - `email_address: string or null`
232 True when the account has been deleted, or when the user is no longer a member of the organization or its associated organizations (for example, their membership was removed or they were deprovisioned via your identity provider). `email_address` stays populated for removed users and is null when the account has been deleted. `name` follows the rules described on that field. The `user_id` is still populated for reconciliation.
233233 
234 The user's email address, including for users who are no longer members of the organization or its associated organizations. Null when the account has been deleted (check `deleted`) and for system-minted service accounts, which have no person's mailbox behind them (check `name`).
234 - `email_address: string or null`
235235 
236 - `name: string or null`
236 The user's email address, including for users who are no longer members of the organization or its associated organizations. Null when the account has been deleted (check `deleted`) and for system-minted service accounts, which have no person's mailbox behind them (check `name`).
237237 
238 The user's full name. Null when the user has not set a name. Returns `"Deleted User"` when the account itself has been deleted, or when the user is no longer a member of the organization or its associated organizations and the organization has chosen to hide the names of removed users. Otherwise, the name stays populated for removed users. Rows for system-minted service accounts render the service name (for example, `"Claude Security"`) or null.
238 - `name: string or null`
239239 
240 - `user_id: string`
240 The user's full name. Null when the user has not set a name. Returns `"Deleted User"` when the account itself has been deleted, or when the user is no longer a member of the organization or its associated organizations and the organization has chosen to hide the names of removed users. Otherwise, the name stays populated for removed users. Rows for system-minted service accounts render the service name (for example, `"Claude Security"`) or null.
241241 
242 Tagged user ID.
242 - `user_id: string`
243243 
244 Tagged user ID.
245 
244246 - `amount: string`
245247 
246248 Amount (post-discount, pre-credit) in fractional cents (minor units).
from line 249
247249 
248250 - `claude_tag_category: BetaAnalyticsClaudeTagCategory or null`
249251 
250 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude-tag`. New categories may be added over time.
252 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. New categories may be added over time.
251253 
252254 - `"dm"`
253255 
from line 325
323325 
324326 - `slack_channel_id: string or null`
325327 
326 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled).
328 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack, for some Claude Tag usage that has no channel recorded, and for usage recorded before channel attribution was enabled.
327329 
328330 - `speed: "fast" or "standard" or null`
329331 

api/beta/organization/analytics/user_cost_report/list Changed · +25 / -23 lines

from line 9
99 
1010[Legacy] Get per-user cost in USD across a date range.
1111 
12Returns cost per user, ranked by spend; `group_by[]` or `bucket_width` splits a user across several rows. Use this to see which users account for the most cost. Only cost attributed to a user account is included; cost with no user attributed to it, such as Code Review usage and Claude Tag usage in Slack channels, is left out. Available to organizations on a Claude Enterprise plan. Requires an API key with the `read:analytics` scope.
12Returns cost per user, ranked by spend; `group_by[]` or `bucket_width` splits a user across several rows. Use this to see which users account for the most cost. Only cost attributed to a user account is included, so cost with no user account, such as Code Review usage and Claude Tag usage in Slack channels, is left out. Claude Tag one-to-one direct messages are included, with product `claude-tag`, only for members who have connected a Claude account. Available to organizations on a Claude Enterprise plan. Requires an API key with the `read:analytics` scope.
1313 
1414This endpoint is one of the legacy Claude Enterprise usage and cost reports. For new integrations, use [`GET /v1/organizations/analytics/cost`](https://platform.claude.com/docs/en/api/beta/organization/analytics/cost/list?sdk_languages=http) in the Usage and Cost Analytics API instead. To move an existing integration, see [Migrate from the Claude Enterprise usage and cost reports](https://platform.claude.com/docs/en/manage-claude/usage-cost-analytics-api?sdk_languages=http#migrate-from-enterprise-analytics-reports).
1515 
from line 33
3333 
3434- `claude_tag_categories: optional array of BetaAnalyticsClaudeTagCategory`
3535 
36 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. `dm` usage is reported under the user's product rather than `claude-tag`, so combining this filter with `products[]=claude-tag` excludes it. Use `group_by[]=claude_tag_category` to break out per-category values.
36 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. Use `group_by[]=claude_tag_category` to break out per-category values.
3737 
3838 maxItems: 100
3939 
from line 219
219219 
220220 The user this row's usage or cost is attributed to. Always a `user_actor`.
221221 
222 - `type: "user_actor"`
222 - `BetaAnalyticsUserActor object`
223223 
224 Actor type. Always `"user_actor"`.
224 - `type: "user_actor"`
225225 
226 - `deleted: boolean`
226 Actor type. Always `"user_actor"`.
227227 
228 True when the account has been deleted, or when the user is no longer a member of the organization or its associated organizations (for example, their membership was removed or they were deprovisioned via your identity provider). `email_address` stays populated for removed users and is null when the account has been deleted. `name` follows the rules described on that field. The `user_id` is still populated for reconciliation.
228 - `deleted: boolean`
229229 
230 - `email_address: string or null`
230 True when the account has been deleted, or when the user is no longer a member of the organization or its associated organizations (for example, their membership was removed or they were deprovisioned via your identity provider). `email_address` stays populated for removed users and is null when the account has been deleted. `name` follows the rules described on that field. The `user_id` is still populated for reconciliation.
231231 
232 The user's email address, including for users who are no longer members of the organization or its associated organizations. Null when the account has been deleted (check `deleted`) and for system-minted service accounts, which have no person's mailbox behind them (check `name`).
232 - `email_address: string or null`
233233 
234 - `name: string or null`
234 The user's email address, including for users who are no longer members of the organization or its associated organizations. Null when the account has been deleted (check `deleted`) and for system-minted service accounts, which have no person's mailbox behind them (check `name`).
235235 
236 The user's full name. Null when the user has not set a name. Returns `"Deleted User"` when the account itself has been deleted, or when the user is no longer a member of the organization or its associated organizations and the organization has chosen to hide the names of removed users. Otherwise, the name stays populated for removed users. Rows for system-minted service accounts render the service name (for example, `"Claude Security"`) or null.
236 - `name: string or null`
237237 
238 - `user_id: string`
238 The user's full name. Null when the user has not set a name. Returns `"Deleted User"` when the account itself has been deleted, or when the user is no longer a member of the organization or its associated organizations and the organization has chosen to hide the names of removed users. Otherwise, the name stays populated for removed users. Rows for system-minted service accounts render the service name (for example, `"Claude Security"`) or null.
239239 
240 Tagged user ID.
240 - `user_id: string`
241241 
242 Tagged user ID.
243 
242244 - `amount: string`
243245 
244246 Amount (post-discount, pre-credit) in fractional cents (minor units).
from line 247
245247 
246248 - `claude_tag_category: BetaAnalyticsClaudeTagCategory or null`
247249 
248 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude-tag`. New categories may be added over time.
250 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. New categories may be added over time.
249251 
250252 - `"dm"`
251253 
from line 323
321323 
322324 - `slack_channel_id: string or null`
323325 
324 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled).
326 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack, for some Claude Tag usage that has no channel recorded, and for usage recorded before channel attribution was enabled.
325327 
326328 - `speed: "fast" or "standard" or null`
327329 

api/beta/organization/analytics/user_usage_report Changed · +25 / -23 lines

from line 11
1111 
1212[Legacy] Get per-user token usage across a date range.
1313 
14Returns usage per user, ranked by the chosen token metric; `group_by[]` or `bucket_width` splits a user across several rows. Use this to see which users consume the most tokens. Only usage attributed to a user account is included; usage with no user attributed to it, such as Code Review usage and Claude Tag usage in Slack channels, is left out. Available to organizations on a Claude Enterprise plan. Requires an API key with the `read:analytics` scope.
14Returns usage per user, ranked by the chosen token metric; `group_by[]` or `bucket_width` splits a user across several rows. Use this to see which users consume the most tokens. Only usage attributed to a user account is included, so usage with no user account, such as Code Review usage and Claude Tag usage in Slack channels, is left out. Claude Tag one-to-one direct messages are included, with product `claude-tag`, only for members who have connected a Claude account. Available to organizations on a Claude Enterprise plan. Requires an API key with the `read:analytics` scope.
1515 
1616This endpoint is one of the legacy Claude Enterprise usage and cost reports. For new integrations, use [`GET /v1/organizations/analytics/usage`](https://platform.claude.com/docs/en/api/beta/organization/analytics/usage/list?sdk_languages=http) in the Usage and Cost Analytics API instead. To move an existing integration, see [Migrate from the Claude Enterprise usage and cost reports](https://platform.claude.com/docs/en/manage-claude/usage-cost-analytics-api?sdk_languages=http#migrate-from-enterprise-analytics-reports).
1717 
from line 35
3535 
3636- `claude_tag_categories: optional array of BetaAnalyticsClaudeTagCategory`
3737 
38 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. `dm` usage is reported under the user's product rather than `claude-tag`, so combining this filter with `products[]=claude-tag` excludes it. Use `group_by[]=claude_tag_category` to break out per-category values.
38 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. Use `group_by[]=claude_tag_category` to break out per-category values.
3939 
4040 maxItems: 100
4141 
from line 221
221221 
222222 The user this row's usage or cost is attributed to. Always a `user_actor`.
223223 
224 - `type: "user_actor"`
224 - `BetaAnalyticsUserActor object`
225225 
226 Actor type. Always `"user_actor"`.
226 - `type: "user_actor"`
227227 
228 - `deleted: boolean`
228 Actor type. Always `"user_actor"`.
229229 
230 True when the account has been deleted, or when the user is no longer a member of the organization or its associated organizations (for example, their membership was removed or they were deprovisioned via your identity provider). `email_address` stays populated for removed users and is null when the account has been deleted. `name` follows the rules described on that field. The `user_id` is still populated for reconciliation.
230 - `deleted: boolean`
231231 
232 - `email_address: string or null`
232 True when the account has been deleted, or when the user is no longer a member of the organization or its associated organizations (for example, their membership was removed or they were deprovisioned via your identity provider). `email_address` stays populated for removed users and is null when the account has been deleted. `name` follows the rules described on that field. The `user_id` is still populated for reconciliation.
233233 
234 The user's email address, including for users who are no longer members of the organization or its associated organizations. Null when the account has been deleted (check `deleted`) and for system-minted service accounts, which have no person's mailbox behind them (check `name`).
234 - `email_address: string or null`
235235 
236 - `name: string or null`
236 The user's email address, including for users who are no longer members of the organization or its associated organizations. Null when the account has been deleted (check `deleted`) and for system-minted service accounts, which have no person's mailbox behind them (check `name`).
237237 
238 The user's full name. Null when the user has not set a name. Returns `"Deleted User"` when the account itself has been deleted, or when the user is no longer a member of the organization or its associated organizations and the organization has chosen to hide the names of removed users. Otherwise, the name stays populated for removed users. Rows for system-minted service accounts render the service name (for example, `"Claude Security"`) or null.
238 - `name: string or null`
239239 
240 - `user_id: string`
240 The user's full name. Null when the user has not set a name. Returns `"Deleted User"` when the account itself has been deleted, or when the user is no longer a member of the organization or its associated organizations and the organization has chosen to hide the names of removed users. Otherwise, the name stays populated for removed users. Rows for system-minted service accounts render the service name (for example, `"Claude Security"`) or null.
241241 
242 Tagged user ID.
242 - `user_id: string`
243243 
244 Tagged user ID.
245 
244246 - `cache_creation: BetaCacheCreation`
245247 
246248 The number of input tokens for cache creation.
from line 265
263265 
264266 - `claude_tag_category: BetaAnalyticsClaudeTagCategory or null`
265267 
266 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude-tag`. New categories may be added over time.
268 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. New categories may be added over time.
267269 
268270 - `"dm"`
269271 
from line 333
331333 
332334 - `slack_channel_id: string or null`
333335 
334 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled).
336 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack, for some Claude Tag usage that has no channel recorded, and for usage recorded before channel attribution was enabled.
335337 
336338 - `speed: "fast" or "standard" or null`
337339 

api/beta/organization/analytics/user_usage_report/list Changed · +25 / -23 lines

from line 9
99 
1010[Legacy] Get per-user token usage across a date range.
1111 
12Returns usage per user, ranked by the chosen token metric; `group_by[]` or `bucket_width` splits a user across several rows. Use this to see which users consume the most tokens. Only usage attributed to a user account is included; usage with no user attributed to it, such as Code Review usage and Claude Tag usage in Slack channels, is left out. Available to organizations on a Claude Enterprise plan. Requires an API key with the `read:analytics` scope.
12Returns usage per user, ranked by the chosen token metric; `group_by[]` or `bucket_width` splits a user across several rows. Use this to see which users consume the most tokens. Only usage attributed to a user account is included, so usage with no user account, such as Code Review usage and Claude Tag usage in Slack channels, is left out. Claude Tag one-to-one direct messages are included, with product `claude-tag`, only for members who have connected a Claude account. Available to organizations on a Claude Enterprise plan. Requires an API key with the `read:analytics` scope.
1313 
1414This endpoint is one of the legacy Claude Enterprise usage and cost reports. For new integrations, use [`GET /v1/organizations/analytics/usage`](https://platform.claude.com/docs/en/api/beta/organization/analytics/usage/list?sdk_languages=http) in the Usage and Cost Analytics API instead. To move an existing integration, see [Migrate from the Claude Enterprise usage and cost reports](https://platform.claude.com/docs/en/manage-claude/usage-cost-analytics-api?sdk_languages=http#migrate-from-enterprise-analytics-reports).
1515 
from line 33
3333 
3434- `claude_tag_categories: optional array of BetaAnalyticsClaudeTagCategory`
3535 
36 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. `dm` usage is reported under the user's product rather than `claude-tag`, so combining this filter with `products[]=claude-tag` excludes it. Use `group_by[]=claude_tag_category` to break out per-category values.
36 Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. Use `group_by[]=claude_tag_category` to break out per-category values.
3737 
3838 maxItems: 100
3939 
from line 219
219219 
220220 The user this row's usage or cost is attributed to. Always a `user_actor`.
221221 
222 - `type: "user_actor"`
222 - `BetaAnalyticsUserActor object`
223223 
224 Actor type. Always `"user_actor"`.
224 - `type: "user_actor"`
225225 
226 - `deleted: boolean`
226 Actor type. Always `"user_actor"`.
227227 
228 True when the account has been deleted, or when the user is no longer a member of the organization or its associated organizations (for example, their membership was removed or they were deprovisioned via your identity provider). `email_address` stays populated for removed users and is null when the account has been deleted. `name` follows the rules described on that field. The `user_id` is still populated for reconciliation.
228 - `deleted: boolean`
229229 
230 - `email_address: string or null`
230 True when the account has been deleted, or when the user is no longer a member of the organization or its associated organizations (for example, their membership was removed or they were deprovisioned via your identity provider). `email_address` stays populated for removed users and is null when the account has been deleted. `name` follows the rules described on that field. The `user_id` is still populated for reconciliation.
231231 
232 The user's email address, including for users who are no longer members of the organization or its associated organizations. Null when the account has been deleted (check `deleted`) and for system-minted service accounts, which have no person's mailbox behind them (check `name`).
232 - `email_address: string or null`
233233 
234 - `name: string or null`
234 The user's email address, including for users who are no longer members of the organization or its associated organizations. Null when the account has been deleted (check `deleted`) and for system-minted service accounts, which have no person's mailbox behind them (check `name`).
235235 
236 The user's full name. Null when the user has not set a name. Returns `"Deleted User"` when the account itself has been deleted, or when the user is no longer a member of the organization or its associated organizations and the organization has chosen to hide the names of removed users. Otherwise, the name stays populated for removed users. Rows for system-minted service accounts render the service name (for example, `"Claude Security"`) or null.
236 - `name: string or null`
237237 
238 - `user_id: string`
238 The user's full name. Null when the user has not set a name. Returns `"Deleted User"` when the account itself has been deleted, or when the user is no longer a member of the organization or its associated organizations and the organization has chosen to hide the names of removed users. Otherwise, the name stays populated for removed users. Rows for system-minted service accounts render the service name (for example, `"Claude Security"`) or null.
239239 
240 Tagged user ID.
240 - `user_id: string`
241241 
242 Tagged user ID.
243 
242244 - `cache_creation: BetaCacheCreation`
243245 
244246 The number of input tokens for cache creation.
from line 263
261263 
262264 - `claude_tag_category: BetaAnalyticsClaudeTagCategory or null`
263265 
264 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. Direct-message usage is billed to the individual user and is reported under that user's product, not under `claude-tag`. New categories may be added over time.
266 Claude Tag (Claude in Slack) spend category: `engaged` (a person addressed Claude in a channel or thread), `proactive` (Claude responded without being addressed), `scheduled` (a scheduled routine ran), `monitoring` (Claude watching a channel it was asked to monitor), or `dm` (direct messages with Claude). Populated only when `claude_tag_category` is in `group_by[]`; null for usage that is not Claude Tag. New categories may be added over time.
265267 
266268 - `"dm"`
267269 
from line 331
329331 
330332 - `slack_channel_id: string or null`
331333 
332 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack (and for rows recorded before channel attribution was enabled).
334 Slack channel the usage originated from. Populated only when `slack_channel_id` is in `group_by[]`; null for usage outside Slack, for some Claude Tag usage that has no channel recorded, and for usage recorded before channel attribution was enabled.
333335 
334336 - `speed: "fast" or "standard" or null`
335337 

api/beta/organization/claude_tag Changed · +615 / -8 lines

### Beta API Key Scope Missing Error Details ### Beta Claude Tag Reply Mode ### Beta Claude Tag Reply Mode Always Awake ### Beta Claude Tag Reply Mode Automatic ### Beta Claude Tag Reply Mode Mention Only ### Beta Claude Tag Reply Mode Thread ### Beta Claude Tag Writes Not Enabled Error Details ### Beta Compliance Configuration Restricted Error Details ### Beta Organization Level Scoped API Key Required Error Details ### Beta Slack Channel Set Up Environment Not Found Error Details ### Beta Slack Channel Set Up Settings Conflict Error Details ### Beta Slack Channel Set Up Settings Refused Error Details

The two sides of this change are more than 400 edits apart, too far apart to line up, so this is the differ's own diff of it and the words inside a line are not marked.

from line 7
77 
88## Domain types
99 
10### Beta API Key Scope Missing Error Details
11 
12- `BetaAPIKeyScopeMissingErrorDetails object`
13 
14 The API key lacks the scope the request needs: `read:claude_tag` for a read, `write:claude_tag` for a change.
15 
16 - `error_code: "api_key_scope_missing"`
17 
1018### Beta Claude Tag Default Setting Source
1119 
1220- `BetaClaudeTagDefaultSettingSource object`
from line 71
6371 
6472 - `type: "restrict"`
6573 
74### Beta Claude Tag Reply Mode
75 
76- `BetaClaudeTagReplyMode = BetaClaudeTagReplyModeAutomatic or BetaClaudeTagReplyModeMentionOnly or BetaClaudeTagReplyModeAlwaysAwake or BetaClaudeTagReplyModeThread`
77 
78 How Claude takes part in a Slack channel. A channel alone stores one. More types can be added.
79 
80 - `BetaClaudeTagReplyModeAutomatic object`
81 
82 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
83 
84 - `type: "automatic"`
85 
86 - `BetaClaudeTagReplyModeMentionOnly object`
87 
88 Claude replies only when it is @-mentioned.
89 
90 - `type: "mention_only"`
91 
92 - `BetaClaudeTagReplyModeAlwaysAwake object`
93 
94 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
95 
96 - `type: "always_awake"`
97 
98 - `BetaClaudeTagReplyModeThread object`
99 
100 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
101 
102 - `type: "thread"`
103 
104### Beta Claude Tag Reply Mode Always Awake
105 
106- `BetaClaudeTagReplyModeAlwaysAwake object`
107 
108 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
109 
110 - `type: "always_awake"`
111 
112### Beta Claude Tag Reply Mode Automatic
113 
114- `BetaClaudeTagReplyModeAutomatic object`
115 
116 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
117 
118 - `type: "automatic"`
119 
120### Beta Claude Tag Reply Mode Mention Only
121 
122- `BetaClaudeTagReplyModeMentionOnly object`
123 
124 Claude replies only when it is @-mentioned.
125 
126 - `type: "mention_only"`
127 
128### Beta Claude Tag Reply Mode Thread
129 
130- `BetaClaudeTagReplyModeThread object`
131 
132 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
133 
134 - `type: "thread"`
135 
66136### Beta Claude Tag Setting Source
67137 
68138- `BetaClaudeTagSettingSource = BetaClaudeTagSlackChannelSettingSource or BetaClaudeTagSlackWorkspaceSettingSource or BetaClaudeTagSlackParentChannelSettingSource or 3 more`
from line 317
247317 
248318 The settings level `model` comes from.
249319 
320 - `reply_mode: BetaClaudeTagSettingSource or null`
321 
322 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
323 
250324### Beta Claude Tag Settings
251325 
252326- `BetaClaudeTagSettings object`
253327 
254 Claude Tag settings. Without `include_inherited`, a setting that is null is not set on the settings level and is inherited. With it, `enabled` and `guest_policy` are never null, and `instructions`, `model` and `environment_id` are null when no settings level sets them.
328 Claude Tag settings. Without `include_inherited`, a setting that is null is not set on the settings level and is inherited. With it, `enabled` and `guest_policy` are never null, `instructions`, `model` and `environment_id` are null when no settings level sets them, and `reply_mode` is null unless the channel itself stores one.
255329 
256330 - `enabled: boolean or null`
257331 
from line 365
291365 
292366 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
293367 
368 - `reply_mode: BetaClaudeTagReplyMode or null`
369 
370 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
371 
372 - `BetaClaudeTagReplyModeAutomatic object`
373 
374 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
375 
376 - `type: "automatic"`
377 
378 - `BetaClaudeTagReplyModeMentionOnly object`
379 
380 Claude replies only when it is @-mentioned.
381 
382 - `type: "mention_only"`
383 
384 - `BetaClaudeTagReplyModeAlwaysAwake object`
385 
386 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
387 
388 - `type: "always_awake"`
389 
390 - `BetaClaudeTagReplyModeThread object`
391 
392 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
393 
394 - `type: "thread"`
395 
294396### Beta Claude Tag Settings Create
295397 
296398- `BetaClaudeTagSettingsCreate object`
from line 441
339441 
340442 minLength: 1, maxLength: 128
341443 
444 - `reply_mode: optional BetaClaudeTagReplyMode or null`
445 
446 How Claude takes part in the channel: `automatic`, `mention_only`, `always_awake` or `thread`. Only a channel takes one: an update of a workspace that sends a value is refused, and one that sends null changes nothing. Null never clears it: sent to a channel that stores none it changes nothing, and sent to a channel that stores one it is refused, because a stored reply mode can be changed but never cleared; a caller that wants Claude's default behavior sends `automatic`.
447 
448 - `BetaClaudeTagReplyModeAutomatic object`
449 
450 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
451 
452 - `type: "automatic"`
453 
454 - `BetaClaudeTagReplyModeMentionOnly object`
455 
456 Claude replies only when it is @-mentioned.
457 
458 - `type: "mention_only"`
459 
460 - `BetaClaudeTagReplyModeAlwaysAwake object`
461 
462 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
463 
464 - `type: "always_awake"`
465 
466 - `BetaClaudeTagReplyModeThread object`
467 
468 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
469 
470 - `type: "thread"`
471 
342472### Beta Claude Tag Settings Update
343473 
344474- `BetaClaudeTagSettingsUpdate object`
from line 517
387517 
388518 minLength: 1, maxLength: 128
389519 
520 - `reply_mode: optional BetaClaudeTagReplyMode or null`
521 
522 How Claude takes part in the channel: `automatic`, `mention_only`, `always_awake` or `thread`. Only a channel takes one: an update of a workspace that sends a value is refused, and one that sends null changes nothing. Null never clears it: sent to a channel that stores none it changes nothing, and sent to a channel that stores one it is refused, because a stored reply mode can be changed but never cleared; a caller that wants Claude's default behavior sends `automatic`.
523 
524 - `BetaClaudeTagReplyModeAutomatic object`
525 
526 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
527 
528 - `type: "automatic"`
529 
530 - `BetaClaudeTagReplyModeMentionOnly object`
531 
532 Claude replies only when it is @-mentioned.
533 
534 - `type: "mention_only"`
535 
536 - `BetaClaudeTagReplyModeAlwaysAwake object`
537 
538 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
539 
540 - `type: "always_awake"`
541 
542 - `BetaClaudeTagReplyModeThread object`
543 
544 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
545 
546 - `type: "thread"`
547 
390548### Beta Claude Tag Slack Channel Identifiers
391549 
392550- `BetaClaudeTagSlackChannelIdentifiers object`
from line 641
483641 
484642 The workspace's identifier, starting with `slws_`.
485643 
644### Beta Claude Tag Writes Not Enabled Error Details
645 
646- `BetaClaudeTagWritesNotEnabledErrorDetails object`
647 
648 Changes through the Claude Tag API are not enabled for the organization.
649 
650 - `error_code: "claude_tag_writes_not_enabled"`
651 
652### Beta Compliance Configuration Restricted Error Details
653 
654- `BetaComplianceConfigurationRestrictedErrorDetails object`
655 
656 The organization's compliance configuration does not let Claude Tag store anything new.
657 
658 - `error_code: "compliance_configuration_restricted"`
659 
660### Beta Organization Level Scoped API Key Required Error Details
661 
662- `BetaOrganizationLevelScopedAPIKeyRequiredErrorDetails object`
663 
664 The credential is not a scoped API key that is bound at the organization level.
665 
666 - `error_code: "organization_level_scoped_api_key_required"`
667 
668### Beta Slack Channel Set Up Environment Not Found Error Details
669 
670- `BetaSlackChannelSetUpEnvironmentNotFoundErrorDetails object`
671 
672 `settings.environment_id` names no Environment within the organization's reach, and the request had set the channel up by then. The channel stays set up with every setting unset.
673 
674 - `error_code: "slack_channel_set_up_environment_not_found"`
675 
676 - `slack_channel_id: string`
677 
678 The identifier of the channel the request set up, starting with `slch_`.
679 
680### Beta Slack Channel Set Up Settings Conflict Error Details
681 
682- `BetaSlackChannelSetUpSettingsConflictErrorDetails object`
683 
684 The request set the channel up, and something else then changed the channel or removed it. Nothing of `settings` was stored.
685 
686 - `error_code: "slack_channel_set_up_settings_conflict"`
687 
688 A stable code that names the cause.
689 
690 - `slack_channel_id: string`
691 
692 The identifier of the channel the request set up, starting with `slch_`.
693 
694### Beta Slack Channel Set Up Settings Refused Error Details
695 
696- `BetaSlackChannelSetUpSettingsRefusedErrorDetails object`
697 
698 The request set the channel up, and `settings` was then refused. The channel stays set up with every setting unset.
699 
700 - `error_code: "slack_channel_set_up_settings_refused"`
701 
702 A stable code that names the cause.
703 
704 - `slack_channel_id: string`
705 
706 The identifier of the channel the request set up, starting with `slch_`.
707 
486708## Claude Tag › Slack Channels
487709 
488710### Set Up Slack Channel
from line 831
609831 
610832 - `"webhooks-2026-10-07"`
611833 
834 - `"admin-user-sign-out-2026-10-08"`
835 
612836 - `"message-threads-2026-08-12"`
613837 
614838 - `"analytics-usage-cost-2026-08-24"`
from line 903
679903 
680904 minLength: 1, maxLength: 128
681905 
906 - `reply_mode: optional BetaClaudeTagReplyMode or null`
907 
908 How Claude takes part in the channel: `automatic`, `mention_only`, `always_awake` or `thread`. Only a channel takes one: an update of a workspace that sends a value is refused, and one that sends null changes nothing. Null never clears it: sent to a channel that stores none it changes nothing, and sent to a channel that stores one it is refused, because a stored reply mode can be changed but never cleared; a caller that wants Claude's default behavior sends `automatic`.
909 
910 - `BetaClaudeTagReplyModeAutomatic object`
911 
912 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
913 
914 - `type: "automatic"`
915 
916 - `BetaClaudeTagReplyModeMentionOnly object`
917 
918 Claude replies only when it is @-mentioned.
919 
920 - `type: "mention_only"`
921 
922 - `BetaClaudeTagReplyModeAlwaysAwake object`
923 
924 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
925 
926 - `type: "always_awake"`
927 
928 - `BetaClaudeTagReplyModeThread object`
929 
930 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
931 
932 - `type: "thread"`
933 
682934#### Returns
683935 
684936- `BetaClaudeTagSlackChannel object`
from line 991
739991 
740992 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
741993 
994 - `reply_mode: BetaClaudeTagReplyMode or null`
995 
996 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
997 
998 - `BetaClaudeTagReplyModeAutomatic object`
999 
1000 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
1001 
1002 - `type: "automatic"`
1003 
1004 - `BetaClaudeTagReplyModeMentionOnly object`
1005 
1006 Claude replies only when it is @-mentioned.
1007 
1008 - `type: "mention_only"`
1009 
1010 - `BetaClaudeTagReplyModeAlwaysAwake object`
1011 
1012 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
1013 
1014 - `type: "always_awake"`
1015 
1016 - `BetaClaudeTagReplyModeThread object`
1017 
1018 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
1019 
1020 - `type: "thread"`
1021 
7421022 - `slack: BetaClaudeTagSlackChannelIdentifiers`
7431023 
7441024 Slack's own identifiers for the channel.
from line 1134
8541134 - `model: BetaClaudeTagSettingSource or null`
8551135 
8561136 The settings level `model` comes from.
1137 
1138 - `reply_mode: BetaClaudeTagSettingSource or null`
1139 
1140 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
8571141 
8581142 - `updated_at: string`
8591143 
from line 1174
8901174 "type": "allow"
8911175 },
8921176 "instructions": "instructions",
893 "model": "model"
1177 "model": "model",
1178 "reply_mode": {
1179 "type": "automatic"
1180 }
8941181 },
8951182 "slack": {
8961183 "channel_id": "xx",
from line 1205
9181205 "model": {
9191206 "slack_channel_id": "slack_channel_id",
9201207 "type": "slack_channel"
1208 },
1209 "reply_mode": {
1210 "slack_channel_id": "slack_channel_id",
1211 "type": "slack_channel"
9211212 }
9221213 },
9231214 "type": "slack_channel",
from line 1364
10731364 
10741365 - `"webhooks-2026-10-07"`
10751366 
1367 - `"admin-user-sign-out-2026-10-08"`
1368 
10761369 - `"message-threads-2026-08-12"`
10771370 
10781371 - `"analytics-usage-cost-2026-08-24"`
from line 1432
11391432 
11401433 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
11411434 
1435 - `reply_mode: BetaClaudeTagReplyMode or null`
1436 
1437 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
1438 
1439 - `BetaClaudeTagReplyModeAutomatic object`
1440 
1441 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
1442 
1443 - `type: "automatic"`
1444 
1445 - `BetaClaudeTagReplyModeMentionOnly object`
1446 
1447 Claude replies only when it is @-mentioned.
1448 
1449 - `type: "mention_only"`
1450 
1451 - `BetaClaudeTagReplyModeAlwaysAwake object`
1452 
1453 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
1454 
1455 - `type: "always_awake"`
1456 
1457 - `BetaClaudeTagReplyModeThread object`
1458 
1459 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
1460 
1461 - `type: "thread"`
1462 
11421463 - `slack: BetaClaudeTagSlackChannelIdentifiers`
11431464 
11441465 Slack's own identifiers for the channel.
from line 1575
12541575 - `model: BetaClaudeTagSettingSource or null`
12551576 
12561577 The settings level `model` comes from.
1578 
1579 - `reply_mode: BetaClaudeTagSettingSource or null`
1580 
1581 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
12571582 
12581583 - `updated_at: string`
12591584 
from line 1614
12891614 "type": "allow"
12901615 },
12911616 "instructions": "instructions",
1292 "model": "model"
1617 "model": "model",
1618 "reply_mode": {
1619 "type": "automatic"
1620 }
12931621 },
12941622 "slack": {
12951623 "channel_id": "xx",
from line 1645
13171645 "model": {
13181646 "slack_channel_id": "slack_channel_id",
13191647 "type": "slack_channel"
1648 },
1649 "reply_mode": {
1650 "slack_channel_id": "slack_channel_id",
1651 "type": "slack_channel"
13201652 }
13211653 },
13221654 "type": "slack_channel",
from line 1795
14631795 
14641796 - `"webhooks-2026-10-07"`
14651797 
1798 - `"admin-user-sign-out-2026-10-08"`
1799 
14661800 - `"message-threads-2026-08-12"`
14671801 
14681802 - `"analytics-usage-cost-2026-08-24"`
from line 1863
15291863 
15301864 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
15311865 
1866 - `reply_mode: BetaClaudeTagReplyMode or null`
1867 
1868 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
1869 
1870 - `BetaClaudeTagReplyModeAutomatic object`
1871 
1872 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
1873 
1874 - `type: "automatic"`
1875 
1876 - `BetaClaudeTagReplyModeMentionOnly object`
1877 
1878 Claude replies only when it is @-mentioned.
1879 
1880 - `type: "mention_only"`
1881 
1882 - `BetaClaudeTagReplyModeAlwaysAwake object`
1883 
1884 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
1885 
1886 - `type: "always_awake"`
1887 
1888 - `BetaClaudeTagReplyModeThread object`
1889 
1890 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
1891 
1892 - `type: "thread"`
1893 
15321894 - `slack: BetaClaudeTagSlackChannelIdentifiers`
15331895 
15341896 Slack's own identifiers for the channel.
from line 2006
16442006 - `model: BetaClaudeTagSettingSource or null`
16452007 
16462008 The settings level `model` comes from.
2009 
2010 - `reply_mode: BetaClaudeTagSettingSource or null`
2011 
2012 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
16472013 
16482014 - `updated_at: string`
16492015 
from line 2039
16732039 "type": "allow"
16742040 },
16752041 "instructions": "instructions",
1676 "model": "model"
2042 "model": "model",
2043 "reply_mode": {
2044 "type": "automatic"
2045 }
16772046 },
16782047 "slack": {
16792048 "channel_id": "xx",
from line 2070
17012070 "model": {
17022071 "slack_channel_id": "slack_channel_id",
17032072 "type": "slack_channel"
2073 },
2074 "reply_mode": {
2075 "slack_channel_id": "slack_channel_id",
2076 "type": "slack_channel"
17042077 }
17052078 },
17062079 "type": "slack_channel",
from line 2211
18382211 
18392212 - `"webhooks-2026-10-07"`
18402213 
2214 - `"admin-user-sign-out-2026-10-08"`
2215 
18412216 - `"message-threads-2026-08-12"`
18422217 
18432218 - `"analytics-usage-cost-2026-08-24"`
from line 2267
18922267 
18932268 minLength: 1, maxLength: 128
18942269 
2270 - `reply_mode: optional BetaClaudeTagReplyMode or null`
2271 
2272 How Claude takes part in the channel: `automatic`, `mention_only`, `always_awake` or `thread`. Only a channel takes one: an update of a workspace that sends a value is refused, and one that sends null changes nothing. Null never clears it: sent to a channel that stores none it changes nothing, and sent to a channel that stores one it is refused, because a stored reply mode can be changed but never cleared; a caller that wants Claude's default behavior sends `automatic`.
2273 
2274 - `BetaClaudeTagReplyModeAutomatic object`
2275 
2276 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
2277 
2278 - `type: "automatic"`
2279 
2280 - `BetaClaudeTagReplyModeMentionOnly object`
2281 
2282 Claude replies only when it is @-mentioned.
2283 
2284 - `type: "mention_only"`
2285 
2286 - `BetaClaudeTagReplyModeAlwaysAwake object`
2287 
2288 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
2289 
2290 - `type: "always_awake"`
2291 
2292 - `BetaClaudeTagReplyModeThread object`
2293 
2294 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
2295 
2296 - `type: "thread"`
2297 
18952298#### Returns
18962299 
18972300- `BetaClaudeTagSlackChannel object`
from line 2355
19522355 
19532356 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
19542357 
2358 - `reply_mode: BetaClaudeTagReplyMode or null`
2359 
2360 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
2361 
2362 - `BetaClaudeTagReplyModeAutomatic object`
2363 
2364 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
2365 
2366 - `type: "automatic"`
2367 
2368 - `BetaClaudeTagReplyModeMentionOnly object`
2369 
2370 Claude replies only when it is @-mentioned.
2371 
2372 - `type: "mention_only"`
2373 
2374 - `BetaClaudeTagReplyModeAlwaysAwake object`
2375 
2376 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
2377 
2378 - `type: "always_awake"`
2379 
2380 - `BetaClaudeTagReplyModeThread object`
2381 
2382 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
2383 
2384 - `type: "thread"`
2385 
19552386 - `slack: BetaClaudeTagSlackChannelIdentifiers`
19562387 
19572388 Slack's own identifiers for the channel.
from line 2498
20672498 - `model: BetaClaudeTagSettingSource or null`
20682499 
20692500 The settings level `model` comes from.
2501 
2502 - `reply_mode: BetaClaudeTagSettingSource or null`
2503 
2504 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
20702505 
20712506 - `updated_at: string`
20722507 
from line 2535
21002535 "type": "allow"
21012536 },
21022537 "instructions": "instructions",
2103 "model": "model"
2538 "model": "model",
2539 "reply_mode": {
2540 "type": "automatic"
2541 }
21042542 },
21052543 "slack": {
21062544 "channel_id": "xx",
from line 2566
21282566 "model": {
21292567 "slack_channel_id": "slack_channel_id",
21302568 "type": "slack_channel"
2569 },
2570 "reply_mode": {
2571 "slack_channel_id": "slack_channel_id",
2572 "type": "slack_channel"
21312573 }
21322574 },
21332575 "type": "slack_channel",
from line 2706
22642706 - `"telemetry-destinations-2026-08-11"`
22652707 
22662708 - `"webhooks-2026-10-07"`
2709 
2710 - `"admin-user-sign-out-2026-10-08"`
22672711 
22682712 - `"message-threads-2026-08-12"`
22692713 
from line 2892
24482892 
24492893 - `"webhooks-2026-10-07"`
24502894 
2895 - `"admin-user-sign-out-2026-10-08"`
2896 
24512897 - `"message-threads-2026-08-12"`
24522898 
24532899 - `"analytics-usage-cost-2026-08-24"`
from line 2960
25142960 
25152961 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
25162962 
2963 - `reply_mode: BetaClaudeTagReplyMode or null`
2964 
2965 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
2966 
2967 - `BetaClaudeTagReplyModeAutomatic object`
2968 
2969 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
2970 
2971 - `type: "automatic"`
2972 
2973 - `BetaClaudeTagReplyModeMentionOnly object`
2974 
2975 Claude replies only when it is @-mentioned.
2976 
2977 - `type: "mention_only"`
2978 
2979 - `BetaClaudeTagReplyModeAlwaysAwake object`
2980 
2981 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
2982 
2983 - `type: "always_awake"`
2984 
2985 - `BetaClaudeTagReplyModeThread object`
2986 
2987 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
2988 
2989 - `type: "thread"`
2990 
25172991 - `slack: BetaClaudeTagSlackWorkspaceIdentifiers`
25182992 
25192993 Slack's own identifier for the workspace.
from line 3107
26333107 - `model: BetaClaudeTagSettingSource or null`
26343108 
26353109 The settings level `model` comes from.
3110 
3111 - `reply_mode: BetaClaudeTagSettingSource or null`
3112 
3113 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
26363114 
26373115 - `updated_at: string`
26383116 
from line 3146
26683146 "type": "allow"
26693147 },
26703148 "instructions": "instructions",
2671 "model": "model"
3149 "model": "model",
3150 "reply_mode": {
3151 "type": "automatic"
3152 }
26723153 },
26733154 "slack": {
26743155 "workspace_id": "workspace_id"
from line 3176
26953176 "model": {
26963177 "slack_channel_id": "slack_channel_id",
26973178 "type": "slack_channel"
3179 },
3180 "reply_mode": {
3181 "slack_channel_id": "slack_channel_id",
3182 "type": "slack_channel"
26983183 }
26993184 },
27003185 "type": "slack_workspace",
from line 3326
28413326 
28423327 - `"webhooks-2026-10-07"`
28433328 
3329 - `"admin-user-sign-out-2026-10-08"`
3330 
28443331 - `"message-threads-2026-08-12"`
28453332 
28463333 - `"analytics-usage-cost-2026-08-24"`
from line 3394
29073394 
29083395 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
29093396 
3397 - `reply_mode: BetaClaudeTagReplyMode or null`
3398 
3399 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
3400 
3401 - `BetaClaudeTagReplyModeAutomatic object`
3402 
3403 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
3404 
3405 - `type: "automatic"`
3406 
3407 - `BetaClaudeTagReplyModeMentionOnly object`
3408 
3409 Claude replies only when it is @-mentioned.
3410 
3411 - `type: "mention_only"`
3412 
3413 - `BetaClaudeTagReplyModeAlwaysAwake object`
3414 
3415 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
3416 
3417 - `type: "always_awake"`
3418 
3419 - `BetaClaudeTagReplyModeThread object`
3420 
3421 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
3422 
3423 - `type: "thread"`
3424 
29103425 - `slack: BetaClaudeTagSlackWorkspaceIdentifiers`
29113426 
29123427 Slack's own identifier for the workspace.
from line 3541
30263541 - `model: BetaClaudeTagSettingSource or null`
30273542 
30283543 The settings level `model` comes from.
3544 
3545 - `reply_mode: BetaClaudeTagSettingSource or null`
3546 
3547 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
30293548 
30303549 - `updated_at: string`
30313550 
from line 3574
30553574 "type": "allow"
30563575 },
30573576 "instructions": "instructions",
3058 "model": "model"
3577 "model": "model",
3578 "reply_mode": {
3579 "type": "automatic"
3580 }
30593581 },
30603582 "slack": {
30613583 "workspace_id": "workspace_id"
from line 3604
30823604 "model": {
30833605 "slack_channel_id": "slack_channel_id",
30843606 "type": "slack_channel"
3607 },
3608 "reply_mode": {
3609 "slack_channel_id": "slack_channel_id",
3610 "type": "slack_channel"
30853611 }
30863612 },
30873613 "type": "slack_workspace",
from line 3745
32193745 
32203746 - `"webhooks-2026-10-07"`
32213747 
3748 - `"admin-user-sign-out-2026-10-08"`
3749 
32223750 - `"message-threads-2026-08-12"`
32233751 
32243752 - `"analytics-usage-cost-2026-08-24"`
from line 3801
32733801 
32743802 minLength: 1, maxLength: 128
32753803 
3804 - `reply_mode: optional BetaClaudeTagReplyMode or null`
3805 
3806 How Claude takes part in the channel: `automatic`, `mention_only`, `always_awake` or `thread`. Only a channel takes one: an update of a workspace that sends a value is refused, and one that sends null changes nothing. Null never clears it: sent to a channel that stores none it changes nothing, and sent to a channel that stores one it is refused, because a stored reply mode can be changed but never cleared; a caller that wants Claude's default behavior sends `automatic`.
3807 
3808 - `BetaClaudeTagReplyModeAutomatic object`
3809 
3810 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
3811 
3812 - `type: "automatic"`
3813 
3814 - `BetaClaudeTagReplyModeMentionOnly object`
3815 
3816 Claude replies only when it is @-mentioned.
3817 
3818 - `type: "mention_only"`
3819 
3820 - `BetaClaudeTagReplyModeAlwaysAwake object`
3821 
3822 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
3823 
3824 - `type: "always_awake"`
3825 
3826 - `BetaClaudeTagReplyModeThread object`
3827 
3828 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
3829 
3830 - `type: "thread"`
3831 
32763832#### Returns
32773833 
32783834- `BetaClaudeTagSlackWorkspace object`
from line 3889
33333889 
33343890 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
33353891 
3892 - `reply_mode: BetaClaudeTagReplyMode or null`
3893 
3894 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
3895 
3896 - `BetaClaudeTagReplyModeAutomatic object`
3897 
3898 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
3899 
3900 - `type: "automatic"`
3901 
3902 - `BetaClaudeTagReplyModeMentionOnly object`
3903 
3904 Claude replies only when it is @-mentioned.
3905 
3906 - `type: "mention_only"`
3907 
3908 - `BetaClaudeTagReplyModeAlwaysAwake object`
3909 
3910 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
3911 
3912 - `type: "always_awake"`
3913 
3914 - `BetaClaudeTagReplyModeThread object`
3915 
3916 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
3917 
3918 - `type: "thread"`
3919 
33363920 - `slack: BetaClaudeTagSlackWorkspaceIdentifiers`
33373921 
33383922 Slack's own identifier for the workspace.
from line 4036
34524036 - `model: BetaClaudeTagSettingSource or null`
34534037 
34544038 The settings level `model` comes from.
4039 
4040 - `reply_mode: BetaClaudeTagSettingSource or null`
4041 
4042 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
34554043 
34564044 - `updated_at: string`
34574045 
from line 4073
34854073 "type": "allow"
34864074 },
34874075 "instructions": "instructions",
3488 "model": "model"
4076 "model": "model",
4077 "reply_mode": {
4078 "type": "automatic"
4079 }
34894080 },
34904081 "slack": {
34914082 "workspace_id": "workspace_id"
from line 4103
35124103 "model": {
35134104 "slack_channel_id": "slack_channel_id",
35144105 "type": "slack_channel"
4106 },
4107 "reply_mode": {
4108 "slack_channel_id": "slack_channel_id",
4109 "type": "slack_channel"
35154110 }
35164111 },
35174112 "type": "slack_workspace",
from line 4251
36564251 - `"telemetry-destinations-2026-08-11"`
36574252 
36584253 - `"webhooks-2026-10-07"`
4254 
4255 - `"admin-user-sign-out-2026-10-08"`
36594256 
36604257 - `"message-threads-2026-08-12"`
36614258 
from line 4453
38564453 
38574454 - `"webhooks-2026-10-07"`
38584455 
4456 - `"admin-user-sign-out-2026-10-08"`
4457 
38594458 - `"message-threads-2026-08-12"`
38604459 
38614460 - `"analytics-usage-cost-2026-08-24"`
from line 4658
40594658 - `"telemetry-destinations-2026-08-11"`
40604659 
40614660 - `"webhooks-2026-10-07"`
4661 
4662 - `"admin-user-sign-out-2026-10-08"`
40624663 
40634664 - `"message-threads-2026-08-12"`
40644665 
from line 4872
42714872 
42724873 - `"webhooks-2026-10-07"`
42734874 
4875 - `"admin-user-sign-out-2026-10-08"`
4876 
42744877 - `"message-threads-2026-08-12"`
42754878 
42764879 - `"analytics-usage-cost-2026-08-24"`
from line 5113
45105113 
45115114 - `"webhooks-2026-10-07"`
45125115 
5116 - `"admin-user-sign-out-2026-10-08"`
5117 
45135118 - `"message-threads-2026-08-12"`
45145119 
45155120 - `"analytics-usage-cost-2026-08-24"`
from line 5321
47165321 
47175322 - `"webhooks-2026-10-07"`
47185323 
5324 - `"admin-user-sign-out-2026-10-08"`
5325 
47195326 - `"message-threads-2026-08-12"`
47205327 
47215328 - `"analytics-usage-cost-2026-08-24"`
47225329 

api/beta/organization/claude_tag/bundles Changed · +12 / -0 lines

from line 141
141141 
142142 - `"webhooks-2026-10-07"`
143143 
144 - `"admin-user-sign-out-2026-10-08"`
145 
144146 - `"message-threads-2026-08-12"`
145147 
146148 - `"analytics-usage-cost-2026-08-24"`
from line 342
340342 
341343 - `"webhooks-2026-10-07"`
342344 
345 - `"admin-user-sign-out-2026-10-08"`
346 
343347 - `"message-threads-2026-08-12"`
344348 
345349 - `"analytics-usage-cost-2026-08-24"`
from line 582
578582 
579583 - `"webhooks-2026-10-07"`
580584 
585 - `"admin-user-sign-out-2026-10-08"`
586 
581587 - `"message-threads-2026-08-12"`
582588 
583589 - `"analytics-usage-cost-2026-08-24"`
from line 795
789795 
790796 - `"webhooks-2026-10-07"`
791797 
798 - `"admin-user-sign-out-2026-10-08"`
799 
792800 - `"message-threads-2026-08-12"`
793801 
794802 - `"analytics-usage-cost-2026-08-24"`
from line 1036
10281036 
10291037 - `"webhooks-2026-10-07"`
10301038 
1039 - `"admin-user-sign-out-2026-10-08"`
1040 
10311041 - `"message-threads-2026-08-12"`
10321042 
10331043 - `"analytics-usage-cost-2026-08-24"`
from line 1243
12331243 - `"telemetry-destinations-2026-08-11"`
12341244 
12351245 - `"webhooks-2026-10-07"`
1246 
1247 - `"admin-user-sign-out-2026-10-08"`
12361248 
12371249 - `"message-threads-2026-08-12"`
12381250 

api/beta/organization/claude_tag/bundles/targets Changed · +8 / -0 lines

from line 147
147147 
148148 - `"webhooks-2026-10-07"`
149149 
150 - `"admin-user-sign-out-2026-10-08"`
151 
150152 - `"message-threads-2026-08-12"`
151153 
152154 - `"analytics-usage-cost-2026-08-24"`
from line 360
358360 
359361 - `"webhooks-2026-10-07"`
360362 
363 - `"admin-user-sign-out-2026-10-08"`
364 
361365 - `"message-threads-2026-08-12"`
362366 
363367 - `"analytics-usage-cost-2026-08-24"`
from line 601
597601 
598602 - `"webhooks-2026-10-07"`
599603 
604 - `"admin-user-sign-out-2026-10-08"`
605 
600606 - `"message-threads-2026-08-12"`
601607 
602608 - `"analytics-usage-cost-2026-08-24"`
from line 808
802808 - `"telemetry-destinations-2026-08-11"`
803809 
804810 - `"webhooks-2026-10-07"`
811 
812 - `"admin-user-sign-out-2026-10-08"`
805813 
806814 - `"message-threads-2026-08-12"`
807815 

api/beta/organization/claude_tag/slack_channels Changed · +258 / -4 lines

from line 129
129129 
130130 - `"webhooks-2026-10-07"`
131131 
132 - `"admin-user-sign-out-2026-10-08"`
133 
132134 - `"message-threads-2026-08-12"`
133135 
134136 - `"analytics-usage-cost-2026-08-24"`
from line 201
199201 
200202 minLength: 1, maxLength: 128
201203 
204 - `reply_mode: optional BetaClaudeTagReplyMode or null`
205 
206 How Claude takes part in the channel: `automatic`, `mention_only`, `always_awake` or `thread`. Only a channel takes one: an update of a workspace that sends a value is refused, and one that sends null changes nothing. Null never clears it: sent to a channel that stores none it changes nothing, and sent to a channel that stores one it is refused, because a stored reply mode can be changed but never cleared; a caller that wants Claude's default behavior sends `automatic`.
207 
208 - `BetaClaudeTagReplyModeAutomatic object`
209 
210 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
211 
212 - `type: "automatic"`
213 
214 - `BetaClaudeTagReplyModeMentionOnly object`
215 
216 Claude replies only when it is @-mentioned.
217 
218 - `type: "mention_only"`
219 
220 - `BetaClaudeTagReplyModeAlwaysAwake object`
221 
222 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
223 
224 - `type: "always_awake"`
225 
226 - `BetaClaudeTagReplyModeThread object`
227 
228 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
229 
230 - `type: "thread"`
231 
202232### Returns
203233 
204234- `BetaClaudeTagSlackChannel object`
from line 289
259289 
260290 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
261291 
292 - `reply_mode: BetaClaudeTagReplyMode or null`
293 
294 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
295 
296 - `BetaClaudeTagReplyModeAutomatic object`
297 
298 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
299 
300 - `type: "automatic"`
301 
302 - `BetaClaudeTagReplyModeMentionOnly object`
303 
304 Claude replies only when it is @-mentioned.
305 
306 - `type: "mention_only"`
307 
308 - `BetaClaudeTagReplyModeAlwaysAwake object`
309 
310 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
311 
312 - `type: "always_awake"`
313 
314 - `BetaClaudeTagReplyModeThread object`
315 
316 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
317 
318 - `type: "thread"`
319 
262320 - `slack: BetaClaudeTagSlackChannelIdentifiers`
263321 
264322 Slack's own identifiers for the channel.
from line 433
375433 
376434 The settings level `model` comes from.
377435 
436 - `reply_mode: BetaClaudeTagSettingSource or null`
437 
438 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
439 
378440 - `updated_at: string`
379441 
380442 Time Claude Tag's record of the channel last changed. It moves on every change to a setting, and can also move when something no response holds changes, so a later value says to read the channel again, not that a setting changed. Attaching or detaching a Bundle does not by itself move it.
from line 472
410472 "type": "allow"
411473 },
412474 "instructions": "instructions",
413 "model": "model"
475 "model": "model",
476 "reply_mode": {
477 "type": "automatic"
478 }
414479 },
415480 "slack": {
416481 "channel_id": "xx",
from line 503
438503 "model": {
439504 "slack_channel_id": "slack_channel_id",
440505 "type": "slack_channel"
506 },
507 "reply_mode": {
508 "slack_channel_id": "slack_channel_id",
509 "type": "slack_channel"
441510 }
442511 },
443512 "type": "slack_channel",
from line 662
593662 
594663 - `"webhooks-2026-10-07"`
595664 
665 - `"admin-user-sign-out-2026-10-08"`
666 
596667 - `"message-threads-2026-08-12"`
597668 
598669 - `"analytics-usage-cost-2026-08-24"`
from line 730
659730 
660731 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
661732 
733 - `reply_mode: BetaClaudeTagReplyMode or null`
734 
735 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
736 
737 - `BetaClaudeTagReplyModeAutomatic object`
738 
739 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
740 
741 - `type: "automatic"`
742 
743 - `BetaClaudeTagReplyModeMentionOnly object`
744 
745 Claude replies only when it is @-mentioned.
746 
747 - `type: "mention_only"`
748 
749 - `BetaClaudeTagReplyModeAlwaysAwake object`
750 
751 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
752 
753 - `type: "always_awake"`
754 
755 - `BetaClaudeTagReplyModeThread object`
756 
757 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
758 
759 - `type: "thread"`
760 
662761 - `slack: BetaClaudeTagSlackChannelIdentifiers`
663762 
664763 Slack's own identifiers for the channel.
from line 874
775874 
776875 The settings level `model` comes from.
777876 
877 - `reply_mode: BetaClaudeTagSettingSource or null`
878 
879 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
880 
778881 - `updated_at: string`
779882 
780883 Time Claude Tag's record of the channel last changed. It moves on every change to a setting, and can also move when something no response holds changes, so a later value says to read the channel again, not that a setting changed. Attaching or detaching a Bundle does not by itself move it.
from line 912
809912 "type": "allow"
810913 },
811914 "instructions": "instructions",
812 "model": "model"
915 "model": "model",
916 "reply_mode": {
917 "type": "automatic"
918 }
813919 },
814920 "slack": {
815921 "channel_id": "xx",
from line 943
837943 "model": {
838944 "slack_channel_id": "slack_channel_id",
839945 "type": "slack_channel"
946 },
947 "reply_mode": {
948 "slack_channel_id": "slack_channel_id",
949 "type": "slack_channel"
840950 }
841951 },
842952 "type": "slack_channel",
from line 1093
9831093 
9841094 - `"webhooks-2026-10-07"`
9851095 
1096 - `"admin-user-sign-out-2026-10-08"`
1097 
9861098 - `"message-threads-2026-08-12"`
9871099 
9881100 - `"analytics-usage-cost-2026-08-24"`
from line 1161
10491161 
10501162 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
10511163 
1164 - `reply_mode: BetaClaudeTagReplyMode or null`
1165 
1166 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
1167 
1168 - `BetaClaudeTagReplyModeAutomatic object`
1169 
1170 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
1171 
1172 - `type: "automatic"`
1173 
1174 - `BetaClaudeTagReplyModeMentionOnly object`
1175 
1176 Claude replies only when it is @-mentioned.
1177 
1178 - `type: "mention_only"`
1179 
1180 - `BetaClaudeTagReplyModeAlwaysAwake object`
1181 
1182 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
1183 
1184 - `type: "always_awake"`
1185 
1186 - `BetaClaudeTagReplyModeThread object`
1187 
1188 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
1189 
1190 - `type: "thread"`
1191 
10521192 - `slack: BetaClaudeTagSlackChannelIdentifiers`
10531193 
10541194 Slack's own identifiers for the channel.
from line 1305
11651305 
11661306 The settings level `model` comes from.
11671307 
1308 - `reply_mode: BetaClaudeTagSettingSource or null`
1309 
1310 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
1311 
11681312 - `updated_at: string`
11691313 
11701314 Time Claude Tag's record of the channel last changed. It moves on every change to a setting, and can also move when something no response holds changes, so a later value says to read the channel again, not that a setting changed. Attaching or detaching a Bundle does not by itself move it.
from line 1337
11931337 "type": "allow"
11941338 },
11951339 "instructions": "instructions",
1196 "model": "model"
1340 "model": "model",
1341 "reply_mode": {
1342 "type": "automatic"
1343 }
11971344 },
11981345 "slack": {
11991346 "channel_id": "xx",
from line 1368
12211368 "model": {
12221369 "slack_channel_id": "slack_channel_id",
12231370 "type": "slack_channel"
1371 },
1372 "reply_mode": {
1373 "slack_channel_id": "slack_channel_id",
1374 "type": "slack_channel"
12241375 }
12251376 },
12261377 "type": "slack_channel",
from line 1509
13581509 
13591510 - `"webhooks-2026-10-07"`
13601511 
1512 - `"admin-user-sign-out-2026-10-08"`
1513 
13611514 - `"message-threads-2026-08-12"`
13621515 
13631516 - `"analytics-usage-cost-2026-08-24"`
from line 1565
14121565 
14131566 minLength: 1, maxLength: 128
14141567 
1568 - `reply_mode: optional BetaClaudeTagReplyMode or null`
1569 
1570 How Claude takes part in the channel: `automatic`, `mention_only`, `always_awake` or `thread`. Only a channel takes one: an update of a workspace that sends a value is refused, and one that sends null changes nothing. Null never clears it: sent to a channel that stores none it changes nothing, and sent to a channel that stores one it is refused, because a stored reply mode can be changed but never cleared; a caller that wants Claude's default behavior sends `automatic`.
1571 
1572 - `BetaClaudeTagReplyModeAutomatic object`
1573 
1574 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
1575 
1576 - `type: "automatic"`
1577 
1578 - `BetaClaudeTagReplyModeMentionOnly object`
1579 
1580 Claude replies only when it is @-mentioned.
1581 
1582 - `type: "mention_only"`
1583 
1584 - `BetaClaudeTagReplyModeAlwaysAwake object`
1585 
1586 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
1587 
1588 - `type: "always_awake"`
1589 
1590 - `BetaClaudeTagReplyModeThread object`
1591 
1592 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
1593 
1594 - `type: "thread"`
1595 
14151596### Returns
14161597 
14171598- `BetaClaudeTagSlackChannel object`
from line 1653
14721653 
14731654 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
14741655 
1656 - `reply_mode: BetaClaudeTagReplyMode or null`
1657 
1658 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
1659 
1660 - `BetaClaudeTagReplyModeAutomatic object`
1661 
1662 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
1663 
1664 - `type: "automatic"`
1665 
1666 - `BetaClaudeTagReplyModeMentionOnly object`
1667 
1668 Claude replies only when it is @-mentioned.
1669 
1670 - `type: "mention_only"`
1671 
1672 - `BetaClaudeTagReplyModeAlwaysAwake object`
1673 
1674 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
1675 
1676 - `type: "always_awake"`
1677 
1678 - `BetaClaudeTagReplyModeThread object`
1679 
1680 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
1681 
1682 - `type: "thread"`
1683 
14751684 - `slack: BetaClaudeTagSlackChannelIdentifiers`
14761685 
14771686 Slack's own identifiers for the channel.
from line 1797
15881797 
15891798 The settings level `model` comes from.
15901799 
1800 - `reply_mode: BetaClaudeTagSettingSource or null`
1801 
1802 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
1803 
15911804 - `updated_at: string`
15921805 
15931806 Time Claude Tag's record of the channel last changed. It moves on every change to a setting, and can also move when something no response holds changes, so a later value says to read the channel again, not that a setting changed. Attaching or detaching a Bundle does not by itself move it.
from line 1833
16201833 "type": "allow"
16211834 },
16221835 "instructions": "instructions",
1623 "model": "model"
1836 "model": "model",
1837 "reply_mode": {
1838 "type": "automatic"
1839 }
16241840 },
16251841 "slack": {
16261842 "channel_id": "xx",
from line 1864
16481864 "model": {
16491865 "slack_channel_id": "slack_channel_id",
16501866 "type": "slack_channel"
1867 },
1868 "reply_mode": {
1869 "slack_channel_id": "slack_channel_id",
1870 "type": "slack_channel"
16511871 }
16521872 },
16531873 "type": "slack_channel",
from line 2005
17852005 
17862006 - `"webhooks-2026-10-07"`
17872007 
2008 - `"admin-user-sign-out-2026-10-08"`
2009 
17882010 - `"message-threads-2026-08-12"`
17892011 
17902012 - `"analytics-usage-cost-2026-08-24"`
from line 2118
18962118 
18972119 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
18982120 
2121 - `reply_mode: BetaClaudeTagReplyMode or null`
2122 
2123 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
2124 
2125 - `BetaClaudeTagReplyModeAutomatic object`
2126 
2127 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
2128 
2129 - `type: "automatic"`
2130 
2131 - `BetaClaudeTagReplyModeMentionOnly object`
2132 
2133 Claude replies only when it is @-mentioned.
2134 
2135 - `type: "mention_only"`
2136 
2137 - `BetaClaudeTagReplyModeAlwaysAwake object`
2138 
2139 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
2140 
2141 - `type: "always_awake"`
2142 
2143 - `BetaClaudeTagReplyModeThread object`
2144 
2145 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
2146 
2147 - `type: "thread"`
2148 
18992149 - `slack: BetaClaudeTagSlackChannelIdentifiers`
19002150 
19012151 Slack's own identifiers for the channel.
from line 2261
20112261 - `model: BetaClaudeTagSettingSource or null`
20122262 
20132263 The settings level `model` comes from.
2264 
2265 - `reply_mode: BetaClaudeTagSettingSource or null`
2266 
2267 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
20142268 
20152269 - `updated_at: string`
20162270 

api/beta/organization/claude_tag/slack_channels/create Changed · +70 / -1 lines

from line 127
127127 
128128 - `"webhooks-2026-10-07"`
129129 
130 - `"admin-user-sign-out-2026-10-08"`
131 
130132 - `"message-threads-2026-08-12"`
131133 
132134 - `"analytics-usage-cost-2026-08-24"`
from line 199
197199 
198200 minLength: 1, maxLength: 128
199201 
202 - `reply_mode: optional BetaClaudeTagReplyMode or null`
203 
204 How Claude takes part in the channel: `automatic`, `mention_only`, `always_awake` or `thread`. Only a channel takes one: an update of a workspace that sends a value is refused, and one that sends null changes nothing. Null never clears it: sent to a channel that stores none it changes nothing, and sent to a channel that stores one it is refused, because a stored reply mode can be changed but never cleared; a caller that wants Claude's default behavior sends `automatic`.
205 
206 - `BetaClaudeTagReplyModeAutomatic object`
207 
208 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
209 
210 - `type: "automatic"`
211 
212 - `BetaClaudeTagReplyModeMentionOnly object`
213 
214 Claude replies only when it is @-mentioned.
215 
216 - `type: "mention_only"`
217 
218 - `BetaClaudeTagReplyModeAlwaysAwake object`
219 
220 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
221 
222 - `type: "always_awake"`
223 
224 - `BetaClaudeTagReplyModeThread object`
225 
226 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
227 
228 - `type: "thread"`
229 
200230## Returns
201231 
202232- `BetaClaudeTagSlackChannel object`
from line 287
257287 
258288 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
259289 
290 - `reply_mode: BetaClaudeTagReplyMode or null`
291 
292 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
293 
294 - `BetaClaudeTagReplyModeAutomatic object`
295 
296 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
297 
298 - `type: "automatic"`
299 
300 - `BetaClaudeTagReplyModeMentionOnly object`
301 
302 Claude replies only when it is @-mentioned.
303 
304 - `type: "mention_only"`
305 
306 - `BetaClaudeTagReplyModeAlwaysAwake object`
307 
308 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
309 
310 - `type: "always_awake"`
311 
312 - `BetaClaudeTagReplyModeThread object`
313 
314 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
315 
316 - `type: "thread"`
317 
260318 - `slack: BetaClaudeTagSlackChannelIdentifiers`
261319 
262320 Slack's own identifiers for the channel.
from line 431
373431 
374432 The settings level `model` comes from.
375433 
434 - `reply_mode: BetaClaudeTagSettingSource or null`
435 
436 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
437 
376438 - `updated_at: string`
377439 
378440 Time Claude Tag's record of the channel last changed. It moves on every change to a setting, and can also move when something no response holds changes, so a later value says to read the channel again, not that a setting changed. Attaching or detaching a Bundle does not by itself move it.
from line 470
408470 "type": "allow"
409471 },
410472 "instructions": "instructions",
411 "model": "model"
473 "model": "model",
474 "reply_mode": {
475 "type": "automatic"
476 }
412477 },
413478 "slack": {
414479 "channel_id": "xx",
from line 499
434499 }
435500 ],
436501 "model": {
502 "slack_channel_id": "slack_channel_id",
503 "type": "slack_channel"
504 },
505 "reply_mode": {
437506 "slack_channel_id": "slack_channel_id",
438507 "type": "slack_channel"
439508 }

api/beta/organization/claude_tag/slack_channels/list Changed · +42 / -1 lines

from line 151
151151 
152152 - `"webhooks-2026-10-07"`
153153 
154 - `"admin-user-sign-out-2026-10-08"`
155 
154156 - `"message-threads-2026-08-12"`
155157 
156158 - `"analytics-usage-cost-2026-08-24"`
from line 219
217219 
218220 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
219221 
222 - `reply_mode: BetaClaudeTagReplyMode or null`
223 
224 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
225 
226 - `BetaClaudeTagReplyModeAutomatic object`
227 
228 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
229 
230 - `type: "automatic"`
231 
232 - `BetaClaudeTagReplyModeMentionOnly object`
233 
234 Claude replies only when it is @-mentioned.
235 
236 - `type: "mention_only"`
237 
238 - `BetaClaudeTagReplyModeAlwaysAwake object`
239 
240 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
241 
242 - `type: "always_awake"`
243 
244 - `BetaClaudeTagReplyModeThread object`
245 
246 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
247 
248 - `type: "thread"`
249 
220250 - `slack: BetaClaudeTagSlackChannelIdentifiers`
221251 
222252 Slack's own identifiers for the channel.
from line 363
333363 
334364 The settings level `model` comes from.
335365 
366 - `reply_mode: BetaClaudeTagSettingSource or null`
367 
368 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
369 
336370 - `updated_at: string`
337371 
338372 Time Claude Tag's record of the channel last changed. It moves on every change to a setting, and can also move when something no response holds changes, so a later value says to read the channel again, not that a setting changed. Attaching or detaching a Bundle does not by itself move it.
from line 401
367401 "type": "allow"
368402 },
369403 "instructions": "instructions",
370 "model": "model"
404 "model": "model",
405 "reply_mode": {
406 "type": "automatic"
407 }
371408 },
372409 "slack": {
373410 "channel_id": "xx",
from line 430
393430 }
394431 ],
395432 "model": {
433 "slack_channel_id": "slack_channel_id",
434 "type": "slack_channel"
435 },
436 "reply_mode": {
396437 "slack_channel_id": "slack_channel_id",
397438 "type": "slack_channel"
398439 }

api/beta/organization/claude_tag/slack_channels/retrieve Changed · +42 / -1 lines

from line 139
139139 
140140 - `"webhooks-2026-10-07"`
141141 
142 - `"admin-user-sign-out-2026-10-08"`
143 
142144 - `"message-threads-2026-08-12"`
143145 
144146 - `"analytics-usage-cost-2026-08-24"`
from line 207
205207 
206208 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
207209 
210 - `reply_mode: BetaClaudeTagReplyMode or null`
211 
212 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
213 
214 - `BetaClaudeTagReplyModeAutomatic object`
215 
216 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
217 
218 - `type: "automatic"`
219 
220 - `BetaClaudeTagReplyModeMentionOnly object`
221 
222 Claude replies only when it is @-mentioned.
223 
224 - `type: "mention_only"`
225 
226 - `BetaClaudeTagReplyModeAlwaysAwake object`
227 
228 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
229 
230 - `type: "always_awake"`
231 
232 - `BetaClaudeTagReplyModeThread object`
233 
234 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
235 
236 - `type: "thread"`
237 
208238 - `slack: BetaClaudeTagSlackChannelIdentifiers`
209239 
210240 Slack's own identifiers for the channel.
from line 351
321351 
322352 The settings level `model` comes from.
323353 
354 - `reply_mode: BetaClaudeTagSettingSource or null`
355 
356 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
357 
324358 - `updated_at: string`
325359 
326360 Time Claude Tag's record of the channel last changed. It moves on every change to a setting, and can also move when something no response holds changes, so a later value says to read the channel again, not that a setting changed. Attaching or detaching a Bundle does not by itself move it.
from line 383
349383 "type": "allow"
350384 },
351385 "instructions": "instructions",
352 "model": "model"
386 "model": "model",
387 "reply_mode": {
388 "type": "automatic"
389 }
353390 },
354391 "slack": {
355392 "channel_id": "xx",
from line 412
375412 }
376413 ],
377414 "model": {
415 "slack_channel_id": "slack_channel_id",
416 "type": "slack_channel"
417 },
418 "reply_mode": {
378419 "slack_channel_id": "slack_channel_id",
379420 "type": "slack_channel"
380421 }

api/beta/organization/claude_tag/slack_channels/update Changed · +70 / -1 lines

from line 133
133133 
134134 - `"webhooks-2026-10-07"`
135135 
136 - `"admin-user-sign-out-2026-10-08"`
137 
136138 - `"message-threads-2026-08-12"`
137139 
138140 - `"analytics-usage-cost-2026-08-24"`
from line 189
187189 
188190 minLength: 1, maxLength: 128
189191 
192 - `reply_mode: optional BetaClaudeTagReplyMode or null`
193 
194 How Claude takes part in the channel: `automatic`, `mention_only`, `always_awake` or `thread`. Only a channel takes one: an update of a workspace that sends a value is refused, and one that sends null changes nothing. Null never clears it: sent to a channel that stores none it changes nothing, and sent to a channel that stores one it is refused, because a stored reply mode can be changed but never cleared; a caller that wants Claude's default behavior sends `automatic`.
195 
196 - `BetaClaudeTagReplyModeAutomatic object`
197 
198 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
199 
200 - `type: "automatic"`
201 
202 - `BetaClaudeTagReplyModeMentionOnly object`
203 
204 Claude replies only when it is @-mentioned.
205 
206 - `type: "mention_only"`
207 
208 - `BetaClaudeTagReplyModeAlwaysAwake object`
209 
210 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
211 
212 - `type: "always_awake"`
213 
214 - `BetaClaudeTagReplyModeThread object`
215 
216 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
217 
218 - `type: "thread"`
219 
190220## Returns
191221 
192222- `BetaClaudeTagSlackChannel object`
from line 277
247277 
248278 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
249279 
280 - `reply_mode: BetaClaudeTagReplyMode or null`
281 
282 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
283 
284 - `BetaClaudeTagReplyModeAutomatic object`
285 
286 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
287 
288 - `type: "automatic"`
289 
290 - `BetaClaudeTagReplyModeMentionOnly object`
291 
292 Claude replies only when it is @-mentioned.
293 
294 - `type: "mention_only"`
295 
296 - `BetaClaudeTagReplyModeAlwaysAwake object`
297 
298 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
299 
300 - `type: "always_awake"`
301 
302 - `BetaClaudeTagReplyModeThread object`
303 
304 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
305 
306 - `type: "thread"`
307 
250308 - `slack: BetaClaudeTagSlackChannelIdentifiers`
251309 
252310 Slack's own identifiers for the channel.
from line 421
363421 
364422 The settings level `model` comes from.
365423 
424 - `reply_mode: BetaClaudeTagSettingSource or null`
425 
426 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
427 
366428 - `updated_at: string`
367429 
368430 Time Claude Tag's record of the channel last changed. It moves on every change to a setting, and can also move when something no response holds changes, so a later value says to read the channel again, not that a setting changed. Attaching or detaching a Bundle does not by itself move it.
from line 457
395457 "type": "allow"
396458 },
397459 "instructions": "instructions",
398 "model": "model"
460 "model": "model",
461 "reply_mode": {
462 "type": "automatic"
463 }
399464 },
400465 "slack": {
401466 "channel_id": "xx",
from line 486
421486 }
422487 ],
423488 "model": {
489 "slack_channel_id": "slack_channel_id",
490 "type": "slack_channel"
491 },
492 "reply_mode": {
424493 "slack_channel_id": "slack_channel_id",
425494 "type": "slack_channel"
426495 }

api/beta/organization/claude_tag/slack_workspaces Changed · +186 / -3 lines

from line 149
149149 
150150 - `"webhooks-2026-10-07"`
151151 
152 - `"admin-user-sign-out-2026-10-08"`
153 
152154 - `"message-threads-2026-08-12"`
153155 
154156 - `"analytics-usage-cost-2026-08-24"`
from line 217
215217 
216218 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
217219 
220 - `reply_mode: BetaClaudeTagReplyMode or null`
221 
222 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
223 
224 - `BetaClaudeTagReplyModeAutomatic object`
225 
226 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
227 
228 - `type: "automatic"`
229 
230 - `BetaClaudeTagReplyModeMentionOnly object`
231 
232 Claude replies only when it is @-mentioned.
233 
234 - `type: "mention_only"`
235 
236 - `BetaClaudeTagReplyModeAlwaysAwake object`
237 
238 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
239 
240 - `type: "always_awake"`
241 
242 - `BetaClaudeTagReplyModeThread object`
243 
244 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
245 
246 - `type: "thread"`
247 
218248 - `slack: BetaClaudeTagSlackWorkspaceIdentifiers`
219249 
220250 Slack's own identifier for the workspace.
from line 365
335365 
336366 The settings level `model` comes from.
337367 
368 - `reply_mode: BetaClaudeTagSettingSource or null`
369 
370 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
371 
338372 - `updated_at: string`
339373 
340374 Time Claude Tag's record of the workspace last changed. It moves on every change to a setting, and can also move when something no response holds changes, so a later value says to read the workspace again, not that a setting changed. Attaching or detaching a Bundle does not by itself move it.
from line 403
369403 "type": "allow"
370404 },
371405 "instructions": "instructions",
372 "model": "model"
406 "model": "model",
407 "reply_mode": {
408 "type": "automatic"
409 }
373410 },
374411 "slack": {
375412 "workspace_id": "workspace_id"
from line 433
396433 "model": {
397434 "slack_channel_id": "slack_channel_id",
398435 "type": "slack_channel"
436 },
437 "reply_mode": {
438 "slack_channel_id": "slack_channel_id",
439 "type": "slack_channel"
399440 }
400441 },
401442 "type": "slack_workspace",
from line 583
542583 
543584 - `"webhooks-2026-10-07"`
544585 
586 - `"admin-user-sign-out-2026-10-08"`
587 
545588 - `"message-threads-2026-08-12"`
546589 
547590 - `"analytics-usage-cost-2026-08-24"`
from line 651
608651 
609652 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
610653 
654 - `reply_mode: BetaClaudeTagReplyMode or null`
655 
656 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
657 
658 - `BetaClaudeTagReplyModeAutomatic object`
659 
660 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
661 
662 - `type: "automatic"`
663 
664 - `BetaClaudeTagReplyModeMentionOnly object`
665 
666 Claude replies only when it is @-mentioned.
667 
668 - `type: "mention_only"`
669 
670 - `BetaClaudeTagReplyModeAlwaysAwake object`
671 
672 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
673 
674 - `type: "always_awake"`
675 
676 - `BetaClaudeTagReplyModeThread object`
677 
678 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
679 
680 - `type: "thread"`
681 
611682 - `slack: BetaClaudeTagSlackWorkspaceIdentifiers`
612683 
613684 Slack's own identifier for the workspace.
from line 799
728799 
729800 The settings level `model` comes from.
730801 
802 - `reply_mode: BetaClaudeTagSettingSource or null`
803 
804 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
805 
731806 - `updated_at: string`
732807 
733808 Time Claude Tag's record of the workspace last changed. It moves on every change to a setting, and can also move when something no response holds changes, so a later value says to read the workspace again, not that a setting changed. Attaching or detaching a Bundle does not by itself move it.
from line 831
756831 "type": "allow"
757832 },
758833 "instructions": "instructions",
759 "model": "model"
834 "model": "model",
835 "reply_mode": {
836 "type": "automatic"
837 }
760838 },
761839 "slack": {
762840 "workspace_id": "workspace_id"
from line 861
783861 "model": {
784862 "slack_channel_id": "slack_channel_id",
785863 "type": "slack_channel"
864 },
865 "reply_mode": {
866 "slack_channel_id": "slack_channel_id",
867 "type": "slack_channel"
786868 }
787869 },
788870 "type": "slack_workspace",
from line 1002
9201002 
9211003 - `"webhooks-2026-10-07"`
9221004 
1005 - `"admin-user-sign-out-2026-10-08"`
1006 
9231007 - `"message-threads-2026-08-12"`
9241008 
9251009 - `"analytics-usage-cost-2026-08-24"`
from line 1058
9741058 
9751059 minLength: 1, maxLength: 128
9761060 
1061 - `reply_mode: optional BetaClaudeTagReplyMode or null`
1062 
1063 How Claude takes part in the channel: `automatic`, `mention_only`, `always_awake` or `thread`. Only a channel takes one: an update of a workspace that sends a value is refused, and one that sends null changes nothing. Null never clears it: sent to a channel that stores none it changes nothing, and sent to a channel that stores one it is refused, because a stored reply mode can be changed but never cleared; a caller that wants Claude's default behavior sends `automatic`.
1064 
1065 - `BetaClaudeTagReplyModeAutomatic object`
1066 
1067 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
1068 
1069 - `type: "automatic"`
1070 
1071 - `BetaClaudeTagReplyModeMentionOnly object`
1072 
1073 Claude replies only when it is @-mentioned.
1074 
1075 - `type: "mention_only"`
1076 
1077 - `BetaClaudeTagReplyModeAlwaysAwake object`
1078 
1079 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
1080 
1081 - `type: "always_awake"`
1082 
1083 - `BetaClaudeTagReplyModeThread object`
1084 
1085 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
1086 
1087 - `type: "thread"`
1088 
9771089### Returns
9781090 
9791091- `BetaClaudeTagSlackWorkspace object`
from line 1146
10341146 
10351147 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
10361148 
1149 - `reply_mode: BetaClaudeTagReplyMode or null`
1150 
1151 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
1152 
1153 - `BetaClaudeTagReplyModeAutomatic object`
1154 
1155 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
1156 
1157 - `type: "automatic"`
1158 
1159 - `BetaClaudeTagReplyModeMentionOnly object`
1160 
1161 Claude replies only when it is @-mentioned.
1162 
1163 - `type: "mention_only"`
1164 
1165 - `BetaClaudeTagReplyModeAlwaysAwake object`
1166 
1167 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
1168 
1169 - `type: "always_awake"`
1170 
1171 - `BetaClaudeTagReplyModeThread object`
1172 
1173 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
1174 
1175 - `type: "thread"`
1176 
10371177 - `slack: BetaClaudeTagSlackWorkspaceIdentifiers`
10381178 
10391179 Slack's own identifier for the workspace.
from line 1294
11541294 
11551295 The settings level `model` comes from.
11561296 
1297 - `reply_mode: BetaClaudeTagSettingSource or null`
1298 
1299 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
1300 
11571301 - `updated_at: string`
11581302 
11591303 Time Claude Tag's record of the workspace last changed. It moves on every change to a setting, and can also move when something no response holds changes, so a later value says to read the workspace again, not that a setting changed. Attaching or detaching a Bundle does not by itself move it.
from line 1330
11861330 "type": "allow"
11871331 },
11881332 "instructions": "instructions",
1189 "model": "model"
1333 "model": "model",
1334 "reply_mode": {
1335 "type": "automatic"
1336 }
11901337 },
11911338 "slack": {
11921339 "workspace_id": "workspace_id"
from line 1360
12131360 "model": {
12141361 "slack_channel_id": "slack_channel_id",
12151362 "type": "slack_channel"
1363 },
1364 "reply_mode": {
1365 "slack_channel_id": "slack_channel_id",
1366 "type": "slack_channel"
12161367 }
12171368 },
12181369 "type": "slack_workspace",
from line 1433
12821433 
12831434 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
12841435 
1436 - `reply_mode: BetaClaudeTagReplyMode or null`
1437 
1438 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
1439 
1440 - `BetaClaudeTagReplyModeAutomatic object`
1441 
1442 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
1443 
1444 - `type: "automatic"`
1445 
1446 - `BetaClaudeTagReplyModeMentionOnly object`
1447 
1448 Claude replies only when it is @-mentioned.
1449 
1450 - `type: "mention_only"`
1451 
1452 - `BetaClaudeTagReplyModeAlwaysAwake object`
1453 
1454 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
1455 
1456 - `type: "always_awake"`
1457 
1458 - `BetaClaudeTagReplyModeThread object`
1459 
1460 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
1461 
1462 - `type: "thread"`
1463 
12851464 - `slack: BetaClaudeTagSlackWorkspaceIdentifiers`
12861465 
12871466 Slack's own identifier for the workspace.
from line 1580
14011580 - `model: BetaClaudeTagSettingSource or null`
14021581 
14031582 The settings level `model` comes from.
1583 
1584 - `reply_mode: BetaClaudeTagSettingSource or null`
1585 
1586 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
14041587 
14051588 - `updated_at: string`
14061589 

api/beta/organization/claude_tag/slack_workspaces/list Changed · +42 / -1 lines

from line 147
147147 
148148 - `"webhooks-2026-10-07"`
149149 
150 - `"admin-user-sign-out-2026-10-08"`
151 
150152 - `"message-threads-2026-08-12"`
151153 
152154 - `"analytics-usage-cost-2026-08-24"`
from line 215
213215 
214216 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
215217 
218 - `reply_mode: BetaClaudeTagReplyMode or null`
219 
220 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
221 
222 - `BetaClaudeTagReplyModeAutomatic object`
223 
224 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
225 
226 - `type: "automatic"`
227 
228 - `BetaClaudeTagReplyModeMentionOnly object`
229 
230 Claude replies only when it is @-mentioned.
231 
232 - `type: "mention_only"`
233 
234 - `BetaClaudeTagReplyModeAlwaysAwake object`
235 
236 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
237 
238 - `type: "always_awake"`
239 
240 - `BetaClaudeTagReplyModeThread object`
241 
242 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
243 
244 - `type: "thread"`
245 
216246 - `slack: BetaClaudeTagSlackWorkspaceIdentifiers`
217247 
218248 Slack's own identifier for the workspace.
from line 363
333363 
334364 The settings level `model` comes from.
335365 
366 - `reply_mode: BetaClaudeTagSettingSource or null`
367 
368 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
369 
336370 - `updated_at: string`
337371 
338372 Time Claude Tag's record of the workspace last changed. It moves on every change to a setting, and can also move when something no response holds changes, so a later value says to read the workspace again, not that a setting changed. Attaching or detaching a Bundle does not by itself move it.
from line 401
367401 "type": "allow"
368402 },
369403 "instructions": "instructions",
370 "model": "model"
404 "model": "model",
405 "reply_mode": {
406 "type": "automatic"
407 }
371408 },
372409 "slack": {
373410 "workspace_id": "workspace_id"
from line 429
392429 }
393430 ],
394431 "model": {
432 "slack_channel_id": "slack_channel_id",
433 "type": "slack_channel"
434 },
435 "reply_mode": {
395436 "slack_channel_id": "slack_channel_id",
396437 "type": "slack_channel"
397438 }

api/beta/organization/claude_tag/slack_workspaces/retrieve Changed · +42 / -1 lines

from line 139
139139 
140140 - `"webhooks-2026-10-07"`
141141 
142 - `"admin-user-sign-out-2026-10-08"`
143 
142144 - `"message-threads-2026-08-12"`
143145 
144146 - `"analytics-usage-cost-2026-08-24"`
from line 207
205207 
206208 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
207209 
210 - `reply_mode: BetaClaudeTagReplyMode or null`
211 
212 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
213 
214 - `BetaClaudeTagReplyModeAutomatic object`
215 
216 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
217 
218 - `type: "automatic"`
219 
220 - `BetaClaudeTagReplyModeMentionOnly object`
221 
222 Claude replies only when it is @-mentioned.
223 
224 - `type: "mention_only"`
225 
226 - `BetaClaudeTagReplyModeAlwaysAwake object`
227 
228 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
229 
230 - `type: "always_awake"`
231 
232 - `BetaClaudeTagReplyModeThread object`
233 
234 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
235 
236 - `type: "thread"`
237 
208238 - `slack: BetaClaudeTagSlackWorkspaceIdentifiers`
209239 
210240 Slack's own identifier for the workspace.
from line 355
325355 
326356 The settings level `model` comes from.
327357 
358 - `reply_mode: BetaClaudeTagSettingSource or null`
359 
360 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
361 
328362 - `updated_at: string`
329363 
330364 Time Claude Tag's record of the workspace last changed. It moves on every change to a setting, and can also move when something no response holds changes, so a later value says to read the workspace again, not that a setting changed. Attaching or detaching a Bundle does not by itself move it.
from line 387
353387 "type": "allow"
354388 },
355389 "instructions": "instructions",
356 "model": "model"
390 "model": "model",
391 "reply_mode": {
392 "type": "automatic"
393 }
357394 },
358395 "slack": {
359396 "workspace_id": "workspace_id"
from line 415
378415 }
379416 ],
380417 "model": {
418 "slack_channel_id": "slack_channel_id",
419 "type": "slack_channel"
420 },
421 "reply_mode": {
381422 "slack_channel_id": "slack_channel_id",
382423 "type": "slack_channel"
383424 }

api/beta/organization/claude_tag/slack_workspaces/update Changed · +70 / -1 lines

from line 133
133133 
134134 - `"webhooks-2026-10-07"`
135135 
136 - `"admin-user-sign-out-2026-10-08"`
137 
136138 - `"message-threads-2026-08-12"`
137139 
138140 - `"analytics-usage-cost-2026-08-24"`
from line 189
187189 
188190 minLength: 1, maxLength: 128
189191 
192 - `reply_mode: optional BetaClaudeTagReplyMode or null`
193 
194 How Claude takes part in the channel: `automatic`, `mention_only`, `always_awake` or `thread`. Only a channel takes one: an update of a workspace that sends a value is refused, and one that sends null changes nothing. Null never clears it: sent to a channel that stores none it changes nothing, and sent to a channel that stores one it is refused, because a stored reply mode can be changed but never cleared; a caller that wants Claude's default behavior sends `automatic`.
195 
196 - `BetaClaudeTagReplyModeAutomatic object`
197 
198 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
199 
200 - `type: "automatic"`
201 
202 - `BetaClaudeTagReplyModeMentionOnly object`
203 
204 Claude replies only when it is @-mentioned.
205 
206 - `type: "mention_only"`
207 
208 - `BetaClaudeTagReplyModeAlwaysAwake object`
209 
210 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
211 
212 - `type: "always_awake"`
213 
214 - `BetaClaudeTagReplyModeThread object`
215 
216 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
217 
218 - `type: "thread"`
219 
190220## Returns
191221 
192222- `BetaClaudeTagSlackWorkspace object`
from line 277
247277 
248278 The model Claude uses: a model identifier or the name of a model line. The nearest settings level that sets it decides. When none does, Claude uses the product's default model.
249279 
280 - `reply_mode: BetaClaudeTagReplyMode or null`
281 
282 How Claude takes part in the channel. Only a channel stores one, and no settings level passes one on, so it is always null on a workspace. Null on a channel means the channel stores none yet: Claude then follows the reply mode chosen in Slack, if one was, else `automatic`. A stored reply mode can be changed but never cleared.
283 
284 - `BetaClaudeTagReplyModeAutomatic object`
285 
286 Claude reads along and joins in when it can help, and pauses on its own in quiet or busy channels.
287 
288 - `type: "automatic"`
289 
290 - `BetaClaudeTagReplyModeMentionOnly object`
291 
292 Claude replies only when it is @-mentioned.
293 
294 - `type: "mention_only"`
295 
296 - `BetaClaudeTagReplyModeAlwaysAwake object`
297 
298 Like `automatic`, but Claude never pauses on its own. Available where it is enabled for the channel.
299 
300 - `type: "always_awake"`
301 
302 - `BetaClaudeTagReplyModeThread object`
303 
304 Every new top-level message in the channel gets its own reply from Claude, in a thread under it. Available where it is enabled for the channel, and only once Claude has been used in the channel.
305 
306 - `type: "thread"`
307 
250308 - `slack: BetaClaudeTagSlackWorkspaceIdentifiers`
251309 
252310 Slack's own identifier for the workspace.
from line 425
367425 
368426 The settings level `model` comes from.
369427 
428 - `reply_mode: BetaClaudeTagSettingSource or null`
429 
430 The settings level `reply_mode` comes from: the channel when it stores one. With `include_inherited=true` and no stored mode it is `default`.
431 
370432 - `updated_at: string`
371433 
372434 Time Claude Tag's record of the workspace last changed. It moves on every change to a setting, and can also move when something no response holds changes, so a later value says to read the workspace again, not that a setting changed. Attaching or detaching a Bundle does not by itself move it.
from line 461
399461 "type": "allow"
400462 },
401463 "instructions": "instructions",
402 "model": "model"
464 "model": "model",
465 "reply_mode": {
466 "type": "automatic"
467 }
403468 },
404469 "slack": {
405470 "workspace_id": "workspace_id"
from line 489
424489 }
425490 ],
426491 "model": {
492 "slack_channel_id": "slack_channel_id",
493 "type": "slack_channel"
494 },
495 "reply_mode": {
427496 "slack_channel_id": "slack_channel_id",
428497 "type": "slack_channel"
429498 }

api/beta/organization/cost_report Changed · +4 / -2 lines

from line 170
170170 
171171 - `"webhooks-2026-10-07"`
172172 
173 - `"admin-user-sign-out-2026-10-08"`
174 
173175 - `"message-threads-2026-08-12"`
174176 
175177 - `"analytics-usage-cost-2026-08-24"`
from line 241
239241 
240242 - `model: string or null`
241243 
242 Model name used. `null` if not grouping by description or for non-token costs.
244 Model name used. `null` if not grouping by description, for non-token costs, or for token costs with no model ID.
243245 
244246 - `service_tier: "batch" or "standard" or null`
245247 
from line 394
392394 
393395 - `model: string or null`
394396 
395 Model name used. `null` if not grouping by description or for non-token costs.
397 Model name used. `null` if not grouping by description, for non-token costs, or for token costs with no model ID.
396398 
397399 - `service_tier: "batch" or "standard" or null`
398400 
Feedback