Claude Platform Docs
AdministraçãoOrganização

API do Claude Tag

Gerencie o Claude Tag no Slack para sua organização Claude Enterprise a partir de seus próprios sistemas: leia e altere configurações em canais e workspaces do Slack, veja quais configurações se aplicam e por quê, e anexe Access bundles.

O Claude Tag é o Claude trabalhando como um colega de equipe no Slack: alguém menciona o Claude em um canal e o Claude responde na thread. A API do Claude Tag permite que você leia e altere, a partir dos seus próprios sistemas, as configurações do Claude Tag que um proprietário da organização, de outra forma, define manualmente em claude.ai > Organization settings > Claude Tag. Use-a para ativar o Claude canal por canal a partir de um fluxo de aprovação, manter sua configuração em controle de versão ou auditar o que se aplica em cada canal.

O Claude Tag é um produto do claude.ai. Esta API o gerencia para uma organização Claude Enterprise e não tem nenhuma relação com workspaces da Claude Platform, uso da API ou o Claude Console.

Endpoints

A API expõe 14 endpoints em quatro recursos:

RecursoEndpoints
Canais do Slack: configurar um canal, listar os canais de um workspace ou encontrar um pelos seus IDs do Slack, ler um, alterar suas configurações, removê-loPOST /v1/organizations/claude_tag/slack_channels
GET /v1/organizations/claude_tag/slack_channels
GET /v1/organizations/claude_tag/slack_channels/{id}
POST /v1/organizations/claude_tag/slack_channels/{id}
DELETE /v1/organizations/claude_tag/slack_channels/{id}
Workspaces do Slack: listar seus workspaces ou encontrar um pelo seu ID do Slack, ler um, alterar suas configuraçõesGET /v1/organizations/claude_tag/slack_workspaces
GET /v1/organizations/claude_tag/slack_workspaces/{id}
POST /v1/organizations/claude_tag/slack_workspaces/{id}
Bundles: listar os Access bundles da sua organização, ler um (somente leitura)GET /v1/organizations/claude_tag/bundles
GET /v1/organizations/claude_tag/bundles/{bundle_id}
Destinos de Bundle: listar onde um Bundle está anexado, anexá-lo a um canal ou workspace, ler um anexo, desanexá-loGET /v1/organizations/claude_tag/bundles/{bundle_id}/targets
POST /v1/organizations/claude_tag/bundles/{bundle_id}/targets
GET /v1/organizations/claude_tag/bundles/{bundle_id}/targets/{target_id}
DELETE /v1/organizations/claude_tag/bundles/{bundle_id}/targets/{target_id}

Esta versão abrange o Slack. Conectar e desconectar um workspace do Slack ou Enterprise Grid, os padrões do Slack da sua organização, criar e editar Access bundles, limites de gastos e todas as configurações do Claude Tag além das cinco em Configurações permanecem no claude.ai.

Pré-requisitos

Em Python, TypeScript, C#, Go, Java, PHP e Ruby, o SDK expõe esses endpoints em client.beta.organization.claude_tag, e a CLI ant em ant beta:organization:claude-tag; eles enviam os cabeçalhos anthropic-version e anthropic-beta para você. Os exemplos nesta página leem a chave de API de Admin da variável de ambiente ANTHROPIC_API_KEY. Quando um SDK ou a CLI busca mais páginas para você, limit define o tamanho da página, não o total (consulte Paginação).

As chaves de API pertencem à organização e continuam funcionando depois que a pessoa que as criou sai. Não as compartilhe nem as inclua no controle de versão.

Início rápido

Liste os workspaces do Slack da sua organização no Claude Tag:

client = anthropic.Anthropic()

workspaces = client.beta.organization.claude_tag.slack_workspaces.list()

# Busca automaticamente mais páginas conforme necessário.
for workspace in workspaces:
    print(f"{workspace.id}: {workspace.slack.workspace_id}")
Response
{
  "data": [
    {
      "type": "slack_workspace",
      "id": "slws_011CZkZnWa7xPc3uJfZe5LgT",
      "slack": {
        "workspace_id": "T01ABCD2EFG"
      },
      "settings": {
        "enabled": null,
        "instructions": "Answer in English unless asked otherwise.",
        "model": null,
        "environment_id": null,
        "guest_policy": null
      },
      "sources": {
        "enabled": null,
        "instructions": [
          {
            "type": "slack_workspace",
            "slack_workspace_id": "slws_011CZkZnWa7xPc3uJfZe5LgT"
          }
        ],
        "model": null,
        "environment_id": null,
        "guest_policy": null
      },
      "created_at": "2026-09-02T17:04:11Z",
      "updated_at": "2026-10-06T09:41:53Z"
    }
  ],
  "next_page": null
}

Uma configuração que é null em settings não está definida neste workspace, então o workspace a herda e não tem uma origem para ela. Para ler o que se aplica em vez disso, consulte Valores armazenados e herdados.

Escopos

EscopoConcede
read:claude_tagTodos os endpoints GET nesta página.
write:claude_tagTodos os endpoints POST e DELETE nesta página. Ele não concede leituras, embora a resposta a uma alteração contenha o recurso alterado.

Uma chave pode ter ambos os escopos. Uma integração que consulta um canal e depois o altera precisa de ambos. Nenhum outro escopo concede acesso a esses endpoints, e uma chave criada no Claude Console não funciona aqui.

A chave deve pertencer à organização como um todo. A organização é sempre aquela à qual a chave pertence, e nenhuma solicitação nomeia uma. O cabeçalho anthropic-workspace-id é ignorado, porque nada aqui pertence a um workspace do Claude Platform.

Conceitos principais

Nomes nesta página e no claude.ai

Esta APIclaude.ai e Slack
Workspace do SlackUm workspace do Slack. A própria API do Slack o chama de team, então o ID do workspace do próprio Slack nesta página é o team ID lá. Ele não tem relação com um workspace do Claude Platform, cujos IDs começam com wrkspc_.
Padrões do SlackDefault Slack access: as configurações que se aplicam a todos os workspaces e canais. Um proprietário da organização as altera no claude.ai; esta API mostra onde um canal ou workspace as herda.
Nível de configuraçõesUm escopo: um canal, um workspace ou os padrões do Slack
BundleUm Access bundle (glossário do Claude Tag)
enabledO botão Enable Claude Tag in Slack
instructionsCustom instructions
modelModel
environment_idEnvironment
guest_policyHow should Claude work in channels with guests: restrict é Restrict, channel_only é Channel only e allow é Full access

Canais e workspaces configurados

