Die Endpunkte auf dieser Seite rufen claude.ai-Inhalte ab und löschen sie und sind nur für Claude Enterprise-Organisationen verfügbar, die Self-Service-Zugriff auf die Compliance API haben. Siehe Compliance API einrichten.
Erforderlicher Scope: read:compliance_user_data auf dem Compliance Access Key. Die Lösch-Endpunkte erfordern zusätzlich delete:compliance_user_data.
Voraussetzung: Keine für das organisationsweite Auflisten von Chats. Um die Chat-Liste auf bestimmte Benutzer zu filtern, benötigst du Benutzer-IDs aus Organisationsbenutzer auflisten. Die anderen Endpunkte auf dieser Seite nehmen Ressourcen-IDs direkt entgegen.
Die Endpunkte auf dieser Seite stellen claude.ai-Chat-Inhalte, Datei-Uploads, Projekte und Projektanhänge für Compliance-Prüfer bereit. Sie unterstützen eDiscovery-Exporte (elektronische Beweissicherung), die Durchsetzung von „data loss prevention" (Schutz vor Datenverlust), oder DLP, und Reaktionen auf Kontolöschungen. Inhalte werden so lange aufbewahrt, wie es die Aufbewahrungsrichtlinie deiner Organisation erlaubt. Chats, die ein Benutzer in claude.ai soft-gelöscht hat, bleiben über die Compliance API mit befülltem deleted_at sichtbar; Chats, die hart gelöscht wurden (über die Compliance API selbst oder nach Ablauf des Aufbewahrungsfensters der Organisation), sind nicht abrufbar.
Beide Scopes werden nur auf Compliance Access Keys (sk-ant-api01-...) gewährt, die in claude.ai erstellt wurden; siehe Compliance API einrichten, um einen bereitzustellen. Der Scope read:compliance_user_data deckt das Abrufen ab; delete:compliance_user_data ist nur für die Lösch-Endpunkte erforderlich. Die Chat-, Datei-, Projekt- und Anhang-Endpunkte sind nicht für Admin-API-Keys (sk-ant-admin01-...) verfügbar; Aufrufe, die mit einem Admin-API-Key authentifiziert sind, geben 403 Forbidden zurück.
Die Endpunkte auf dieser Seite paginieren auf zwei Arten; siehe Ergebnisse paginieren für die vollständige Referenz. Jeder Abschnitt gibt an, welches Schema gilt.
Verwende Chats auflisten, um Chat-Metadaten seitenweise durchzugehen, und dann Chat-Nachrichten abrufen, um den vollständigen Nachrichteninhalt eines Chats abzurufen.
Der Chat-Listen-Endpunkt verwendet standardmäßig den organisationsweiten Geltungsbereich: Lass user_ids[] weg, um jeden Chat unter deiner übergeordneten Organisation einzuschließen. Füge order_by=updated_at hinzu, um nach dem Zeitpunkt der letzten Aktualisierung zu sortieren. Diese Kombination ist der empfohlene Weg, um Chats zu exportieren und einen Export aktuell zu halten, weil eine einzige paginierte Schleife sowohl neue als auch geänderte Chats für jeden Benutzer erfasst, ohne zuerst Benutzer aufzählen zu müssen. Die folgende Anfrage listet Chats auf, die seit einem bestimmten Datum aktualisiert wurden.
curl --fail-with-body -sS -G \
"https://api.anthropic.com/v1/compliance/apps/chats" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
--data-urlencode "order_by=updated_at" \
--data-urlencode "updated_at.gte=2025-06-01T00:00:00Z" \
--data-urlencode "limit=100"{
"data": [
{
"id": "claude_chat_01H5CWunD7RpVJ5bHa8RCkja",
"name": "Product Requirements Discussion",
"created_at": "2026-04-10T08:09:10Z",
"updated_at": "2026-04-10T09:10:11Z",
"deleted_at": null,
"href": "https://claude.ai/chat/abcdef01-2345-6789-abcd-ef0123456789",
"model": "claude-opus-5",
"organization_uuid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
"project_id": "claude_proj_01KGp4eZNug9ri4kE35RSppq",
"user": {
"id": "user_01XyDMpzjS89pFZXqSFUBDr6",
"email_address": "[email protected]"
}
}
],
"has_more": true,
"first_id": "eyJrIjogInVwZGF0ZWRfYXQiLCAidCI6ICIyMDI2LTA0LTEwVDA5OjEwOjExKzAwOjAwIiwgImlkIjogImFiY2RlZjAxLS4uLiJ9",
"last_id": "eyJrIjogInVwZGF0ZWRfYXQiLCAidCI6ICIyMDI2LTA0LTEwVDA5OjEwOjExKzAwOjAwIiwgImlkIjogImFiY2RlZjAxLS4uLiJ9"
}Die Ergebnisse werden aufsteigend nach dem order_by-Feld sortiert, die ältesten zuerst, wobei Gleichstände durch id aufgelöst werden. Die Paginierung verwendet die standardmäßigen Cursor-Felder first_id/last_id/has_more, die in Ergebnisse paginieren beschrieben sind. Um vorwärts in Richtung neuerer Chats zu gehen, übergib die last_id der Antwort als after_id in der nächsten Anfrage.
Dieses Vorwärtsgehen ist auch die Art und Weise, wie du einen Export über mehrere Läufe hinweg aktuell hältst: Speichere die last_id der letzten Seite und setze beim nächsten Lauf von dort als after_id fort. Da die Liste nach updated_at sortiert ist, erscheint ein Chat, der sich nach deinem gespeicherten Cursor ändert, wieder vor diesem, sodass jeder inkrementelle Lauf sowohl brandneue Chats als auch ältere Chats zurückgibt, die seitdem geändert wurden. Verarbeite die Ergebnisse idempotent, mit der Chat-id als Schlüssel, um diese Wiedererscheinungen zu behandeln.
Für diese organisationsweiten Abfragen gelten einige Einschränkungen. Cursor sind opak und an den Sortierschlüssel gebunden, sodass eine after_id, die unter einem order_by-Wert ausgegeben wurde, unter dem anderen mit einem 400-Fehler abgelehnt wird. Zeitfilter-Grenzen müssen ebenfalls zum Sortierschlüssel passen: Kombiniere updated_at.*-Grenzen mit order_by=updated_at und created_at.*-Grenzen mit dem Standard order_by=created_at. Rückwärts-Paginierung mit before_id wird nicht unterstützt, und der Filter project_ids[] ist nicht verfügbar. Siehe Chats auflisten für die vollständige Filterreferenz.
Um die Liste stattdessen auf bestimmte Benutzer einzugrenzen (zum Beispiel für einen Legal Hold für benannte Verwahrer), übergib 1–10 user_ids[]-Werte. Die IDs erhältst du über Organisationsbenutzer auflisten. Benutzergefilterte Abfragen sortieren immer nach created_at (die Übergabe von order_by=updated_at gibt einen 400-Fehler zurück) und unterstützen sowohl after_id als auch before_id. Das Filtern nach project_ids[] ist nur in dieser benutzergefilterten Form verfügbar.
curl --fail-with-body -sS -G \
"https://api.anthropic.com/v1/compliance/apps/chats" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
--data-urlencode "user_ids[]=user_01XyDMpzjS89pFZXqSFUBDr6" \
--data-urlencode "created_at.gte=2025-06-01T00:00:00Z" \
--data-urlencode "limit=100"Die Listenantwort enthält nur Chat-Metadaten. Um den eigentlichen Chat-Inhalt, angehängte Dateien und Inline-Artifacts (strukturierte Dokumente, die Claude innerhalb eines Chats generiert) abzurufen, rufe anschließend den Nachrichten-Endpunkt für jede Chat-ID auf:
chat_id="claude_chat_01H5CWunD7RpVJ5bHa8RCkja"
curl --fail-with-body -sS \
"https://api.anthropic.com/v1/compliance/apps/chats/$chat_id/messages" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY"Der Nachrichten-Endpunkt gibt die Metadaten des Chats sowie ein nach created_at sortiertes chat_messages-Array zurück. Wenn limit weggelassen wird, wird der vollständige Nachrichtensatz in einer Antwort zurückgegeben; übergib limit, after_id oder before_id, um sehr lange Chats seitenweise durchzugehen. Der Endpunkt akzeptiert auch created_at.*- und updated_at.*-Bereichsgrenzen (gt, gte, lt, lte) sowie einen order-Parameter (asc oder desc). Siehe Chat-Nachrichten abrufen für die vollständige Parameterliste. Bei Benutzernachrichten ist created_at der Zeitpunkt, zu dem die Nachricht gesendet wurde; bei Assistentennachrichten ist es der Zeitpunkt, zu dem Claude die Generierung der Nachricht abgeschlossen hat. Jede Nachricht enthält ihren Textinhalt und, falls vorhanden, alle hochgeladenen Dateien (typischerweise bei Benutzernachrichten), alle durch Tools generierten Dateien und alle Artifacts, die der Assistent erstellt oder aktualisiert hat (typischerweise bei Assistentennachrichten):
{
"id": "claude_chat_01H5CWunD7RpVJ5bHa8RCkja",
"name": "Product Requirements Discussion",
"created_at": "2026-04-10T08:09:10Z",
"updated_at": "2026-04-10T09:10:11Z",
"deleted_at": null,
"href": "https://claude.ai/chat/abcdef01-2345-6789-abcd-ef0123456789",
"model": "claude-opus-5",
"organization_uuid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
"project_id": "claude_proj_01KGp4eZNug9ri4kE35RSppq",
"user": {
"id": "user_01XyDMpzjS89pFZXqSFUBDr6",
"email_address": "[email protected]"
},
"chat_messages": [
{
"id": "claude_chat_msg_01VnBPkLmtj7YdW5QrXKEA8c",
"role": "user",
"created_at": "2026-04-10T08:09:10Z",
"content": [
{
"type": "text",
"text": "Can you help me draft requirements for our new dashboard feature?"
}
],
"files": [
{
"id": "claude_file_01UaT9wBcDfGhJkLmNpQrSv7",
"filename": "dashboard_mockup_v1.pdf",
"mime_type": "application/pdf"
}
]
},
{
"id": "claude_chat_msg_01M8tFcHwbQ2kY6NpEjRZv4D",
"role": "assistant",
"created_at": "2026-04-10T08:09:11Z",
"content": [
{
"type": "text",
"text": "I'd be happy to help you draft requirements for your dashboard feature..."
}
],
"generated_files": [
{
"id": "claude_gen_file_01TbR8wAcCeFhJkLnPqStUvX",
"filename": "requirements_summary.csv",
"mime_type": "text/csv"
}
],
"artifacts": [
{
"id": "claude_artifact_01HqRsTuVwXyZa2BcDeFgH4J",
"version_id": "claude_artifact_version_01KmNpQrSt3UvWxYz5AbCdEfG",
"title": "Dashboard Requirements Draft",
"artifact_type": "text/markdown"
}
]
}
],
"has_more": false,
"first_id": "eyJtc2dfdXVpZCI6ICIwZjcwYjA2Ni0uLi4ifQ==",
"last_id": "eyJtc2dfdXVpZCI6ICJhNGUwYjE3Mi0uLi4ifQ=="
}files, generated_files und artifacts können bei einer gegebenen Nachricht jeweils null sein. files sind binäre Uploads (PDFs, Bilder, Tabellenkalkulationen), die der Benutzer an die Nachricht angehängt hat. generated_files sind Binärdateien, die der Assistent während der Konversation durch Tool-Nutzung erstellt hat (zum Beispiel PDFs, Tabellenkalkulationen oder Foliensätze). artifacts sind versionierte Dokumente (zum Beispiel Code oder Markdown), die der Assistent in seiner Antwort generiert oder aktualisiert hat; ein Artifact kann über mehrere Assistenten-Turns im selben Chat hinweg überarbeitet werden, und jede Überarbeitung erscheint als neue version_id unter derselben Artifact-id. Übergib die id jedes Eintrags (oder version_id bei Artifacts) an den passenden Inhalts-Endpunkt in Dateien und Artifacts abrufen, um ihn herunterzuladen.
Dateien und Artifacts werden per ID heruntergeladen, nicht unabhängig aufgelistet. Die IDs stammen vom Chat-Nachrichten-Endpunkt in Chats und Nachrichten abrufen (die Arrays files, generated_files und artifacts bei jeder Nachricht) oder, für Uploads auf Projektebene, vom Projektanhänge-Endpunkt.
Wähle den Endpunkt, der zu deinem ID-Typ und den benötigten Daten passt. Derselbe Dateiinhalts-Endpunkt bedient sowohl Chat-Dateien als auch Projektdateien.
| Du hast | Du möchtest | Verwende diesen Endpunkt |
|---|---|---|
claude_file_*-ID | Den binären Inhalt der Datei | Dateiinhalt herunterladen |
claude_file_*-ID | Nur die Metadaten der Datei | Datei-Metadaten abrufen |
claude_gen_file_*-ID | Den binären Inhalt einer durch Tools generierten Datei | Eine von Claude generierte Datei herunterladen |
claude_gen_file_*-ID | Nur die Metadaten einer durch Tools generierten Datei | Metadaten generierter Dateien abrufen |
claude_artifact_version_*-ID | Den Text einer Artifact-Version | Artifact-Inhalt herunterladen |
claude_artifact_version_*-ID | Nur die Metadaten der Artifact-Version | Artifact-Metadaten abrufen |
claude_proj_doc_*-ID | Den Klartext-Inhalt eines Projektdokuments | Projektdokument-Inhalt abrufen |
claude_proj_doc_*-ID | Nur die Metadaten eines Projektdokuments | Projektdokument-Metadaten abrufen |
Der Dateiinhalts-Endpunkt streamt den ursprünglichen Upload als chunked Binärantwort mit diesen Headern:
Content-Disposition: attachment; filename*=utf-8''<percent-encoded filename> enthält den ursprünglichen Upload-Dateinamen in der erweiterten Form nach RFC 5987. Die erweiterte Form wird für jeden Dateinamen verwendet, nicht nur für Nicht-ASCII-Namen.Content-Type enthält den MIME-Typ des Uploads.Content-MD5 enthält den MD5-Digest der Datei, base64-kodiert wie in RFC 1864 spezifiziert.Transfer-Encoding: chunked ist immer gesetzt.file_id="claude_file_01UaT9wBcDfGhJkLmNpQrSv7"
curl --fail-with-body -sS -OJ \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
"https://api.anthropic.com/v1/compliance/apps/chats/files/$file_id/content"Die Flags -OJ weisen curl an, die Antwort unter dem Dateinamen aus Content-Disposition zu speichern, also dem ursprünglichen Dateinamen, den der Benutzer hochgeladen hat.
Der Artifact-Inhalts-Endpunkt gibt den Textkörper einer Artifact-Version zurück. Übergib die version_id aus einem der Einträge im artifacts-Array einer Assistentennachricht, nicht die stabile id des Artifacts. Jede neue Version eines Artifacts hat ihre eigene version_id, und die Compliance API liefert die exakten Bytes dieser Version.
Projekte bündeln zusammengehörige Chats mit benutzerdefinierten Anweisungen, Wissensdatenbank-Inhalten und angehängten Dateien oder Textdokumenten. Die Compliance API stellt Projekt-Metadaten, Projektdetails und die Liste der zu einem Projekt gehörenden Anhänge bereit.
Projektergebnisse werden aufsteigend nach Erstellungsdatum sortiert. Anhangsergebnisse werden aufsteigend nach created_at sortiert, wobei Gleichstände durch id aufgelöst werden. Projektlisten- und Anhangslisten-Antworten paginieren mit einem opaken next_page-Seiten-Token anstelle der first_id/last_id-Cursor, die von Chats und dem Activity Feed verwendet werden. Übergib das Token als page-Query-Parameter in der nächsten Anfrage zurück.
Ein Projektanhang hat eine von zwei unterschiedlichen Formen, die durch den type-Diskriminator bei jedem Eintrag identifiziert werden:
Einträge mit type gleich project_file sind binäre Uploads (PDFs, Bilder, Tabellenkalkulationen), deren IDs mit claude_file_ beginnen; lade sie mit Dateiinhalt herunterladen herunter. Einträge mit type gleich project_doc sind Klartext-Dokumente (immer text/plain), deren IDs mit claude_proj_doc_ beginnen; rufe sie mit Projektdokument-Inhalt abrufen ab.
Ein Consumer, der die Anhangsliste durchläuft, muss anhand von type verzweigen und für jeden Eintrag den passenden Inhalts-Endpunkt aufrufen. Die folgende Anfrage listet eine Seite von Anhängen auf; paginiere, indem du next_page als page-Parameter zurückgibst, bis has_more gleich false ist.
project_id="claude_proj_01KGp4eZNug9ri4kE35RSppq"
curl --fail-with-body -sS -G \
"https://api.anthropic.com/v1/compliance/apps/projects/$project_id/attachments" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY"{
"data": [
{
"id": "claude_file_01UaT9wBcDfGhJkLmNpQrSv7",
"created_at": "2026-04-10T08:09:10Z",
"filename": "dashboard_mockup_v1.pdf",
"mime_type": "application/pdf",
"type": "project_file"
},
{
"id": "claude_proj_doc_01YnT8sBcWvUtXzQpMkRfDgH",
"created_at": "2026-04-10T08:09:11Z",
"filename": "requirements.md",
"mime_type": "text/plain",
"type": "project_doc"
}
],
"has_more": false,
"next_page": null
}Jede erfolgreiche Löschung ist dauerhaft und sofort wirksam. Es gibt kein Wiederherstellungsfenster.
Die Compliance API stellt Hard-Delete-Endpunkte für Chats, Dateien, Projektdokumente und ganze Projekte bereit. Ein hart gelöschter Chat kann nicht wiederhergestellt werden und erscheint danach nicht mehr in Listenantworten (während ein aus claude.ai soft-gelöschter Chat weiterhin mit befülltem deleted_at erscheint).
Alle vier Endpunkte erfordern den Scope delete:compliance_user_data, der separat vom Lese-Scope gewährt wird, wenn der Compliance Access Key erstellt wird.
Die folgende Anfrage löscht einen Chat. Dasselbe Muster gilt für die anderen Lösch-Endpunkte; nur die URL ändert sich.
# WARNUNG: Dieser Vorgang löscht den Chat, alle seine Nachrichten und
# alle angehängten Dateien DAUERHAFT. Die Löschung erfolgt sofort und kann nicht
# rückgängig gemacht werden. Sie erfordert den Scope `delete:compliance_user_data`,
# der getrennt von `read:compliance_user_data` beim Erstellen des Compliance Access Key vergeben wird.
# Stelle sicher, dass du eine ausdrückliche Autorisierung hast, bevor du dies ausführst.
chat_id="claude_chat_01H5CWunD7RpVJ5bHa8RCkja"
curl --fail-with-body -sS -X DELETE \
"https://api.anthropic.com/v1/compliance/apps/chats/$chat_id" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY"{
"id": "claude_chat_01H5CWunD7RpVJ5bHa8RCkja",
"type": "claude_chat_deleted"
}Jede erfolgreiche Löschung gibt einen kleinen Bestätigungsumschlag mit einer id und einem type-Diskriminator zurück. Der Chat-Endpunkt gibt claude_chat_deleted zurück; prüfe das type-Feld, bevor du die Löschung als bestätigt behandelst. Siehe das Antwortschema auf der API-Referenz-Seite jedes Lösch-Endpunkts für den genauen type-Wert, den die anderen Endpunkte zurückgeben.
Ein Projekt kann nicht gelöscht werden, solange noch Chats daran angehängt sind. Die API gibt 409 mit diesem Body zurück:
{
"error": {
"type": "conflict_error",
"message": "The \"claude_proj_01KGp4eZNug9ri4kE35RSppq\" project cannot be deleted as it has chats attached to it. Delete or detach all chats, and try deleting the project again."
}
}Um das Problem zu lösen, liste die Chats des Projekts mit GET /v1/compliance/apps/chats?user_ids[]={user_id}&project_ids[]={project_id} auf (der Filter project_ids[] erfordert mindestens einen user_ids[]-Wert; zähle IDs über Organisationsbenutzer auflisten auf), lösche jeden einzelnen mit DELETE /v1/compliance/apps/chats/{claude_chat_id} (oder verschiebe ihn in claude.ai aus dem Projekt heraus) und wiederhole dann die Projektlöschung.
Das vollständige Anfrage- und Antwortschema für jeden Chat-, Datei-, Projekt- und Artifact-Endpunkt.
Zähle die Personen und Teams auf, die mit den Chats und Projekten auf dieser Seite verknüpft sind.
Was this page helpful?