Claude Tag API
Kelola Claude Tag di Slack untuk organisasi Claude Enterprise Anda dari sistem Anda sendiri: baca dan ubah pengaturan pada channel, workspace, dan default Slack organisasi Anda, lihat pengaturan mana yang berlaku dan alasannya, serta lampirkan Access bundle.
Claude Tag adalah Claude yang bekerja sebagai rekan tim di Slack: seseorang menyebut Claude di sebuah channel dan Claude menjawab di thread. Claude Tag API memungkinkan Anda membaca dan mengubah, dari sistem Anda sendiri, pengaturan Claude Tag yang tanpa API ini diatur secara manual oleh pemilik organisasi di claude.ai > Organization settings > Claude Tag. Gunakan API ini untuk mengaktifkan Claude channel demi channel dari alur kerja persetujuan, menyimpan konfigurasi Anda dalam "version control" (kontrol versi), atau mengaudit apa yang berlaku di setiap channel.
Claude Tag adalah produk claude.ai. API ini mengelolanya untuk organisasi Claude Enterprise dan tidak ada hubungannya dengan workspace Claude Platform, penggunaan API, atau Claude Console.
Endpoint
API ini menyediakan 18 endpoint di lima sumber daya:
| Sumber daya | Endpoint |
|---|---|
| Channel Slack: menyiapkan channel, mencantumkan channel dari sebuah workspace atau menemukan satu channel berdasarkan ID Slack-nya, membaca satu channel, mengubah pengaturannya, melihat apa yang berlaku di dalamnya, menghapusnya | POST /v1/organizations/claude_tag/slack_channelsGET /v1/organizations/claude_tag/slack_channelsGET /v1/organizations/claude_tag/slack_channels/{id}POST /v1/organizations/claude_tag/slack_channels/{id}GET /v1/organizations/claude_tag/slack_channels/{id}/effectiveDELETE /v1/organizations/claude_tag/slack_channels/{id} |
| Workspace Slack: mencantumkan workspace yang terhubung atau menemukan satu workspace berdasarkan ID Slack-nya, membaca satu workspace, mengubah pengaturannya, melihat apa yang berlaku di dalamnya | GET /v1/organizations/claude_tag/slack_workspacesGET /v1/organizations/claude_tag/slack_workspaces/{id}POST /v1/organizations/claude_tag/slack_workspaces/{id}GET /v1/organizations/claude_tag/slack_workspaces/{id}/effective |
| Default Slack: membaca dan mengubah pengaturan yang berlaku untuk setiap workspace dan channel | GET /v1/organizations/claude_tag/slack_defaultsPOST /v1/organizations/claude_tag/slack_defaults |
| Bundle: mencantumkan Access bundle organisasi Anda, membaca satu Bundle (hanya-baca) | GET /v1/organizations/claude_tag/bundlesGET /v1/organizations/claude_tag/bundles/{bundle_id} |
| Target Bundle: mencantumkan di mana sebuah Bundle dilampirkan, melampirkannya ke channel atau workspace, membaca satu lampiran, melepaskannya | GET /v1/organizations/claude_tag/bundles/{bundle_id}/targetsPOST /v1/organizations/claude_tag/bundles/{bundle_id}/targetsGET /v1/organizations/claude_tag/bundles/{bundle_id}/targets/{target_id}DELETE /v1/organizations/claude_tag/bundles/{bundle_id}/targets/{target_id} |
Rilis ini mencakup Slack. Menghubungkan dan memutuskan koneksi workspace Slack, membuat dan mengedit Access bundle, batas pengeluaran, dan setiap pengaturan Claude Tag selain lima pengaturan di Pengaturan tetap berada di claude.ai.
Prasyarat
- Organisasi Anda harus menggunakan paket Claude Enterprise, dengan Claude Tag yang sudah disiapkan dan setidaknya satu workspace Slack yang terhubung.
- Pemilik utama Anda membuat kunci Admin API dengan scope
read:claude_tag, scopewrite:claude_tag, atau keduanya di claude.ai > Organization settings > API. Lihat Membuat kunci Admin API. - Setiap permintaan membawa tiga header:
x-api-key,anthropic-version: 2023-06-01, dananthropic-beta: claude-tag-2026-09-28.
SDK Python, TypeScript, C#, Go, Java, PHP, dan Ruby menyediakan endpoint ini di bawah client.beta.organization.claude_tag, dan CLI ant di bawah ant beta:organization:claude-tag; keduanya mengirimkan header anthropic-version dan anthropic-beta untuk Anda. Contoh di halaman ini menggunakan klien default setiap SDK, yang, seperti CLI, membaca kunci Admin API dari variabel lingkungan ANTHROPIC_API_KEY; contoh curl membaca kunci dari variabel yang sama dan mengirimkannya di header x-api-key. Ketika SDK atau CLI mengambil halaman tambahan untuk Anda, limit menetapkan ukuran halaman, bukan total (lihat Paginasi).
Kunci API adalah milik organisasi dan tetap berfungsi setelah orang yang membuatnya keluar. Jangan bagikan kunci tersebut atau memasukkannya ke kontrol sumber.
Mulai cepat
Cantumkan workspace Slack yang telah dihubungkan organisasi Anda ke Claude Tag:
client = anthropic.Anthropic()
workspaces = client.beta.organization.claude_tag.slack_workspaces.list()
# Secara otomatis mengambil halaman berikutnya sesuai kebutuhan.
for workspace in workspaces:
print(f"{workspace.id}: {workspace.slack.team_id}"){
"data": [
{
"type": "slack_workspace",
"id": "slws_011CZkZnWa7xPc3uJfZe5LgT",
"slack": {
"team_id": "T01ABCD2EFG"
},
"settings": {
"enabled": null,
"instructions": "Answer in English unless asked otherwise.",
"model": null,
"environment_id": null,
"guest_policy": null
},
"agent_id": "cagt_011CZkZrFy4aSg8uMkDt9PqW",
"created_at": "2026-09-02T17:04:11Z",
"updated_at": "2026-10-06T09:41:53Z"
}
],
"next_page": null
}Pengaturan yang bernilai null tidak diatur pada workspace ini, sehingga workspace mewarisinya. Lihat Pengaturan tersimpan dan efektif.
Scope
| Scope | Memberikan |
|---|---|
read:claude_tag | Setiap endpoint GET di halaman ini. |
write:claude_tag | Setiap endpoint POST dan DELETE di halaman ini. Scope ini tidak memberikan akses baca, meskipun respons terhadap perubahan berisi sumber daya yang diubah. |
Sebuah kunci dapat membawa kedua scope. Integrasi yang mencari sebuah channel lalu mengubahnya memerlukan keduanya. Tidak ada scope lain yang memberikan akses ke endpoint ini.
Kunci harus dimiliki oleh organisasi secara keseluruhan. Organisasi selalu merupakan organisasi pemilik kunci, dan tidak ada permintaan yang menyebutkan organisasi. Permintaan yang mengirimkan header anthropic-workspace-id mengembalikan 400, karena tidak ada apa pun di sini yang dimiliki oleh workspace Claude Platform.
Konsep utama
Nama di halaman ini dan di claude.ai
| API ini | claude.ai dan Slack |
|---|---|
| Workspace Slack | Workspace Slack (yang juga disebut team oleh Slack). Tidak terkait dengan workspace Claude Platform, yang ID-nya diawali dengan wrkspc_. |
| Default Slack | Default Slack access |
| Tingkat pengaturan | Sebuah scope: channel, workspace, atau default Slack |
| Bundle | Sebuah Access bundle |
enabled | Sakelar Enable Claude Tag in Slack |
instructions | Custom instructions |
model | Model |
environment_id | Environment |
guest_policy | How should Claude work in channels with guests: restrict adalah Restrict, channel_only adalah Channel only, dan allow adalah Full access |
Channel dan workspace yang sudah disiapkan
Sebuah channel atau workspace sudah disiapkan ketika Claude Tag menyimpan catatan pengaturan untuknya. Hanya channel atau workspace yang sudah disiapkan yang memiliki id, dan hanya itu yang dicantumkan: Slack, bukan API ini, yang menyimpan daftar lengkap channel sebuah workspace.
- Sebuah workspace disiapkan ketika pemilik organisasi menghubungkannya di claude.ai. Tidak ada endpoint yang menyiapkan atau menghapus workspace.
- Sebuah channel disiapkan di claude.ai, oleh penggunaan pertama Claude di dalamnya, atau dengan Menyiapkan channel.
- Default Slack disiapkan saat pertama kali seseorang menyiapkan Claude Tag: pemilik menghubungkan workspace Slack, atau anggota masuk ke atau pertama kali menggunakan Claude di Slack.
Organisasi Anda memiliki sebuah workspace selama koneksinya aktif, dan memiliki channel di dalamnya. Channel atau workspace yang tidak Anda miliki mengembalikan 404 yang sama dengan yang tidak ada.
ID
Anda mengenali sebuah channel dari ID yang ditampilkan Slack kepada Anda. Cari id-nya sekali dengan Menemukan channel berdasarkan ID Slack-nya, lalu simpan dan gunakan id tersebut.
| ID | Prefiks | Tempat kemunculan |
|---|---|---|
| Sumber daya channel Slack | slch_ | id pada channel; slack_channel_id di body permintaan dan respons |
| Sumber daya workspace Slack | slws_ | id pada workspace; slack_workspace_id di body permintaan dan respons |
| Bundle | capp_ | id pada Bundle; {bundle_id} di path |
| Target Bundle | btgt_ | id pada target Bundle; {target_id} di path |
| ID team milik Slack sendiri | T | slack.team_id; parameter kueri slack_team_id |
| ID channel milik Slack sendiri | C atau G | slack.channel_id; parameter kueri slack_channel_id |
Sebuah id tidak berubah selama channel atau workspace tersebut tetap disiapkan, apa pun yang Anda ubah padanya, dengan satu pengecualian yang dijelaskan di Mode hanya-baca. Channel atau workspace yang dihapus lalu disiapkan kembali memiliki id baru, dan id lama tetap mengembalikan 404. Ketika id yang tersimpan mengembalikan 404 tanpa error_code, dapatkan default Slack dengan kunci dan header yang sama. Permintaan tersebut tidak menyebutkan channel atau workspace, sehingga status apa pun selain 404 berarti id tersebut sudah tidak ada: temukan kembali channel atau workspace tersebut berdasarkan ID Slack-nya. 404 yang juga dikembalikan di sana tidak menyatakan apa pun tentang id tersebut: pertahankan nilai id Anda yang tersimpan dan lihat Respons error.
agent_id (diawali dengan cagt_) adalah cara Compliance API menamai channel atau workspace yang sama, baik sebagai pemilik sesi yang dijalankan Claude di sana maupun dalam event Activity Feed. ID ini bertahan selama id bertahan.
Pengaturan
Setiap tingkat pengaturan menyimpan lima pengaturan yang sama, semuanya opsional:
| Pengaturan | Tipe | Deskripsi |
|---|---|---|
enabled | boolean | Apakah Claude aktif. |
instructions | string | Panduan tetap yang dibaca Claude di setiap sesi. Paling banyak 8.192 karakter setelah spasi di awal dan akhir dipangkas. Teks kosong menghapus pengaturan ini. |
model | string | Model yang digunakan untuk memulai sesi baru: sebuah ID model yang dapat digunakan organisasi Anda dengan Claude Tag. Paling banyak 128 karakter. |
environment_id | string | Environment cloud tempat sesi berjalan, diawali dengan env_. Environment ini harus aktif dan dimiliki oleh organisasi Anda. |
guest_policy | object | Apa yang dilakukan Claude di sebuah channel selama ada tamu Slack di dalamnya, untuk semua orang di channel tersebut: {"type": "allow"} (Claude menjawab), {"type": "restrict"} (Claude tidak menjawab), atau {"type": "channel_only"} (Claude menjawab hanya dengan Bundle yang dilampirkan ke channel itu sendiri). Lihat Membatasi channel tamu untuk artinya di channel yang dibagikan melalui Slack Connect atau di seluruh Enterprise Grid. |
model dan environment_id diperiksa saat Anda menuliskannya dan tidak diperiksa lagi: jika model atau environment tersebut kemudian berubah, kedua tampilan tetap mengembalikan nilai yang tersimpan.
Jika pemilik organisasi telah menempatkan sebuah tingkat pengaturan pada pool runner self-hosted di claude.ai, environment_id-nya mengembalikan ID pool tersebut, yang diawali dengan ccpool_. API ini tidak dapat menetapkan pool runner, dan mengembalikan 400 untuk permintaan yang mengubah atau menghapus environment_id pada tingkat pengaturan yang menyimpan pool runner.
Pengaturan tersimpan dan efektif
Pengaturan ada di tiga tingkat: channel, workspace tempat channel berada, dan default Slack organisasi Anda. Setiap tingkat hanya menyimpan apa yang diatur padanya. API memberi Anda dua tampilan:
- Tampilan tersimpan (Mendapatkan channel, Mendapatkan workspace) berisi apa yang disimpan oleh channel atau workspace itu sendiri. Pengaturan yang tidak diatur di sana bernilai
null. Gunakan tampilan ini untuk membandingkan dengan konfigurasi yang Anda simpan di tempat lain. - Tampilan efektif (Mendapatkan pengaturan efektif channel, Mendapatkan pengaturan efektif workspace) berisi apa yang berlaku setelah setiap tingkat diperhitungkan, dan
sourcesmenyebutkan tingkat asal setiap nilai. Gunakan tampilan ini untuk mengaudit, atau untuk mengetahui mengapa Claude berperilaku seperti itu di satu channel.
Setiap pengaturan ditentukan secara terpisah:
| Pengaturan | Aturan | Ketika tidak ada tingkat yang mengaturnya |
|---|---|---|
enabled | Tingkat terdekat yang mengaturnya yang menentukan, sehingga true pada sebuah channel mengaktifkan Claude di sana bahkan ketika workspace-nya menyimpan false. | true |
instructions | Aditif. Teks dari setiap tingkat yang mengaturnya digabungkan, dari yang paling luas terlebih dahulu, dengan baris kosong di antaranya. | null |
model | Tingkat terdekat yang mengaturnya yang menentukan. | null: Claude menggunakan model default produk |
environment_id | Tingkat terdekat yang mengaturnya yang menentukan. | null |
guest_policy | Tingkat terdekat yang mengaturnya yang menentukan. | restrict di organisasi yang default Slack-nya sudah disiapkan |
Sebagai contoh, sebuah organisasi menyimpan instruksi pada default Slack-nya, menonaktifkan Claude pada sebuah workspace, dan menetapkan model pada satu channel di workspace tersebut. Tampilan efektif channel tersebut menunjukkan ketiga nilai dan asal masing-masing:
{
"type": "slack_channel_effective",
"id": "slch_011CZkZmRt4vNq8sHbYw2KdX",
"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_defaults" }],
"model": {
"type": "slack_channel",
"slack_channel_id": "slch_011CZkZmRt4vNq8sHbYw2KdX"
},
"environment_id": { "type": "default" },
"guest_policy": { "type": "default" }
}
}Sebuah sumber adalah salah satu dari:
type | Arti |
|---|---|
slack_channel | Channel, disebutkan dalam slack_channel_id. |
slack_workspace | Workspace, disebutkan dalam slack_workspace_id. |
slack_parent_channel | Induk dari sebuah code channel, disebutkan dalam slack_channel_id. Code channel adalah channel yang dimulai dari channel lain. Selama induknya adalah channel publik di workspace yang sama, induk tersebut berada di antara channel dan workspace serta hanya menyumbangkan instructions dan environment_id. |
slack_defaults | Default Slack organisasi Anda, yang tidak memiliki ID. |
default | Tidak ada tingkat yang menetapkan nilai, sehingga default bawaan yang berlaku. |
sources.instructions adalah daftar, dari yang paling luas terlebih dahulu, dari setiap tingkat yang menyumbangkan teks, dan kosong jika tidak ada. ID pada sebuah sumber dapat bernilai null di organisasi yang menjangkau channel melalui koneksi Slack Enterprise Grid, bukan melalui workspace channel itu sendiri.
Mengubah pengaturan
Ketiga endpoint pembaruan dan Menyiapkan channel menerima objek settings dengan aturan yang sama:
- Pengaturan yang tidak Anda sertakan tidak berubah.
{"settings": {"enabled": false}}menonaktifkan Claude dan membiarkan empat pengaturan lainnya apa adanya. - Pengaturan yang Anda kirim sebagai
nulldihapus, sehingga tingkat tersebut mewarisinya kembali. - Semua atau tidak sama sekali. Jika ada nilai dalam permintaan yang ditolak, tidak ada pengaturan dalam permintaan tersebut yang disimpan.
- Aman untuk diulang. Setiap perubahan membuat sumber daya berada dalam keadaan yang sama seperti setelah permintaan identik pertama, sehingga tidak ada endpoint yang menerima
Idempotency-Key. Permintaan yang tidak mengubah apa pun tidak menulis apa pun dan tidak mencatat event Activity Feed. - Penulisan terakhir yang menang. Tidak ada permintaan yang menerima prakondisi. Dua pemanggil yang masing-masing membaca sebuah sumber daya lalu mengubah pengaturan yang sama akan saling menimpa.
409hanya dikembalikan ketika perubahan lain tumpang tindih dengan permintaan Anda saat sedang berjalan; tidak ada bagian dari permintaan Anda yang disimpan, jadi baca kembali sumber daya tersebut dan kirim ulang perubahan jika masih diperlukan.
Perubahan pada guest_policy di sebuah channel dapat mengakhiri sesi yang sedang berjalan di channel tersebut. Sesi-sesi itu berakhir di latar belakang, dan respons tidak menunggunya.
Tingkat yang terkonfigurasi
Sebuah tingkat pengaturan terkonfigurasi setelah seseorang atau sebuah kunci mengubah pengaturan padanya atau melampirkan Bundle padanya. Tingkat tersebut tetap terkonfigurasi sejak saat itu, bahkan setelah setiap pengaturan dihapus dan setiap Bundle dilepaskan. Channel yang disiapkan oleh penggunaan pertama Claude, atau melalui API ini tanpa pengaturan apa pun, belum terkonfigurasi hingga perubahan pertamanya atau Bundle pertamanya. Hal ini penting di dua tempat: hanya channel yang terkonfigurasi yang dapat dihapus, dan hanya channel yang belum terkonfigurasi yang dapat memperoleh id baru (lihat Mode hanya-baca).
Mode hanya-baca
API / Terraform read-only mode adalah pengaturan yang diaktifkan dan dinonaktifkan oleh pemilik organisasi di pengaturan Claude Tag di claude.ai. Namanya menggambarkan claude.ai dan Slack: selama mode ini aktif, keduanya menolak perubahan oleh seseorang terhadap apa yang dikelola API ini, sehingga hanya kunci yang dapat melakukan perubahan tersebut. Mode ini tidak membuat API ini menjadi hanya-baca. Setiap endpoint di halaman ini merespons dengan cara yang sama baik mode aktif maupun nonaktif, dan tidak ada endpoint yang membaca atau mengubahnya.
Selama mode nonaktif, orang dan kunci mengubah pengaturan yang sama serta melampirkan dan melepaskan Bundle yang sama, dan setiap perubahan menggantikan apa yang tersimpan. Aktifkan mode ini jika pipeline Anda harus menjadi satu-satunya sumber perubahan.
Selama mode aktif, claude.ai dan Slack menolak:
- Mengubah salah satu dari lima pengaturan pada channel, workspace, atau default Slack.
- Menyiapkan channel, menghapus channel, atau memutuskan koneksi workspace di claude.ai.
- Melampirkan Bundle ke channel atau workspace, melepaskannya, atau menghapus Bundle yang terlampir pada salah satunya.
Beberapa hal tetap dapat dilakukan dalam kedua kondisi: pemilik masih dapat menghubungkan workspace baru, membuat dan mengedit Bundle, serta mengubah pengaturan Claude Tag yang tidak dikelola API ini. Penggunaan pertama Claude tetap menyiapkan channel, menghapus channel di Slack tetap menghapusnya dari Claude Tag, dan mencopot pemasangan aplikasi Slack Claude tetap memutuskan koneksi workspace tersebut.
Selama mode nonaktif, menyiapkan di claude.ai sebuah channel yang sudah disiapkan dan belum terkonfigurasi dapat menggantikan catatan channel tersebut. Channel tersebut kemudian memiliki id dan agent_id baru, dan id lama mengembalikan 404. id dari channel yang terkonfigurasi bertahan hingga channel tersebut dihapus.
Pesan langsung grup
Pesan langsung grup Slack memiliki ID dalam bentuk ID channel, sehingga penggunaan Claude di dalamnya menyiapkannya seperti channel: pesan tersebut memiliki id, dicantumkan, dan dapat dibaca. Menyiapkannya melalui API ini, mengubah pengaturan padanya, dan melampirkan Bundle padanya masing-masing mengembalikan 400. Melepaskan Bundle darinya diperbolehkan.
Contoh alur kerja
Aktifkan Claude hanya di channel yang disetujui
Setiap anggota dapat mengundang Claude ke channel publik. Untuk menjaga Claude tetap aktif hanya di tempat yang telah Anda setujui:
- Nonaktifkan Claude di semua tempat dengan menetapkan
enabledkefalsepada default Slack. - Ketika sistem persetujuan Anda menyetujui sebuah channel, siapkan channel tersebut dengan
"settings": {"enabled": true}. Permintaan ini menerima ID milik Slack sendiri dan mengembalikan channel tersebut baik sudah disiapkan maupun belum, sehingga aman untuk diulang. - Dalam proses yang sama, lampirkan Bundle yang telah disetujui untuk tim tersebut, sehingga sesi pertama channel sudah memiliki alat-alatnya.
Simpan konfigurasi dalam kontrol versi
- Gunakan ID yang ditampilkan Slack untuk setiap channel sebagai kunci konfigurasi Anda, dan temukan setiap channel berdasarkan ID tersebut.
- Bandingkan tampilan tersimpan dengan apa yang dideklarasikan repositori Anda. Tampilan efektif akan mencampurkan nilai yang diwarisi.
- Kirim hanya pengaturan yang berbeda, dan kirim
nulluntuk pengaturan yang tidak lagi dideklarasikan repositori Anda. - Minta pemilik organisasi untuk mengaktifkan mode hanya-baca, sehingga tidak ada yang mengubah pengaturan yang sama secara manual.
Audit apa yang berlaku di semua tempat
- Cantumkan workspace Anda, lalu cantumkan channel setiap workspace.
- Baca pengaturan efektif setiap channel dan tandai apa yang dilarang kebijakan Anda, seperti channel dengan
enabledbernilaitruetanpa persetujuan yang tercatat, atau denganguest_policybernilaiallow. - Cantumkan Bundle Anda, lalu target setiap Bundle, untuk melihat di mana akses ke sistem sensitif dilampirkan.
Channel Slack
Objek channel adalah tampilan tersimpan dari satu channel Slack:
| Field | Deskripsi |
|---|---|
type | slack_channel. |
id | Diawali dengan slch_. Lihat ID. |
slack | ID milik Slack sendiri: team_id untuk workspace tempat channel berada, dan channel_id untuk channel. |
settings | Apa yang disimpan oleh channel itu sendiri. Selalu ada, dengan kelima pengaturan; pengaturan yang tidak diatur bernilai null. |
agent_id | Diawali dengan cagt_. Lihat ID. |
created_at | Kapan channel disiapkan. |
updated_at | Kapan catatan Claude Tag tentang channel terakhir berubah. Nilai ini diperbarui pada setiap perubahan pengaturan, di sini, di claude.ai, atau di Slack, dan juga dapat diperbarui karena perubahan yang tidak ditunjukkan oleh respons apa pun di sini. Anggap nilai yang lebih baru sebagai alasan untuk membaca channel lagi, bukan sebagai bukti bahwa sebuah pengaturan berubah. Melampirkan atau melepaskan Bundle tidak dengan sendirinya memperbaruinya. |
id yang tidak memiliki prefiks slch_ mengembalikan 400. id yang memiliki prefiks tersebut tetapi tidak merujuk ke channel mana pun milik organisasi Anda mengembalikan 404.
Menyiapkan channel
POST /v1/organizations/claude_tag/slack_channels menyiapkan channel Slack dan mengembalikannya. slack.team_id dan slack.channel_id wajib diisi dan merupakan ID milik Slack sendiri. settings bersifat opsional dan mengikuti Mengubah pengaturan. Jika channel sudah disiapkan, permintaan mengembalikan channel yang ada dan menerapkan settings; responsnya 200 dalam kedua kasus. Memerlukan scope write:claude_tag.
client = anthropic.Anthropic()
channel = client.beta.organization.claude_tag.slack_channels.create(
slack={"team_id": "T01ABCD2EFG", "channel_id": "C05HJKL6MNP"},
settings={"instructions": "Answer in the language of the question."},
)
print(channel.id){
"type": "slack_channel",
"id": "slch_011CZkZmRt4vNq8sHbYw2KdX",
"slack": {
"team_id": "T01ABCD2EFG",
"channel_id": "C05HJKL6MNP"
},
"settings": {
"enabled": null,
"instructions": "Answer in the language of the question.",
"model": null,
"environment_id": null,
"guest_policy": null
},
"agent_id": "cagt_011CZkZsHz6bTh2vNmEu4QrX",
"created_at": "2026-10-19T16:20:05Z",
"updated_at": "2026-10-19T16:20:05Z"
}Sebelum sebuah channel disiapkan, aplikasi Slack Claude mengonfirmasi dengan Slack bahwa channel tersebut berada di workspace, tidak diarsipkan, dan terlihat oleh aplikasi. Channel yang gagal dalam pemeriksaan tersebut mengembalikan 404, begitu pula workspace yang tidak memasang aplikasi Slack Claude.
Menyiapkan channel dan menerapkan settings adalah dua langkah. Ketika langkah pertama berhasil dan langkah kedua ditolak, responsnya adalah penolakan tersebut dan channel tetap disiapkan tanpa ada yang tersimpan. Penolakan tersebut membawa error_code yang diawali dengan slack_channel_set_up_ dan id channel baru di error.details.slack_channel_id (lihat Respons error). Perbaiki settings dan kirimkan dalam pembaruan ke id tersebut, atau kirim ulang permintaan penyiapan.
Mencantumkan channel
GET /v1/organizations/claude_tag/slack_channels mencantumkan channel yang sudah disiapkan dari satu workspace, yang terbaru lebih dulu berdasarkan created_at. slack_team_id wajib diisi dan merupakan ID milik Slack sendiri untuk workspace tersebut. Sebuah halaman dapat berisi kurang dari limit channel, atau tidak ada sama sekali, sementara next_page masih terisi, jadi terus minta halaman hingga next_page bernilai null (lihat Paginasi). Memerlukan scope read:claude_tag.
client = anthropic.Anthropic()
channels = client.beta.organization.claude_tag.slack_channels.list(
slack_team_id="T01ABCD2EFG"
)
# Secara otomatis mengambil halaman berikutnya sesuai kebutuhan.
for channel in channels:
print(f"{channel.id}: {channel.slack.channel_id}")Responsnya adalah {"data": [...], "next_page": ...}, dengan setiap item berupa objek channel. slack_team_id yang merujuk ke workspace yang tidak dimiliki organisasi Anda mengembalikan 404.
Menemukan channel berdasarkan ID Slack-nya
Tambahkan slack_channel_id, ID milik Slack sendiri untuk channel tersebut, untuk mencari satu channel. data berisi channel tersebut, atau kosong jika channel belum disiapkan. Pencarian mengabaikan limit dan page, dan next_page-nya bernilai null. Beginilah cara Anda menemukan id sebuah channel.
client = anthropic.Anthropic()
page = client.beta.organization.claude_tag.slack_channels.list(
slack_team_id="T01ABCD2EFG",
slack_channel_id="C05HJKL6MNP",
)
for channel in page.data:
print(channel.id)Mengirimkan ID slch_ sebagai slack_channel_id mengembalikan 400.
Mendapatkan channel
GET /v1/organizations/claude_tag/slack_channels/{id} mengembalikan objek channel. Memerlukan scope read:claude_tag.
client = anthropic.Anthropic()
channel = client.beta.organization.claude_tag.slack_channels.retrieve(
"slch_011CZkZmRt4vNq8sHbYw2KdX"
)
print(channel.settings.enabled)Memperbarui channel
POST /v1/organizations/claude_tag/slack_channels/{id} mengubah pengaturan channel dan mengembalikan objek channel. settings wajib diisi dan mengikuti Mengubah pengaturan. Memerlukan scope write:claude_tag.
Nonaktifkan Claude di satu channel dan biarkan pengaturan lainnya apa adanya:
client = anthropic.Anthropic()
channel = client.beta.organization.claude_tag.slack_channels.update(
"slch_011CZkZmRt4vNq8sHbYw2KdX",
settings={"enabled": False},
)
print(channel.settings.enabled)Hapus instruksi channel, sehingga hanya instruksi yang diwarisi yang berlaku:
client = anthropic.Anthropic()
channel = client.beta.organization.claude_tag.slack_channels.update(
"slch_011CZkZmRt4vNq8sHbYw2KdX",
settings={"instructions": None},
)
print(channel.settings.instructions)Mendapatkan pengaturan efektif channel
GET /v1/organizations/claude_tag/slack_channels/{id}/effective mengembalikan apa yang berlaku di channel tersebut dan dari mana setiap nilai berasal. Pengaturan tersimpan dan efektif menunjukkan respons lengkapnya. Dalam tampilan ini, enabled dan guest_policy tidak pernah bernilai null. Tampilan ini ditentukan pada setiap pembacaan, sehingga tidak memiliki created_at atau updated_at. Jika suatu tingkat tidak dapat dibaca, permintaan gagal dengan 503 alih-alih menentukannya tanpa tingkat tersebut. Memerlukan scope read:claude_tag.
client = anthropic.Anthropic()
effective = client.beta.organization.claude_tag.slack_channels.effective.retrieve(
"slch_011CZkZmRt4vNq8sHbYw2KdX"
)
print(effective.settings.instructions)Menghapus channel
DELETE /v1/organizations/claude_tag/slack_channels/{id} menghapus sebuah channel dari Claude Tag. Ini adalah penghapusan yang sama dengan yang dilakukan pemilik organisasi di claude.ai, dengan efek yang sama. Ini tidak menghapus, mengarsipkan, atau mengubah channel di Slack, maupun pesan apa pun di dalamnya. Memerlukan scope write:claude_tag.
client = anthropic.Anthropic()
deleted_channel = client.beta.organization.claude_tag.slack_channels.delete(
"slch_011CZkZmRt4vNq8sHbYw2KdX"
)
print(deleted_channel.id){
"type": "slack_channel_deleted",
"id": "slch_011CZkZmRt4vNq8sHbYw2KdX"
}id tersebut mengembalikan 404 segera setelah permintaan selesai, dan sisanya dihapus di latar belakang. Penghapusan berulang mengembalikan 404.
Menghapus sebuah channel tidak menghentikan Claude di dalamnya. Claude tetap menjawab berdasarkan apa yang diwarisi channel tersebut, tanpa memori tentang channel itu, dan penggunaan berikutnya dapat menyiapkan channel itu lagi dengan id baru.
- Untuk menghentikan Claude menjawab di sebuah channel, atur
enabledkefalsepada channel tersebut sebagai gantinya. - Agar sebuah channel tidak menyimpan apa pun namun tetap mempertahankan sesi dan memorinya, hapus setiap pengaturan dan lepaskan setiap Bundle sebagai gantinya.
Dua jenis channel tidak dapat dihapus di sini dan mengembalikan 400: channel yang tidak terkonfigurasi (error_code: "slack_channel_not_configured"), dan channel yang menyimpan konfigurasi yang tidak dikelola API ini, seperti pool runner atau pengaturan yang hanya dimiliki claude.ai. Pemilik organisasi menghapus jenis kedua di claude.ai.
Workspace Slack
Objek workspace adalah tampilan tersimpan dari satu workspace Slack. Objek ini memiliki field yang sama dengan objek channel, kecuali bahwa type adalah slack_workspace, id diawali dengan slws_, dan slack hanya berisi team_id. Respons Mulai cepat menunjukkan contoh lengkapnya.
id yang tidak memiliki prefiks slws_ mengembalikan 400. id yang memiliki prefiks tersebut tetapi tidak merujuk ke workspace mana pun milik organisasi Anda mengembalikan 404.
Mencantumkan workspace
GET /v1/organizations/claude_tag/slack_workspaces mencantumkan workspace yang sudah disiapkan dan dimiliki organisasi Anda, yang terbaru lebih dulu berdasarkan created_at. Mulai cepat menunjukkan permintaan dan responsnya. Untuk menemukan satu workspace berdasarkan ID milik Slack sendiri, tambahkan slack_team_id: data berisi workspace tersebut, atau kosong jika workspace itu belum disiapkan, dan workspace yang tidak dimiliki organisasi Anda mengembalikan 404. Memerlukan scope read:claude_tag.
Mendapatkan workspace
GET /v1/organizations/claude_tag/slack_workspaces/{id} mengembalikan objek workspace. Memerlukan scope read:claude_tag.
client = anthropic.Anthropic()
workspace = client.beta.organization.claude_tag.slack_workspaces.retrieve(
"slws_011CZkZnWa7xPc3uJfZe5LgT"
)
print(workspace.settings.instructions)Memperbarui workspace
POST /v1/organizations/claude_tag/slack_workspaces/{id} mengubah pengaturan workspace dan mengembalikan objek workspace. settings wajib diisi dan mengikuti Mengubah pengaturan. Apa yang Anda atur di sini berlaku di setiap channel dalam workspace yang tidak menetapkan nilainya sendiri. Memerlukan scope 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)Mendapatkan pengaturan efektif workspace
GET /v1/organizations/claude_tag/slack_workspaces/{id}/effective mengembalikan apa yang berlaku di workspace tersebut, yang ditentukan dari workspace dan default Slack, dalam bentuk yang ditunjukkan oleh Pengaturan tersimpan dan efektif, dengan type diatur ke slack_workspace_effective. Memerlukan scope read:claude_tag.
client = anthropic.Anthropic()
effective = client.beta.organization.claude_tag.slack_workspaces.effective.retrieve(
"slws_011CZkZnWa7xPc3uJfZe5LgT"
)
print(effective.settings.enabled)Default Slack
Organisasi Anda memiliki tepat satu objek default Slack. Objek ini berlaku untuk setiap workspace dan channel, tidak memiliki id, dan tidak memiliki tampilan efektif, karena tidak ada tingkat yang lebih luas.
| Field | Deskripsi |
|---|---|
type | slack_defaults. |
settings | Apa yang disimpan oleh default, seperti pada channel. |
agent_id | Diawali dengan cagt_. null hingga default Slack disiapkan. |
Mendapatkan default Slack
GET /v1/organizations/claude_tag/slack_defaults mengembalikan objek tersebut. Organisasi yang default Slack-nya belum disiapkan mendapatkan 200 dengan setiap pengaturan dan agent_id bernilai null. Memerlukan scope read:claude_tag.
client = anthropic.Anthropic()
defaults = client.beta.organization.claude_tag.slack_defaults.retrieve()
print(defaults.settings.guest_policy)Memperbarui default Slack
POST /v1/organizations/claude_tag/slack_defaults mengubah default dan mengembalikan objek tersebut. settings wajib diisi dan mengikuti Mengubah pengaturan. Permintaan yang menetapkan suatu nilai saat default Slack belum disiapkan mengembalikan 400. Memerlukan scope write:claude_tag.
client = anthropic.Anthropic()
defaults = client.beta.organization.claude_tag.slack_defaults.update(
settings={
"instructions": "Keep replies under 200 words.",
"environment_id": "env_011CZkZqDx2zRf5tLjCs7NpV",
},
)
print(defaults.settings.environment_id){
"type": "slack_defaults",
"settings": {
"enabled": null,
"instructions": "Keep replies under 200 words.",
"model": null,
"environment_id": "env_011CZkZqDx2zRf5tLjCs7NpV",
"guest_policy": null
},
"agent_id": "cagt_011CZkZtKa8cUj4wPnFv6RsY"
}Bundle
Bundle adalah apa yang disebut claude.ai sebagai Access bundle: sekumpulan akses bernama, seperti konektor, repositori, dan kredensial, yang dapat digunakan Claude di sebuah channel atau workspace. Pemilik organisasi membuat, mengedit, dan menghapus Bundle di claude.ai. API ini mencantumkan dan melampirkannya. API ini mengembalikan nama dan deskripsi Bundle dan tidak pernah mengembalikan apa yang diberikan oleh Bundle tersebut.
| Field | Deskripsi |
|---|---|
type | bundle. |
id | Diawali dengan capp_. |
display_name | Nama Bundle. |
description | Kegunaan Bundle. null jika tidak ada. |
created_at, updated_at | Kapan Bundle dibuat dan terakhir diubah. |
bundle_id yang tidak memiliki prefiks capp_ mengembalikan 400. bundle_id yang memiliki prefiks tersebut tetapi tidak ada atau milik organisasi lain mengembalikan 404, apa pun isi permintaan lainnya. Bundle yang dikelola Claude Tag untuk dirinya sendiri tidak dicantumkan dan mengembalikan 404.
Mencantumkan Bundle
GET /v1/organizations/claude_tag/bundles mencantumkan Bundle organisasi Anda, yang terbaru lebih dulu berdasarkan created_at. Memerlukan scope read:claude_tag.
client = anthropic.Anthropic()
bundles = client.beta.organization.claude_tag.bundles.list()
# Secara otomatis mengambil halaman berikutnya sesuai kebutuhan.
for bundle in bundles:
print(f"{bundle.id}: {bundle.display_name}"){
"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
}Mendapatkan Bundle
GET /v1/organizations/claude_tag/bundles/{bundle_id} mengembalikan objek Bundle. Memerlukan scope read:claude_tag.
client = anthropic.Anthropic()
bundle = client.beta.organization.claude_tag.bundles.retrieve(
"capp_011CZkZjLP1cWxj5EtMmdgbq"
)
print(bundle.display_name)Target Bundle
Target Bundle adalah catatan dari satu Bundle yang dilampirkan ke satu channel atau satu workspace. Bundle yang dilampirkan ke sebuah workspace dapat digunakan di workspace tersebut dan di setiap channel di dalamnya. Bundle yang dilampirkan ke sebuah channel hanya dapat digunakan di channel tersebut.
| Field | Deskripsi |
|---|---|
type | slack_channel atau slack_workspace. |
id | Diawali dengan btgt_. Ini adalah {target_id} dalam path, dan tidak pernah merupakan id milik channel atau workspace itu sendiri. |
slack_channel_id | Pada target slack_channel: id channel, diawali dengan slch_. |
slack_workspace_id | Pada target slack_workspace: id workspace, diawali dengan slws_. |
created_at | Kapan Bundle dilampirkan. |
Sebuah Bundle dilampirkan ke sebuah channel atau workspace paling banyak satu kali, dan pasangan yang sama selalu memiliki id yang sama, juga setelah dilepaskan dan dilampirkan kembali. id bersifat opaque: dapatkan dari respons pelampiran atau dari daftar. Target Bundle tidak menyimpan id Bundle-nya, yang juga diperlukan oleh path-nya, jadi simpan keduanya bersama-sama.
Bundle pertama yang dilampirkan ke sebuah channel atau workspace membuatnya terkonfigurasi. Melampirkan atau melepaskan tidak mengubah pengaturan tersimpan apa pun. Sesi yang sedang berjalan di channel atau workspace tersebut diberi tahu bahwa aksesnya telah berubah.
Bundle yang dilampirkan claude.ai sebagai bagian dari penyiapan on-call dicantumkan dan dapat dibaca, tetapi tidak dapat dilampirkan atau dilepaskan di sini, dan tidak ada yang dapat dilampirkan ke atau dilepaskan dari channel atau workspace yang dikelola oleh penyiapan on-call. Setiap permintaan tersebut mengembalikan 400.
Mencantumkan target Bundle
GET /v1/organizations/claude_tag/bundles/{bundle_id}/targets mencantumkan channel dan workspace tempat Bundle dilampirkan, yang terbaru lebih dulu berdasarkan created_at. Memerlukan scope read:claude_tag.
client = anthropic.Anthropic()
targets = client.beta.organization.claude_tag.bundles.targets.list(
"capp_011CZkZjLP1cWxj5EtMmdgbq"
)
# Secara otomatis mengambil halaman berikutnya sesuai kebutuhan.
for target in targets:
print(f"{target.id}: {target.type}"){
"data": [
{
"type": "slack_channel",
"id": "btgt_011CZkZpBv9yQd6wKhAr8MnU",
"slack_channel_id": "slch_011CZkZmRt4vNq8sHbYw2KdX",
"created_at": "2026-10-19T16:21:44Z"
},
{
"type": "slack_workspace",
"id": "btgt_011CZkZuMc3dVk7xQpGw9StZ",
"slack_workspace_id": "slws_011CZkZnWa7xPc3uJfZe5LgT",
"created_at": "2026-09-12T08:17:02Z"
}
],
"next_page": null
}Hanya lampiran ke channel dan workspace yang dicantumkan. Bundle yang dilampirkan di claude.ai ke hal lain, seperti Default Slack access, tidak memiliki target Bundle untuk itu, begitu pula aturan yang menerapkan sebuah Bundle di banyak channel sekaligus. Jadi, Bundle yang dapat digunakan Claude di sebuah channel bisa lebih banyak daripada target yang menyebutkannya. Tidak ada endpoint yang mencantumkan Bundle yang dilampirkan ke satu channel atau workspace.
Melampirkan Bundle
POST /v1/organizations/claude_tag/bundles/{bundle_id}/targets melampirkan Bundle dan mengembalikan target Bundle. Body menyebutkan type dan id yang sesuai. Channel atau workspace harus sudah disiapkan: melampirkan tidak pernah menyiapkan sebuah channel. Melampirkan pasangan yang sudah dilampirkan mengembalikan 200 dengan target Bundle yang sudah ada. Memerlukan scope write:claude_tag.
Lampirkan Bundle ke sebuah channel:
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){
"type": "slack_channel",
"id": "btgt_011CZkZpBv9yQd6wKhAr8MnU",
"slack_channel_id": "slch_011CZkZmRt4vNq8sHbYw2KdX",
"created_at": "2026-10-19T16:21:44Z"
}Lampirkan Bundle ke sebuah 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)Lampiran ke sebuah channel memiliki kondisi yang menentukan kapan lampiran itu berlaku, seperti hanya selama tidak ada tamu Slack di channel tersebut. Kondisi diatur di claude.ai dan tidak dikembalikan di sini. Melampirkan melalui API ini menggunakan kondisi default, dan melampirkan pasangan yang sudah dilampirkan tidak mengubah kondisinya.
Mendapatkan target Bundle
GET /v1/organizations/claude_tag/bundles/{bundle_id}/targets/{target_id} mengembalikan target Bundle. target_id yang tidak memiliki prefiks btgt_ mengembalikan 400. target_id yang milik Bundle lain, telah dilepaskan, atau merujuk ke channel atau workspace yang tidak lagi disiapkan mengembalikan 404. Memerlukan scope read:claude_tag.
client = anthropic.Anthropic()
target = client.beta.organization.claude_tag.bundles.targets.retrieve(
"btgt_011CZkZpBv9yQd6wKhAr8MnU",
bundle_id="capp_011CZkZjLP1cWxj5EtMmdgbq",
)
print(target.type)Melepaskan Bundle
DELETE /v1/organizations/claude_tag/bundles/{bundle_id}/targets/{target_id} melepaskan Bundle. Pelepasan berulang mengembalikan 404. Memerlukan scope write:claude_tag.
client = anthropic.Anthropic()
deleted_target = client.beta.organization.claude_tag.bundles.targets.delete(
"btgt_011CZkZpBv9yQd6wKhAr8MnU",
bundle_id="capp_011CZkZjLP1cWxj5EtMmdgbq",
)
print(deleted_target.id){
"type": "bundle_target_deleted",
"id": "btgt_011CZkZpBv9yQd6wKhAr8MnU"
}Nilai yang tidak dikenali
guest_policy.type, type dari sebuah sumber, type dari sebuah target Bundle, dan kode error dapat memperoleh nilai baru kapan saja. Perlakukan nilai yang tidak Anda kenali seperti string tak dikenal lainnya alih-alih menggagalkan proses.
Pembatasan laju
Permintaan dibatasi per organisasi, dalam dua anggaran yang digunakan bersama oleh semua kunci organisasi Anda dan terpisah dari batas Admin API lainnya milik organisasi Anda. Setiap anggaran mengizinkan "burst" (lonjakan) lalu terisi ulang dengan laju tetap:
| Anggaran | Permintaan | Lonjakan | Pengisian ulang |
|---|---|---|---|
| Pembacaan | Setiap GET | 120 | 2 per detik |
| Perubahan | Setiap POST dan DELETE | 60 | 1 per detik |
Permintaan yang melebihi anggaran mengembalikan 429 Too Many Requests dengan header retry-after. Respons menyertakan header anthropic-ratelimit-requests-limit, anthropic-ratelimit-requests-remaining, dan anthropic-ratelimit-requests-reset untuk anggaran yang digunakan oleh permintaan tersebut.
Paginasi
Endpoint daftar menggunakan cursor opaque. Permintaan pertama mengembalikan hingga limit baris ditambah cursor next_page; teruskan cursor tersebut tanpa diubah sebagai parameter page pada permintaan berikutnya, dan ulangi hingga next_page bernilai null. Perlakukan string cursor sebagai opaque: jangan mengurai, memodifikasi, atau membuatnya sendiri. Mencantumkan channel dapat mengembalikan halaman dengan channel yang lebih sedikit dari limit, atau tidak ada sama sekali, sementara next_page masih terisi, jadi terus minta halaman hingga next_page bernilai null. Iterator daftar pada SDK Python, TypeScript, C#, Go, Java, dan Ruby serta CLI (kecuali dengan --format raw) melakukannya untuk Anda. Di PHP dan curl, minta setiap halaman sendiri dan teruskan next_page-nya sebagai page.
limit secara default bernilai 20, dengan minimum 1 dan maksimum 100. Setiap daftar diurutkan dari yang terbaru berdasarkan created_at, dan tidak menerima urutan lain.
Respons error
Respons error mengikuti bentuk standar yang didokumentasikan di Error. Sertakan request_id dari body respons saat menghubungi dukungan.
| Status | Arti |
|---|---|
| 400 | Input tidak valid, atau operasi tidak berlaku untuk channel, workspace, atau Bundle ini (lihat bagian masing-masing endpoint). |
| 401 | Header x-api-key tidak ada, atau kunci tidak dikenali. |
| 403 | Kunci bukan kunci ber-scope tingkat organisasi, tidak memiliki scope yang diperlukan, atau organisasi Anda tidak dapat melakukan perubahan ini. |
| 404 | Sumber daya tidak ditemukan, atau bukan milik organisasi Anda. Juga dikembalikan ketika permintaan tidak menyertakan nilai anthropic-beta, atau API tidak diaktifkan untuk organisasi Anda, sehingga endpoint tampak seolah-olah tidak ada. |
| 409 | Sesuatu yang lain mengubah atau menghapus sumber daya saat permintaan berjalan. Tidak ada yang disimpan. Baca lagi dan kirim ulang perubahan jika masih diperlukan. |
| 429 | Batas laju terlampaui. Lihat Pembatasan laju. |
| 500 | Error internal. |
| 503 | Sementara. Pada sebuah perubahan, ini tidak menyatakan apakah perubahan tersebut disimpan. Setiap perubahan aman untuk diulang, jadi kirim ulang permintaan tanpa diubah. |
Ketika satu status memiliki beberapa penyebab yang akan Anda tangani secara berbeda, error juga membawa 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_code | Status | Arti dan apa yang harus dilakukan |
|---|---|---|
organization_level_scoped_api_key_required | 403 | Kredensial bukan kunci Admin API ber-scope yang dimiliki organisasi secara keseluruhan. Mintalah kunci seperti itu kepada pemilik utama Anda. |
api_key_scope_missing | 403 | Kunci tidak memiliki read:claude_tag atau write:claude_tag, mana pun yang diperlukan endpoint. |
workspace_selection_not_accepted | 400 | Permintaan mengirim header anthropic-workspace-id. Hapus header tersebut. |
claude_tag_writes_not_enabled | 403 | Organisasi Anda dapat membaca melalui API ini tetapi tidak diaktifkan untuk perubahan. |
compliance_configuration_restricted | 403 | Organisasi Anda memiliki konfigurasi kepatuhan yang membuat Claude Tag tidak menyimpan hal baru apa pun, seperti zero data retention. Menyiapkan channel, memperbarui pengaturan (bahkan untuk menghapusnya), dan melampirkan Bundle ditolak. Melepaskan Bundle dan menghapus channel tidak ditolak. |
environment_not_found | 404 | environment_id tidak merujuk ke environment mana pun yang dapat digunakan organisasi Anda di sini. id dalam path tidak bermasalah. |
environment_archived | 400 | environment_id merujuk ke environment yang diarsipkan. |
slack_channel_set_up_settings_refused | 400 | Permintaan menyiapkan channel, lalu settings ditolak. details.slack_channel_id adalah channel tersebut. Lihat Menyiapkan channel. |
slack_channel_set_up_environment_not_found | 404 | Permintaan menyiapkan channel, lalu environment_id tidak ditemukan. details.slack_channel_id adalah channel tersebut. |
slack_channel_set_up_settings_conflict | 409 | Permintaan menyiapkan channel, lalu perubahan lain tumpang tindih dengan settings. Tidak ada bagian dari settings yang disimpan. details.slack_channel_id adalah channel tersebut. |
slack_channel_not_configured | 400 | Channel tidak terkonfigurasi, sehingga tidak dapat dihapus. |
Kode baru dapat ditambahkan. Perlakukan kode yang tidak Anda kenali sebagaimana Anda memperlakukan statusnya. 404 tanpa error_code memiliki salah satu dari dua penyebab. Entah sesuatu yang disebutkan permintaan tidak ditemukan (sebuah id di path, atau channel atau workspace Slack di body atau kueri), atau setiap endpoint tampak seolah-olah tidak ada karena permintaan tidak menyertakan nilai anthropic-beta atau API tidak diaktifkan untuk organisasi Anda. Untuk membedakannya, dapatkan default Slack dengan kunci dan header yang sama: permintaan tersebut tidak menyebutkan apa pun, sehingga hanya mengembalikan 404 pada kasus kedua.
Event Activity Feed
Setiap perubahan melalui API ini dicatat di Compliance API Activity Feed organisasi Anda, diatribusikan ke kunci API sebagai api_actor yang membawa ID apikey_-nya. Event tersebut sama dengan yang dicatat oleh feed ketika perubahan yang sama dilakukan di claude.ai, sehingga satu kueri dapat menemukan suatu perubahan dengan cara apa pun perubahan itu dilakukan.
| Event | Dipancarkan ketika |
|---|---|
ccr_agent_created | Sebuah channel disiapkan. |
ccr_agent_updated | Sebuah pengaturan berubah pada channel, workspace, atau default Slack, atau suatu tingkat menjadi terkonfigurasi. |
ccr_agent_deleted | Sebuah channel dihapus. Target Bundle-nya ikut terhapus dan tidak memancarkan event sendiri. |
ccr_agent_proxy_profile_bound | Sebuah Bundle dilampirkan. |
ccr_agent_proxy_profile_unbound | Sebuah Bundle dilepaskan. |
Event tersebut menyebut channel atau workspace berdasarkan agent_id-nya, bukan berdasarkan id-nya. Kedua event Bundle menyebut Bundle di profile_id dan channel atau workspace di scope_id.
Event ccr_agent_updated mencantumkan apa yang berubah di updated_fields, menggunakan nama-nama milik feed itu sendiri:
| Pengaturan | Nama di updated_fields |
|---|---|
enabled | slackbot_version |
instructions | system_prompt_addendum |
model | default_model |
environment_id | default_environment_id |
guest_policy | guest_policy |
| (tingkat menjadi terkonfigurasi) | is_virtual |
Pembacaan, permintaan yang tidak mengubah apa pun, dan permintaan yang ditolak sebelum apa pun disimpan tidak mencatat apa pun. Permintaan penyiapan yang menyiapkan sebuah channel dan yang settings-nya kemudian ditolak akan mencatat ccr_agent_created.
Lihat juga
Tempat pemilik utama Anda membuat kunci dengan scope tertentu.
Apa itu Claude Tag, cara menyiapkannya, dan apa fungsi setiap pengaturan di Slack.
Jejak audit dari setiap perubahan yang dilakukan di sini dan di claude.ai.
Kelola plugin di organisasi Claude Enterprise Anda.
Was this page helpful?