Um canal ou workspace está configurado (set up) quando o Claude Tag mantém um registro de configurações para ele. Somente um canal ou workspace configurado tem um id, e somente esses são listados: o Slack, e não esta API, mantém a lista completa dos canais de um workspace.

  • Um workspace é configurado quando um proprietário da organização o conecta no claude.ai. Quando um proprietário conecta um Slack Enterprise Grid, os workspaces do Grid são configurados pouco depois. O primeiro uso do Claude em um workspace, ou o primeiro canal que você configura nele, configura qualquer um que não estava configurado. Nenhum outro endpoint configura um workspace, e nenhum remove um.
  • Um canal é configurado no claude.ai, pelo primeiro uso do Claude nele ou com Configurar um canal.

Sua organização é proprietária de um workspace enquanto sua conexão com esse workspace estiver ativa, e é proprietária dos canais nele. Um Slack Enterprise Grid agrupa vários workspaces sob uma empresa. Enquanto a conexão da sua organização com um Grid estiver ativa, ela também é proprietária de todos os workspaces no Grid que nenhuma outra organização conectou. Tal workspace é um workspace como qualquer outro: uma vez configurado, ele tem um id, é listado e pode ser lido, alterado e receber Bundles, e seus canais podem ser listados. O Grid em si não é um recurso desta API e não tem id. Um canal ou workspace do qual você não é proprietário retorna o mesmo 404 que um que não existe.

Um workspace do qual sua organização é proprietária apenas por meio de um Grid retorna esse 404 até ser configurado, sempre que uma solicitação o nomeia pelo ID do próprio Slack: quando você encontra o workspace, lista seus canais ou consulta um canal nele que não está configurado. Você ainda pode configurar um canal nele, o que também configura o workspace, sem configurações armazenadas.

Um canal compartilhado com um Grid inteiro pode ser armazenado sob o próprio ID do Slack do Grid, que começa com E, no lugar do de um workspace. Esse ID é então o slack.workspace_id do canal, e listar canais com ele como slack_workspace_id retorna esses canais. Nenhum objeto de workspace o possui: se um proprietário armazenou configurações no próprio Grid no claude.ai, sources pode nomeá-las como um slack_workspace cujo id retorna 404 quando você o lê.

IDs

Você conhece um canal pelos IDs que o Slack mostra. Consulte o id dele uma vez com Encontrar um canal pelos seus IDs do Slack, depois armazene e use o id.

IDPrefixoOnde aparece
Recurso de canal do Slackslch_id em um canal; slack_channel_id em corpos de solicitação e respostas
Recurso de workspace do Slackslws_id em um workspace; slack_workspace_id em corpos de solicitação e respostas
Bundlecapp_id em um Bundle; {bundle_id} em caminhos
Destino de Bundlebtgt_id em um destino de Bundle; {target_id} em caminhos
ID de workspace do próprio SlackT, ou E para o próprio ID de um Grid (consulte Canais e workspaces configurados)slack.workspace_id; o parâmetro de consulta slack_workspace_id
ID de canal do próprio SlackC ou Gslack.channel_id; o parâmetro de consulta slack_channel_id

Um ID de canal do Slack em um parâmetro de consulta ou corpo de solicitação que não começa com C ou G retorna 400, assim como qualquer ID do Slack que tenha algo além de letras maiúsculas e dígitos após sua primeira letra ou que tenha mais de 32 caracteres.

Um id não muda enquanto o canal ou workspace estiver configurado, seja o que for que você altere nele, com uma exceção descrita em Modo somente leitura. Um canal ou workspace que é removido e configurado novamente tem um novo id, e o antigo continua retornando 404. Quando um id armazenado retorna 404 sem error_code, liste seus workspaces com a mesma chave e os mesmos cabeçalhos. Essa solicitação não nomeia nenhum canal ou workspace, então, se ela retornar 200, o id não existe mais: encontre o canal ou workspace novamente pelos seus IDs do Slack. Qualquer outro status não diz nada sobre o id: mantenha seus valores de id armazenados e consulte Respostas de erro.

Configurações

Cada nível de configurações armazena as mesmas cinco configurações, todas opcionais:

ConfiguraçãoTipoDescrição
enabledbooleanSe o Claude está ativado.
instructionsstringOrientação permanente que o Claude lê em todas as sessões. No máximo 8.192 caracteres depois que os espaços em branco iniciais e finais são removidos. Texto em branco limpa a configuração.
modelstringO modelo com que novas sessões começam: um ID de modelo que sua organização pode usar com o Claude Tag. No máximo 128 caracteres.
environment_idstringO ambiente de nuvem em que as sessões são executadas, com o prefixo env_. Ele deve estar ativo e pertencer à sua organização.
guest_policyobjectO que o Claude faz em um canal enquanto um convidado do Slack está nele, para todos no canal: {"type": "allow"} (o Claude responde), {"type": "restrict"} (o Claude não responde) ou {"type": "channel_only"} (o Claude responde apenas com os Bundles anexados ao próprio canal; se channel_only não estiver disponível para sua organização, uma solicitação que o define retorna 400). Consulte Restringir canais com convidados para saber o que isso significa em canais compartilhados por meio do Slack Connect ou em um Enterprise Grid.

model e environment_id são verificados quando você os grava e não novamente: se o modelo ou o ambiente mudar depois, as respostas continuam retornando o valor armazenado.

Se um proprietário da organização tiver colocado um nível de configurações em um pool de runners auto-hospedado no claude.ai, seu environment_id retorna o ID do pool, que começa com ccpool_. Esta API não pode definir um pool de runners e retorna 400 para uma requisição que altera ou limpa environment_id em um nível de configurações que armazena um.

Valores armazenados e herdados

As configurações existem em três níveis: o canal, o workspace em que o canal está e os padrões do Slack da sua organização, que um proprietário da organização define no claude.ai. Cada nível armazena apenas o que foi definido nele. O settings de um objeto de canal ou workspace pode conter uma de duas coisas:

  • O que ele armazena. É isso que uma resposta contém, a menos que você peça o contrário. Uma configuração que não está definida no canal ou workspace é null. Use isso para comparar com a configuração que você mantém em outro lugar.
  • O que se aplica nele, uma vez que todos os níveis são levados em conta. Para obter isso, adicione o parâmetro de consulta include_inherited=true a qualquer solicitação GET que retorne um canal ou um workspace, incluindo as duas listas. Use isso para auditar, ou para descobrir por que o Claude se comporta de determinada forma em um canal. O parâmetro tem como padrão false, e um valor que não seja booleano retorna 400. Uma solicitação que configura um canal ou altera configurações não aceita o parâmetro e retorna 400 se você o enviar; sua resposta contém o que está armazenado.

Em ambos os casos, sources nomeia, para cada configuração, o nível de onde vem o valor em settings. Sem include_inherited, a origem de uma configuração que o canal ou workspace armazena nomeia o próprio canal ou workspace, e uma configuração que ele não armazena não tem origem: null, ou uma lista vazia para instructions. Com include_inherited=true, toda configuração exceto instructions tem uma origem, e uma configuração que nenhum nível define tem a origem {"type": "default"}; quando nenhum nível define instructions, ela é null e sua lista de origens está vazia. Portanto, para distinguir um valor que o canal ou workspace define por conta própria de um que ele herda, observe sua origem, e não se o valor é null.

Cada configuração é resolvida individualmente:

ConfiguraçãoRegraQuando nenhum nível a define
enabledO nível mais próximo que a define determina o valor, então true em um canal ativa o Claude lá mesmo quando seu workspace armazena false.true
instructionsAditiva. O texto de cada nível que a define é unido, do mais amplo para o mais específico, com uma linha em branco entre eles.null
modelO nível mais próximo que a define determina o valor.null: o Claude usa o modelo padrão do produto
environment_idO nível mais próximo que a define determina o valor.null
guest_policyO nível mais próximo que a define determina o valor.restrict

Por exemplo, uma organização armazena instruções nos seus padrões do Slack, desativa o Claude em um workspace e define um modelo em um canal desse workspace. Lido com include_inherited=true, o canal mostra os três valores e de onde cada um vem:

{
  "type": "slack_channel",
  "id": "slch_011CZkZmRt4vNq8sHbYw2KdX",
  "slack": {
    "workspace_id": "T01ABCD2EFG",
    "channel_id": "C05HJKL6MNP"
  },
  "settings": {
    "enabled": false,
    "instructions": "Be brief.",
    "model": "claude-opus-5-5",
    "environment_id": null,
    "guest_policy": { "type": "restrict" }
  },
  "sources": {
    "enabled": {
      "type": "slack_workspace",
      "slack_workspace_id": "slws_011CZkZnWa7xPc3uJfZe5LgT"
    },
    "instructions": [{ "type": "slack_default" }],
    "model": {
      "type": "slack_channel",
      "slack_channel_id": "slch_011CZkZmRt4vNq8sHbYw2KdX"
    },
    "environment_id": { "type": "default" },
    "guest_policy": { "type": "default" }
  },
  "created_at": "2026-10-19T16:20:05Z",
  "updated_at": "2026-10-19T16:24:38Z"
}

Lido sem o parâmetro, o mesmo canal tem seu model e quatro configurações null em settings; em sources, model nomeia o canal, instructions é uma lista vazia e as outras três são null.

Uma origem é uma das seguintes:

typeSignificado
slack_channelO canal, nomeado em slack_channel_id.
slack_workspaceO workspace, nomeado em slack_workspace_id.
slack_parent_channelO pai de um canal de código, nomeado em slack_channel_id. Um canal de código é aquele que foi iniciado a partir de outro canal. Enquanto o pai for um canal público no mesmo workspace, ele fica entre o canal e o workspace e contribui apenas com instructions e environment_id.
slack_grid_channelO mesmo canal do Slack conforme configurado em outro workspace do seu Slack Enterprise Grid, nomeado pelos IDs do próprio Slack sob slack. Ele contribui apenas com enabled: quando nem o canal nem seu workspace definem enabled, um true armazenado para o canal em outro workspace do Grid se aplica.
slack_defaultOs padrões do Slack da sua organização, que não têm ID.
defaultNenhum nível define um valor, então o padrão integrado se aplica.

sources.instructions lista todos os níveis que contribuem com texto, do mais amplo para o mais específico, que é a ordem do texto deles em settings.instructions, e fica vazio quando nenhum contribui. Ele diz de quem é o texto que vem primeiro, não onde termina o texto de um nível: para obter o texto próprio de um nível, leia esse canal ou workspace sem include_inherited ou, para os padrões do Slack, consulte o claude.ai. Uma origem que nomeia um canal ou workspace sempre carrega seu ID, que nunca é null: um id desta API em slack_channel_id ou slack_workspace_id ou, em slack_grid_channel, os IDs do próprio Slack sob slack, como em um objeto de canal.

Com include_inherited=true, uma solicitação falha com 503 se um nível não puder ser lido, em vez de responder sem ele.

Alterando configurações

Os dois endpoints de atualização e Configurar um canal aceitam um objeto settings sob as mesmas regras:

  • Uma configuração que você omite permanece inalterada. {"settings": {"enabled": false}} desativa o Claude e deixa as outras quatro configurações como estão.
  • Uma configuração que você envia como null é limpa, então o nível volta a herdá-la.
  • Tudo ou nada. Se qualquer valor em uma solicitação for recusado, nenhuma configuração da solicitação é armazenada.
  • Seguro para repetir. Toda alteração deixa o recurso como a primeira solicitação idêntica o deixou, então nenhum endpoint aceita um Idempotency-Key. Uma solicitação que não altera nada não grava nada e não registra nenhum evento no Activity Feed.
  • A última gravação vence. Nenhuma solicitação aceita uma pré-condição. Dois chamadores que leem um recurso e depois alteram a mesma configuração sobrescrevem um ao outro. Um 409 é retornado apenas quando outra alteração se sobrepõe à sua solicitação enquanto ela é executada; nada do que sua solicitação pediu para alterar ou excluir foi feito, exceto que uma solicitação de configuração pode já ter configurado o canal, então leia o recurso novamente e reenvie a alteração se ela ainda for necessária.

Uma alteração em guest_policy em um canal pode encerrar sessões que estão em execução nesse canal. Elas são encerradas em segundo plano, e a resposta não espera por isso.

Modo somente leitura

API / Terraform read-only mode é uma configuração que um proprietário da organização ativa e desativa nas configurações do Claude Tag no claude.ai. O nome descreve o claude.ai e o Slack: enquanto o modo está ativado, eles recusam as alterações de uma pessoa ao que esta API gerencia, então apenas chaves fazem essas alterações. Eles também recusam algumas alterações relacionadas que nenhuma chave faz, como alterar uma configuração nos padrões do Slack, então ninguém as faz até que um proprietário desative o modo. Ele não torna esta API somente leitura. Todos os endpoints nesta página respondem da mesma forma, com o modo ativado ou desativado, e nenhum endpoint o lê ou altera.

Enquanto o modo está desativado, pessoas e chaves alteram as mesmas configurações e anexam e desanexam os mesmos Bundles, e cada alteração substitui o que está armazenado. Ative-o se o seu pipeline deve ser a única fonte de alterações.

Enquanto o modo está ativado, o claude.ai e o Slack recusam:

  • Alterar qualquer uma das cinco configurações em um canal, um workspace ou nos padrões do Slack (que nenhuma chave altera também)
  • Configurar um canal, remover um canal, adicionar um workspace de um Enterprise Grid conectado ou desconectar um workspace ou um Grid no claude.ai
  • Anexar um Bundle a um canal ou workspace, desanexar um, ou excluir um Bundle que esteja anexado a um

Algumas coisas continuam possíveis de qualquer forma: um proprietário ainda pode conectar um novo workspace ou Grid, criar e editar Bundles e alterar configurações do Claude Tag que esta API não gerencia. O primeiro uso do Claude ainda configura um canal, ou um workspace de Grid que não estava configurado, excluir um canal no Slack ainda o remove, e desinstalar o app do Claude para Slack ainda desconecta esse workspace ou Grid.

Enquanto o modo está desativado, configurar no claude.ai um canal que já está configurado pode substituir o registro do canal, mas apenas de um canal que ainda não contém nada: um que o primeiro uso do Claude configurou, ou que esta API configurou sem settings, e no qual ninguém desde então armazenou uma configuração ou anexou um Bundle. O canal passa então a ter um novo id, e o antigo retorna 404. Qualquer outro canal mantém seu id até ser removido.

Mensagens diretas em grupo

Uma mensagem direta em grupo do Slack tem um ID no formato de um canal, então o uso do Claude em uma a configura como um canal: ela tem um id, é listada e pode ser lida. Configurar uma por meio desta API, alterar uma configuração em uma, anexar um Bundle a uma e remover uma retornam 400, exceto que uma solicitação de configuração que omite settings para uma que já está configurada a retorna com 200, como uma leitura faz. Desanexar um Bundle de uma é permitido.

Fluxos de trabalho de exemplo

Ativar o Claude apenas em canais aprovados

Qualquer membro pode convidar o Claude para um canal público. Para manter o Claude ativado apenas onde você o aprovou:

  1. Peça a um proprietário da organização para desativar o Claude em todos os lugares no claude.ai, com o botão Enable Claude Tag in Slack em Default Slack access, que armazena enabled como false nos padrões do Slack da sua organização. O modo somente leitura deve estar desativado enquanto ele faz isso.
  2. Quando seu sistema de aprovação aprovar um canal, configure o canal com "settings": {"enabled": true}. A solicitação aceita os IDs do próprio Slack e retorna o canal mesmo que ele já estivesse configurado, então é seguro repeti-la.
  3. Na mesma execução, anexe os Bundles para os quais a equipe foi aprovada, para que a primeira sessão do canal já tenha suas ferramentas.

Manter a configuração em controle de versão

  1. Identifique sua configuração pelos IDs que o Slack mostra para cada canal e encontre cada canal por eles.
  2. Leia cada canal sem include_inherited e compare seu settings com o que seu repositório declara. Com o parâmetro, valores herdados seriam misturados.
  3. Envie apenas as configurações que diferem, e envie null para uma configuração que seu repositório não declara mais.
  4. Peça a um proprietário da organização para ativar o modo somente leitura, para que ninguém altere as mesmas configurações manualmente.

Auditar o que se aplica em todos os lugares

  1. Liste seus workspaces, depois liste os canais de cada workspace, ambos com include_inherited=true, para que cada item contenha o que se aplica nele. Se sua organização conectou um Enterprise Grid, liste também os canais armazenados sob o próprio ID do Slack do Grid. Consulte Canais e workspaces configurados.
  2. Sinalize o que sua política proíbe, como um canal em que enabled é true sem uma aprovação registrada, ou em que guest_policy é allow.
  3. Liste seus Bundles, depois os destinos de cada Bundle, para ver onde o acesso a sistemas sensíveis está anexado.

Canais do Slack

O objeto de canal descreve um canal do Slack:

CampoDescrição
typeslack_channel.
idCom o prefixo slch_. Consulte IDs.
slackOs IDs do próprio Slack: workspace_id para o workspace em que o canal está e channel_id para o canal.
settingsO que o próprio canal armazena ou, com include_inherited=true, o que se aplica nele. Sempre presente, com todas as cinco configurações; uma que não está definida é null. Consulte Valores armazenados e herdados.
sourcesPara cada configuração, o nível de onde vem o valor em settings. Sempre presente.
created_atQuando o canal foi configurado.
updated_atQuando o registro do canal no Claude Tag mudou pela última vez. Ele muda a cada alteração de uma configuração, aqui, no claude.ai ou no Slack, e também pode mudar por uma alteração que nenhuma resposta aqui mostra. Trate um valor posterior como um motivo para ler o canal novamente, não como prova de que uma configuração mudou. Anexar ou desanexar um Bundle não o altera por si só.

Um id que não é um identificador slch_ válido retorna 400. Um válido que não nomeia nenhum canal da sua organização retorna 404.

Configurar um canal

POST /v1/organizations/claude_tag/slack_channels configura um canal do Slack e o retorna. slack.workspace_id e slack.channel_id são obrigatórios e são os IDs do próprio Slack. settings é opcional e segue Alterando configurações. Se o canal já estiver configurado, a solicitação retorna o canal existente e aplica settings; a resposta é 200 em ambos os casos. Requer o escopo write:claude_tag.

client = anthropic.Anthropic()

channel = client.beta.organization.claude_tag.slack_channels.create(
    slack={"workspace_id": "T01ABCD2EFG", "channel_id": "C05HJKL6MNP"},
    settings={"instructions": "Answer in the language of the question."},
)

print(channel.id)
Response
{
  "type": "slack_channel",
  "id": "slch_011CZkZmRt4vNq8sHbYw2KdX",
  "slack": {
    "workspace_id": "T01ABCD2EFG",
    "channel_id": "C05HJKL6MNP"
  },
  "settings": {
    "enabled": null,
    "instructions": "Answer in the language of the question.",
    "model": null,
    "environment_id": null,
    "guest_policy": null
  },
  "sources": {
    "enabled": null,
    "instructions": [
      {
        "type": "slack_channel",
        "slack_channel_id": "slch_011CZkZmRt4vNq8sHbYw2KdX"
      }
    ],
    "model": null,
    "environment_id": null,
    "guest_policy": null
  },
  "created_at": "2026-10-19T16:20:05Z",
  "updated_at": "2026-10-19T16:20:05Z"
}

Antes de um canal ser configurado, o app do Claude para Slack confirma com o Slack que o canal está no workspace, não está arquivado e é visível para o app. Um canal que falha nessa verificação retorna 404, assim como um workspace que não tem o app do Claude para Slack instalado. Para um workspace do qual sua organização é proprietária por meio de um Enterprise Grid, o app deve estar instalado no Grid.

Configurar o canal e aplicar settings são duas etapas. Quando esta solicitação configura o canal e settings é então recusado com um 400, 404 ou 409, a resposta é a recusa e o canal permanece configurado sem nada armazenado (após um 409, a menos que a alteração sobreposta o tenha removido ou substituído). Essa recusa carrega um error_code que começa com slack_channel_set_up_ e o id do novo canal em error.details.slack_channel_id (consulte Respostas de erro). Corrija settings e envie-o em uma atualização para esse id, ou envie a solicitação de configuração novamente. Se o canal já estava configurado, um settings recusado retorna o mesmo erro que uma atualização retornaria, e o canal mantém o que armazenava. Um 500 ou 503 em qualquer dos casos não carrega error_code e não diz se o canal foi configurado ou se settings foi armazenado: envie a solicitação de configuração novamente.

Listar canais

GET /v1/organizations/claude_tag/slack_channels lista os canais configurados de um workspace, do mais recente para o mais antigo por created_at. slack_workspace_id é obrigatório e é o ID do próprio Slack para o workspace. Adicione include_inherited=true para que cada canal contenha o que se aplica nele (consulte Valores armazenados e herdados). Uma página pode conter menos de limit canais, ou nenhum, enquanto next_page ainda estiver definido, então continue solicitando páginas até que next_page seja null (consulte Paginação). Requer o escopo read:claude_tag.

client = anthropic.Anthropic()

channels = client.beta.organization.claude_tag.slack_channels.list(
    slack_workspace_id="T01ABCD2EFG"
)

# Busca automaticamente mais páginas conforme necessário.
for channel in channels:
    print(f"{channel.id}: {channel.slack.channel_id}")

A resposta é {"data": [...], "next_page": ...}, em que cada item é um objeto de canal. Um slack_workspace_id que nomeia um workspace do qual sua organização não é proprietária retorna 404, assim como um do qual ela é proprietária apenas por meio de um Enterprise Grid até que esse workspace seja configurado (consulte Canais e workspaces configurados).

Encontrar um canal pelos seus IDs do Slack

Adicione slack_channel_id, o ID do próprio Slack para o canal, para consultar um canal. data contém esse canal, ou fica vazio quando o canal não está configurado. Em um workspace que não está configurado e do qual sua organização é proprietária apenas por meio de um Enterprise Grid, um canal que não está configurado retorna 404 em vez disso. Uma consulta não pagina: ela ignora page e qualquer limit de 1 a 100 (um limit fora desse intervalo ainda retorna 400), e seu next_page é null. É assim que você encontra o id de um canal.

client = anthropic.Anthropic()

page = client.beta.organization.claude_tag.slack_channels.list(
    slack_workspace_id="T01ABCD2EFG",
    slack_channel_id="C05HJKL6MNP",
)

for channel in page.data:
    print(channel.id)

Passar um ID slch_ como slack_channel_id retorna 400.

Obter um canal

GET /v1/organizations/claude_tag/slack_channels/{id} retorna o objeto de canal, contendo o que o canal armazena. Para ler o que se aplica nele em vez disso, consulte Ler o que se aplica em um canal. Requer o escopo read:claude_tag.

client = anthropic.Anthropic()

channel = client.beta.organization.claude_tag.slack_channels.retrieve(
    "slch_011CZkZmRt4vNq8sHbYw2KdX"
)

print(channel.settings.enabled)

Ler o que se aplica em um canal

A mesma solicitação com include_inherited=true retorna o objeto de canal com settings contendo o que se aplica no canal, e sources dizendo de onde vem cada valor. Valores armazenados e herdados mostra uma resposta completa; enabled e guest_policy nunca são null nela. Se um nível não puder ser lido, a solicitação falha com 503 em vez de responder sem ele. Requer o escopo read:claude_tag.

client = anthropic.Anthropic()

channel = client.beta.organization.claude_tag.slack_channels.retrieve(
    "slch_011CZkZmRt4vNq8sHbYw2KdX",
    include_inherited=True,
)

print(channel.settings.instructions)

Atualizar um canal

POST /v1/organizations/claude_tag/slack_channels/{id} altera as configurações do canal e retorna o objeto de canal. settings é obrigatório e segue Alterando configurações. Requer o escopo write:claude_tag.

Desative o Claude em um canal e deixe suas outras configurações como estão:

client = anthropic.Anthropic()

channel = client.beta.organization.claude_tag.slack_channels.update(
    "slch_011CZkZmRt4vNq8sHbYw2KdX",
    settings={"enabled": False},
)

print(channel.settings.enabled)

Limpe as instruções do canal, para que apenas as herdadas se apliquem:

client = anthropic.Anthropic()

channel = client.beta.organization.claude_tag.slack_channels.update(
    "slch_011CZkZmRt4vNq8sHbYw2KdX",
    settings={"instructions": None},
)

print(channel.settings.instructions)

Remover um canal

DELETE /v1/organizations/claude_tag/slack_channels/{id} remove um canal do Claude Tag. É a mesma remoção que um proprietário da organização faz no claude.ai, com o mesmo efeito. Ela não exclui, arquiva nem altera o canal no Slack, nem qualquer mensagem nele. Requer o escopo write:claude_tag.

Um canal só pode ser removido enquanto o Claude estiver desativado nele. Enquanto enabled for resolvido como true para o canal, conforme Ler o que se aplica em um canal o retorna, a solicitação retorna 400 com error_code: "slack_channel_enabled". Defina enabled como false no canal primeiro e depois envie a solicitação novamente. A única exceção é uma organização com uma configuração de conformidade restrita: ela não pode fazer essa alteração, então sua solicitação remove o canal esteja o Claude ativado nele ou não. Se um nível de que essa verificação precisa não puder ser lido, a solicitação retorna 503 e não remove nada.

A verificação protege contra a remoção por engano de um canal que está em uso. Ela não mantém o Claude fora do canal depois. A remoção exclui as configurações próprias do canal, incluindo um enabled de false, então a partir de então apenas o que o canal herda determina se o Claude está ativado lá. Se isso ativar o Claude, o Claude volta a responder no canal na próxima menção, e esse uso configura o canal novamente: um novo id, sem configurações próprias e sem nada da memória do canal removido.

  • Para manter o Claude fora de um canal, mantenha-o configurado com enabled definido como false em vez de removê-lo, ou certifique-se de que o que ele herdaria, que a remoção não afeta, mantém o Claude desativado.
  • Para que um canal não armazene nada e mantenha suas sessões e memória, limpe cada configuração e desanexe cada Bundle em vez disso.

Dois tipos de canal não podem ser removidos aqui de forma alguma, esteja o Claude ativado ou desativado neles, e retornam 400 sem error_code: uma mensagem direta em grupo e um canal que contém configuração que esta API não gerencia, como um pool de runners ou uma configuração que apenas o claude.ai tem. Eles são verificados antes de enabled, então desativar o Claude não ajuda; um proprietário da organização remove o segundo tipo no claude.ai.

client = anthropic.Anthropic()

deleted_channel = client.beta.organization.claude_tag.slack_channels.delete(
    "slch_011CZkZmRt4vNq8sHbYw2KdX"
)

print(deleted_channel.id)
Response
{
  "type": "slack_channel_deleted",
  "id": "slch_011CZkZmRt4vNq8sHbYw2KdX"
}

O id retorna 404 assim que a solicitação retorna, e o restante é excluído em segundo plano. Uma remoção repetida retorna 404, então, se você reenviar uma remoção após um 503, um 404 significa que o canal já não existe.

Workspaces do Slack

O objeto de workspace descreve um workspace do Slack. Ele tem os mesmos campos que o objeto de canal, exceto que type é slack_workspace, id tem o prefixo slws_ e slack contém apenas workspace_id. A resposta do Início rápido mostra um completo. Lido com include_inherited=true, um workspace mostra cada configuração conforme o workspace e os padrões do Slack a resolvem, que é o que um canal do workspace herda, a menos que um nível mais próximo defina essa configuração.

Um id que não é um identificador slws_ válido retorna 400. Um válido que não nomeia nenhum workspace da sua organização retorna 404.

Listar workspaces

GET /v1/organizations/claude_tag/slack_workspaces lista os workspaces configurados dos quais sua organização é proprietária, do mais recente para o mais antigo por created_at. O Início rápido mostra a solicitação e a resposta. Para encontrar um workspace pelo ID do próprio Slack, adicione slack_workspace_id: data contém esse workspace, ou fica vazio quando ele não está configurado, e um workspace do qual sua organização não é proprietária retorna 404. Um workspace do qual ela é proprietária apenas por meio de um Enterprise Grid também retorna 404 até ser configurado. Adicione include_inherited=true para que cada workspace contenha o que se aplica nele (consulte Valores armazenados e herdados). Requer o escopo read:claude_tag.

Obter um workspace

GET /v1/organizations/claude_tag/slack_workspaces/{id} retorna o objeto de workspace, contendo o que o workspace armazena ou, com include_inherited=true na consulta, como em Ler o que se aplica em um canal, o que se aplica nele. Requer o escopo read:claude_tag.

client = anthropic.Anthropic()

workspace = client.beta.organization.claude_tag.slack_workspaces.retrieve(
    "slws_011CZkZnWa7xPc3uJfZe5LgT"
)

print(workspace.settings.instructions)

Atualizar um workspace

POST /v1/organizations/claude_tag/slack_workspaces/{id} altera as configurações do workspace e retorna o objeto de workspace. settings é obrigatório e segue Alterando configurações. O que você define aqui se aplica em todos os canais do workspace que não definem seu próprio valor, exceto instructions, ao qual cada canal adiciona o seu próprio em vez de substituí-lo. Requer o escopo write:claude_tag.

client = anthropic.Anthropic()

workspace = client.beta.organization.claude_tag.slack_workspaces.update(
    "slws_011CZkZnWa7xPc3uJfZe5LgT",
    settings={"guest_policy": {"type": "restrict"}},
)

print(workspace.settings.guest_policy)

Bundles

Um Bundle é o que o claude.ai chama de Access bundle: um conjunto nomeado de acessos, como conectores, repositórios e credenciais, que o Claude pode usar em um canal ou workspace. Proprietários da organização criam, editam e excluem Bundles no claude.ai. Esta API os lista e os anexa. Ela retorna o nome e a descrição de um Bundle e nunca o que o Bundle concede.

CampoDescrição
typebundle.
idCom prefixo capp_.
display_nameO nome do Bundle.
descriptionPara que serve o Bundle. null quando não tem descrição.
created_at, updated_atQuando o Bundle foi criado e alterado pela última vez.

Um bundle_id que não é um identificador capp_ válido retorna 400. Um válido que não existe ou pertence a outra organização retorna 404, independentemente do que mais a solicitação contenha. Bundles que o Claude Tag gerencia para si mesmo não são listados e retornam 404.

Listar Bundles

GET /v1/organizations/claude_tag/bundles lista os Bundles da sua organização, do mais recente para o mais antigo por created_at. Requer o escopo read:claude_tag.

client = anthropic.Anthropic()

bundles = client.beta.organization.claude_tag.bundles.list()

# Busca automaticamente mais páginas conforme necessário.
for bundle in bundles:
    print(f"{bundle.id}: {bundle.display_name}")
Response
{
  "data": [
    {
      "type": "bundle",
      "id": "capp_011CZkZjLP1cWxj5EtMmdgbq",
      "display_name": "Support tools",
      "description": "Issue tracker and the support runbooks repository.",
      "created_at": "2026-09-12T08:15:30Z",
      "updated_at": "2026-09-30T13:02:47Z"
    }
  ],
  "next_page": null
}

Obter um Bundle

GET /v1/organizations/claude_tag/bundles/{bundle_id} retorna o objeto Bundle. Requer o escopo read:claude_tag.

client = anthropic.Anthropic()

bundle = client.beta.organization.claude_tag.bundles.retrieve(
    "capp_011CZkZjLP1cWxj5EtMmdgbq"
)

print(bundle.display_name)

Destinos de Bundle

Um destino de Bundle é o registro de um Bundle anexado a um canal ou a um workspace. Um Bundle anexado a um workspace pode ser usado no workspace e em todos os canais dele. Um Bundle anexado a um canal pode ser usado apenas nesse canal.

CampoDescrição
typeslack_channel ou slack_workspace.
idCom prefixo btgt_. É o {target_id} nos caminhos e nunca é o próprio id do canal ou do workspace.
slack_channel_idEm um destino slack_channel: o id do canal, com prefixo slch_.
slack_workspace_idEm um destino slack_workspace: o id do workspace, com prefixo slws_.
created_atQuando o Bundle foi anexado.

Um Bundle é anexado a um canal ou workspace no máximo uma vez, e o mesmo par sempre tem o mesmo id, inclusive após uma desanexação e uma nova anexação. O id é opaco: obtenha-o da resposta a uma anexação ou da lista. Um destino de Bundle não contém o id do seu Bundle, que seus caminhos também exigem, portanto mantenha os dois juntos.

Anexar ou desanexar não altera nenhuma configuração armazenada. As sessões em execução no canal ou workspace são informadas de que seu acesso mudou.

O Bundle que o claude.ai anexa como parte de uma configuração de plantão (on-call) é listado e pode ser lido, mas não pode ser anexado nem desanexado aqui, e nada pode ser anexado a um canal ou workspace que uma configuração de plantão gerencia, nem desanexado dele. Cada uma dessas requisições retorna 400.

Listar os destinos de um Bundle

GET /v1/organizations/claude_tag/bundles/{bundle_id}/targets lista os canais e workspaces aos quais o Bundle está anexado, do mais recente para o mais antigo por created_at. Requer o escopo read:claude_tag.

client = anthropic.Anthropic()

targets = client.beta.organization.claude_tag.bundles.targets.list(
    "capp_011CZkZjLP1cWxj5EtMmdgbq"
)

# Busca automaticamente mais páginas conforme necessário.
for target in targets:
    print(f"{target.id}: {target.type}")
Response
{
  "data": [
    {
      "type": "slack_channel",
      "id": "btgt_011CZkZpBv9yQd6wKhAr8MnU1CZkZwPd5fSj8tMxUr3ZcH",
      "slack_channel_id": "slch_011CZkZmRt4vNq8sHbYw2KdX",
      "created_at": "2026-10-19T16:21:44Z"
    },
    {
      "type": "slack_workspace",
      "id": "btgt_011CZkZuMc3dVk7xQpGw9StZ1CZkZxRe6gTk9uNyVs4adJ",
      "slack_workspace_id": "slws_011CZkZnWa7xPc3uJfZe5LgT",
      "created_at": "2026-09-12T08:17:02Z"
    }
  ],
  "next_page": null
}

Apenas anexações a canais e workspaces são listadas. Um Bundle que está anexado no claude.ai a qualquer outra coisa, como Default Slack access, não tem um destino de Bundle para isso, e o mesmo vale para uma regra que aplica um Bundle em muitos canais de uma vez. Portanto, os Bundles que o Claude pode usar em um canal podem ser mais do que os destinos que o identificam. Nenhum endpoint lista os Bundles anexados a um canal ou workspace.

Anexar um Bundle

POST /v1/organizations/claude_tag/bundles/{bundle_id}/targets anexa o Bundle e retorna o destino de Bundle. O corpo informa o type e o id correspondente. O canal ou workspace já deve estar configurado: anexar nunca configura um canal. Anexar um par que já está anexado retorna 200 com o destino de Bundle existente. Requer o escopo write:claude_tag.

Anexe um Bundle a um canal:

client = anthropic.Anthropic()

target = client.beta.organization.claude_tag.bundles.targets.create(
    "capp_011CZkZjLP1cWxj5EtMmdgbq",
    type="slack_channel",
    slack_channel_id="slch_011CZkZmRt4vNq8sHbYw2KdX",
)

print(target.id)
Response
{
  "type": "slack_channel",
  "id": "btgt_011CZkZpBv9yQd6wKhAr8MnU1CZkZwPd5fSj8tMxUr3ZcH",
  "slack_channel_id": "slch_011CZkZmRt4vNq8sHbYw2KdX",
  "created_at": "2026-10-19T16:21:44Z"
}

Anexe um Bundle a um workspace:

client = anthropic.Anthropic()

target = client.beta.organization.claude_tag.bundles.targets.create(
    "capp_011CZkZjLP1cWxj5EtMmdgbq",
    type="slack_workspace",
    slack_workspace_id="slws_011CZkZnWa7xPc3uJfZe5LgT",
)

print(target.id)

Uma anexação a um canal tem condições sob as quais se aplica, como apenas enquanto nenhum convidado do Slack estiver no canal. As condições são definidas no claude.ai e não são retornadas aqui. Anexar por meio desta API usa as condições padrão, e anexar um par que já está anexado mantém suas condições inalteradas.

Obter um destino de Bundle

GET /v1/organizations/claude_tag/bundles/{bundle_id}/targets/{target_id} retorna o destino de Bundle. Um target_id que não é um identificador btgt_ válido retorna 400. Um válido que pertence a outro Bundle, foi desanexado ou nomeia um canal ou workspace que não está mais configurado retorna 404. Requer o escopo read:claude_tag.

client = anthropic.Anthropic()

target = client.beta.organization.claude_tag.bundles.targets.retrieve(
    "btgt_011CZkZpBv9yQd6wKhAr8MnU1CZkZwPd5fSj8tMxUr3ZcH",
    bundle_id="capp_011CZkZjLP1cWxj5EtMmdgbq",
)

print(target.type)

Desanexar um Bundle

DELETE /v1/organizations/claude_tag/bundles/{bundle_id}/targets/{target_id} desanexa o Bundle. Uma desanexação repetida retorna 404, então, após um 503, uma desanexação reenviada que retorna 404 significa que o destino de Bundle já não existe. Requer o escopo write:claude_tag.

client = anthropic.Anthropic()

deleted_target = client.beta.organization.claude_tag.bundles.targets.delete(
    "btgt_011CZkZpBv9yQd6wKhAr8MnU1CZkZwPd5fSj8tMxUr3ZcH",
    bundle_id="capp_011CZkZjLP1cWxj5EtMmdgbq",
)

print(deleted_target.id)
Response
{
  "type": "bundle_target_deleted",
  "id": "btgt_011CZkZpBv9yQd6wKhAr8MnU1CZkZwPd5fSj8tMxUr3ZcH"
}

Valores não reconhecidos

guest_policy.type, o type de uma origem, o type de um destino de Bundle e os códigos de erro podem ganhar novos valores a qualquer momento. Trate um valor que você não reconhece como trataria qualquer string desconhecida, em vez de falhar.

Limitação de taxa

As solicitações são limitadas para cada organização, em dois orçamentos que todas as chaves da sua organização compartilham e que são separados dos outros limites da Admin API da sua organização. Cada orçamento permite um pico e depois é reabastecido a uma taxa constante:

OrçamentoRequisiçõesPicoReabastecimento
LeiturasTodo GET1202 por segundo
AlteraçõesTodo POST e DELETE601 por segundo

Solicitações acima de um orçamento retornam 429 Too Many Requests com um cabeçalho retry-after: aguarde esse número de segundos e depois envie a solicitação novamente. Uma solicitação que chegou até seu orçamento, qualquer que seja seu resultado, recebe os cabeçalhos anthropic-ratelimit-requests-limit, anthropic-ratelimit-requests-remaining e anthropic-ratelimit-requests-reset para esse orçamento; uma solicitação recusada antes disso, por exemplo por causa de sua chave, escopo ou cabeçalhos, ou porque a API, as alterações ou o novo armazenamento não estão habilitados para sua organização, não recebe nenhum.

Paginação

Os endpoints de lista usam um cursor opaco. A primeira solicitação retorna até limit linhas mais um cursor next_page; passe o cursor sem alterações como o parâmetro page na próxima solicitação, com os outros parâmetros de consulta inalterados, e repita até que next_page seja null. Um cursor enviado com o outro valor de include_inherited em relação à solicitação que o retornou retorna 400. Trate a string do cursor como opaca: não a analise, modifique ou construa você mesmo. Listar canais pode retornar uma página com menos de limit canais, ou nenhum, enquanto next_page ainda estiver definido, então continue solicitando páginas até que next_page seja null. Os iteradores de lista dos SDKs de Python, TypeScript, C#, Go, Java e Ruby e a CLI (exceto com --format raw) fazem isso por você. Em PHP e curl, solicite cada página você mesmo e passe seu next_page como page.

limit tem como padrão 20, com mínimo de 1 e máximo de 100; um valor fora desse intervalo retorna 400 em todas as listas. Todas as listas são ordenadas da mais recente para a mais antiga por created_at, e não aceitam outra ordem.

Respostas de erro

As respostas de erro seguem o formato padrão documentado em Erros da Claude API. Informe o request_id do corpo da resposta ao entrar em contato com o suporte.

StatusSignificado
400Entrada inválida, ou a operação não se aplica a este canal, workspace ou Bundle (consulte a seção de cada endpoint).
401Cabeçalho x-api-key ausente, ou a chave não é reconhecida.
403A chave não é uma chave com escopo no nível da organização, não tem o escopo necessário ou sua organização não pode fazer essa alteração.
404Recurso não encontrado, ou não pertence à sua organização. Também retornado quando a solicitação omite o valor anthropic-beta, ou a API não está habilitada para sua organização, de modo que os endpoints parecem inexistentes.
409Outra coisa alterou ou removeu o recurso enquanto a solicitação era executada. Nada do que a solicitação pediu foi feito: nenhuma configuração armazenada, nada anexado, desanexado ou removido. A única exceção é uma solicitação de configuração, que pode ter configurado o canal antes que seu settings encontrasse o conflito (slack_channel_set_up_settings_conflict). Leia o recurso novamente e reenvie a solicitação se ela ainda for necessária.
429"Rate limit" (limite de taxa) excedido. Consulte Limitação de taxa.
500Erro interno.
503Temporário. Em uma alteração, não diz se a alteração foi armazenada. Toda alteração é segura para repetir, então envie a solicitação novamente sem alterações. Se um DELETE reenviado retornar 404, o canal ou o destino de Bundle já não existe.

Quando um status tem várias causas que você trataria de forma diferente, o erro também contém error.details.error_code:

{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "...",
    "details": {
      "error_code": "slack_channel_set_up_settings_refused",
      "slack_channel_id": "slch_011CZkZmRt4vNq8sHbYw2KdX"
    }
  },
  "request_id": "req_018EeWyXxfu5pfWkrYcMdjWG"
}
error_codeStatusSignificado e o que fazer
organization_level_scoped_api_key_required403A credencial não é uma chave de API de Admin com escopo que pertence à organização como um todo. Peça uma ao seu proprietário principal.
api_key_scope_missing403A chave não tem read:claude_tag ou write:claude_tag, conforme o endpoint exigir.
claude_tag_writes_not_enabled403Sua organização pode ler por meio desta API, mas não está habilitada para alterações.
compliance_configuration_restricted403Sua organização tem uma configuração de conformidade sob a qual o Claude Tag não armazena nada novo, como retenção zero de dados. Configurar um canal, atualizar configurações (mesmo para limpá-las) e anexar um Bundle são recusados. Desanexar um Bundle e remover um canal não são, e tal organização pode remover um canal mesmo enquanto o Claude estiver ativado nele.
environment_not_found404environment_id não nomeia nenhum ambiente que sua organização possa usar aqui. O id no caminho está correto.
environment_archived400environment_id nomeia um ambiente arquivado.
slack_channel_set_up_settings_refused400A solicitação configurou o canal, depois settings foi recusado. details.slack_channel_id é o canal. Consulte Configurar um canal.
slack_channel_set_up_environment_not_found404A solicitação configurou o canal, depois environment_id não foi encontrado. details.slack_channel_id é o canal. Consulte Configurar um canal.
slack_channel_set_up_settings_conflict409A solicitação configurou o canal, depois outra alteração se sobrepôs a settings. Nada de settings foi armazenado. details.slack_channel_id é o canal. Consulte Configurar um canal.
slack_channel_enabled400O Claude está ativado no canal (enabled é resolvido como true), então ele não pode ser removido. Defina enabled como false primeiro. Consulte Remover um canal.

Novos códigos podem ser adicionados. Trate um código que você não reconhece da mesma forma que trata seu status. Um 404 sem error_code tem uma de duas causas. Ou algo que a solicitação nomeia não foi encontrado (um id no caminho, ou um canal ou workspace do Slack no corpo ou na consulta), ou todos os endpoints parecem inexistentes porque a solicitação omite o valor anthropic-beta ou a API não está habilitada para sua organização. Para distingui-las, liste seus workspaces com a mesma chave e os mesmos cabeçalhos: essa solicitação não nomeia nada, então retorna 404 apenas no segundo caso.

Eventos do Activity Feed

Toda alteração feita por meio desta API é registrada no Compliance API Activity Feed da sua organização, atribuída à chave de API como um api_actor que contém seu ID apikey_. Os eventos são os mesmos que o feed registra quando a mesma alteração é feita no claude.ai, de modo que uma única consulta encontra uma alteração independentemente da forma como ela foi feita.

EventoEmitido quando
ccr_agent_createdUm canal é configurado.
ccr_agent_updatedUma configuração muda em um canal ou workspace.
ccr_agent_deletedUm canal é removido. Seus destinos de Bundle vão junto e não emitem nenhum evento próprio.
ccr_agent_proxy_profile_boundUm Bundle é anexado.
ccr_agent_proxy_profile_unboundUm Bundle é desanexado.

Os eventos nomeiam um canal ou workspace por um identificador próprio do feed, agent_id (com o prefixo cagt_), que nenhuma resposta desta API contém, então você ainda não pode associar um evento ao id de um canal ou workspace. Os dois eventos de Bundle nomeiam o Bundle em profile_id e o canal ou workspace, pelo mesmo agent_id, em scope_id.

Um evento ccr_agent_updated lista o que mudou em updated_fields, usando os nomes do próprio feed:

ConfiguraçãoNome em updated_fields
enabledslackbot_version
instructionssystem_prompt_addendum
modeldefault_model
environment_iddefault_environment_id
guest_policyguest_policy

updated_fields também pode conter is_virtual, que não nomeia nenhuma configuração. Ele aparece ao lado dos nomes das configurações alteradas no evento de uma alteração por meio desta API que é a primeira coisa que alguém armazena no canal ou workspace: um canal que o primeiro uso do Claude configurou, ou que esta API configurou sem settings, ou um workspace em que o Claude nunca foi usado, e no qual ninguém ainda armazenou uma configuração ou anexou um Bundle, aqui ou no claude.ai. O model com que um canal de código começa não conta como armazenado. Anexar um Bundle registra apenas ccr_agent_proxy_profile_bound.

Leituras, requisições que não alteram nada e requisições recusadas antes que qualquer coisa seja armazenada não registram nada. Uma requisição de configuração que configura um canal e cujo settings é então recusado registra ccr_agent_created.

Veja também

Was this page helpful?