Zum Inhalt springen

Datenlöschungs-API

Die Datenlöschungs-API ist der Self-Service-Weg, um die persönlichen Daten eines Betreffs aus Pushwoosh zu löschen (DSGVO-Recht auf Löschung). Die Löschung ist unumkehrbar: Verwenden Sie sie, um die Seite Datenanfragen im Control Panel und die Aktion Persönliche Daten löschen auf der Karte eines Abonnenten von Ihren eigenen Systemen aus zu spiegeln.

https://rpc-api.svc-nue.pushwoosh.com

Alle Endpunkte werden über HTTPS bereitgestellt. Anfragen und Antworten verwenden application/json, mit Ausnahme von Upload, das multipart/form-data verwendet.

Authentifizierung

Anchor link to

Jede Anfrage muss einen Authorization-Header mit Ihrem Server-API-Token enthalten:

Authorization: Api IHR_API_TOKEN

Das Token muss über Änderungsrechte für jede in application_codes genannte Anwendung verfügen. Das ist dasselbe Recht, das ein Token benötigt, um Gerätedaten für diese Anwendungen zu schreiben.

Konventionen

Anchor link to
  • Feldnamen: Anfragekörper akzeptieren lowerCamelCase (zum Beispiel applicationCodes, identifierType). Antworten werden mit den Proto-Feldnamen in snake_case marshalled (task_id, identifier_hash usw.). Die Beispiele und Objektreferenzen unten verwenden diese Schreibweise.
  • Kennungen: Ein Betreff wird über identifier_type (SUBJECT_IDENTIFIER_USER_ID, SUBJECT_IDENTIFIER_HWID oder SUBJECT_IDENTIFIER_EMAIL) plus eine Liste von identifiers dieses einen Typs adressiert. Eine E-Mail-Kennung wird nicht case-sensitiv abgeglichen.
  • Erst ein Dry-Run, dann referenzieren: Create mit dry_run: true zählt nur, was gelöscht würde, und schreibt nichts. Das Referenzieren der task_id dieses Dry-Runs als confirmation_dry_run_task_id beim eigentlichen Aufruf ist optional, aber wenn Sie eine angeben, muss sie exakt zu den Anwendungen und Kennungen dieses Dry-Runs passen und innerhalb von 15 Minuten nach dessen Abschluss aufgerufen werden. Andernfalls wird der Aufruf abgelehnt.
  • Berichte enthalten die Kennung nie im Klartext. Sowohl GetTaskReport als auch GetJournalReport melden jede Kennung als ihren sha256-Hash (identifier_hash), und der Berichtsinhalt ist als CSV base64-kodiert in der JSON-Antwort enthalten.

Fehlerantworten

Anchor link to
HTTP-StatusBedeutung
400 Bad RequestUngültiges Argument, z. B. ein leeres identifier_type, identifiers oder application_codes, mehr als 10.000 Kennungen, mehr als 50 Anwendungen, Kennungen × Anwendungen über 50.000, eine leere Kennungszeichenfolge oder (nur bei Upload) eine fehlende/unlesbare CSV-Datei. Wird auch (als FailedPrecondition auf der Leitung) zurückgegeben, wenn eine angegebene confirmation_dry_run_task_id nicht zu dem von ihr benannten abgeschlossenen Dry-Run passt, zu alt ist (über 15 Minuten) oder überhaupt kein abgeschlossener Dry-Run ist.
401 UnauthorizedFehlender oder ungültiger Authorization-Header.
403 ForbiddenDas Token hat kein Änderungs-/Gerätedatenrecht für eine der angeforderten Anwendungen, oder der Aufrufer darf die angeforderte Aufgabe/den angeforderten Bericht nicht lesen.
404 Not FoundDie Aufgabe wurde nicht gefunden oder gehört nicht zum Konto des Aufrufers.
413 Payload Too Large(Nur bei Upload) die hochgeladene Datei ist größer als 5 MB.
429 Too Many RequestsDas Konto hat in den letzten 24 Stunden bereits 20 Datenlöschungsaufgaben gestartet (Dry-Runs eingeschlossen).
MethodePfadBeschreibung
POST/api/data_erasure/tasksEine Löschungs- (oder Dry-Run-)Aufgabe erstellen
POST/api/data_erasure/uploadEine Löschungsaufgabe aus einer hochgeladenen CSV mit Kennungen erstellen
GET/api/data_erasure/tasksDie Löschungsaufgaben des Kontos auflisten
GET/api/data_erasure/tasks/{task_id}Eine einzelne Löschungsaufgabe abrufen
GET/api/data_erasure/tasks/{task_id}/rowsDie Ergebnisse einer Aufgabe pro Kennung auflisten
GET/api/data_erasure/tasks/{task_id}/reportDen Bericht einer Aufgabe als CSV herunterladen
GET/api/data_erasure/reportAlle Aufgaben eines Zeitraums als eine CSV herunterladen

Beginnt mit dem Löschen der persönlichen Daten der aufgelisteten Betreffe in den aufgelisteten Anwendungen. Mit dry_run: true zählt die Aufgabe nur, was gelöscht würde.

POST /api/data_erasure/tasks

Anfragekörper

Anchor link to
ParameterTypErforderlichBeschreibung
identifierTypestringJaSUBJECT_IDENTIFIER_USER_ID, SUBJECT_IDENTIFIER_HWID oder SUBJECT_IDENTIFIER_EMAIL.
identifiersArray von StringsJaKennungen des Betreffs dieses einen Typs, bis zu 10.000 pro Aufgabe, keine leeren Werte.
applicationCodesArray von StringsJaAnwendungscodes, aus denen gelöscht werden soll, bis zu 50. Es gibt keine Möglichkeit, in einem Aufruf aus jeder Anwendung des Kontos zu löschen, daher müssen Sie jede einzeln benennen. identifiers.length × applicationCodes.length darf 50.000 nicht überschreiten, da der Bericht eine Zeile pro Kennung und Anwendung enthält.
dryRunbooleanNeinZählt, was gelöscht würde, und schreibt nichts. Standardmäßig false.
confirmationDryRunTaskIdintegerNeintask_id eines abgeschlossenen Dry-Runs, der genau diese Löschung gemessen hat. Siehe Konventionen.
Anfragebeispiel
Anchor link to
{
"identifierType": "SUBJECT_IDENTIFIER_EMAIL",
"identifiers": ["subject@example.com"],
"applicationCodes": ["XXXXX-XXXXX"],
"dryRun": true
}
FeldTypBeschreibung
task_idintegerID der erstellten Aufgabe. Verwenden Sie sie bei jedem anderen Endpunkt auf dieser Seite.

Erstellt die gleiche Art von Aufgabe wie Create, aber die Kennungen stammen aus einer hochgeladenen CSV anstelle eines JSON-Arrays. Verwenden Sie dies für eine umfangreiche Betreffliste.

POST /api/data_erasure/upload

Anfrage (multipart/form-data)

Anchor link to
FeldErforderlichBeschreibung
fileJaCSV-Datei, bis zu 5 MB, eine Kennung pro Zeile, in der einzigen Spalte. Die erste Zeile kann statt einer Kennung den Spaltennamen enthalten (user_id, userid, user id, hwid, email, identifier oder subject, nicht case-sensitiv). Diese Zeile wird dann als Kopfzeile übersprungen und nicht mitgezählt. Leere Zeilen werden übersprungen und separat gezählt. Doppelte Kennungen (bei E-Mail nicht case-sensitiv) werden zu einer zusammengefasst und separat gezählt.
identifier_typeJauser_id, hwid oder email, kleingeschrieben, eine andere Schreibweise als die JSON-identifierType-Enum-Werte, die an anderer Stelle auf dieser Seite verwendet werden. Ein Typ gilt für die gesamte Datei.
application_codesJaDurch Komma getrennte Anwendungscodes.
dry_runNeintrue/false.
confirmation_dry_run_task_idNeinWie bei Create.
{
"task_id": 123,
"identifier_count": 480,
"duplicate_count": 3,
"skipped_rows": 1
}

Listet die Löschungen des Kontos auf, neueste zuerst: das Prüfprotokoll, wer was wann gelöscht hat. Dry-Runs werden ausgelassen, sofern nicht includeDryRuns gesetzt ist.

GET /api/data_erasure/tasks

Abfrageparameter

Anchor link to
ParameterTypBeschreibung
limit / offsetintegerPaginierung.
includeDryRunsbooleanDry-Run-Aufgaben (nur Messung) einschließen.
from / tostring (RFC 3339)Behält Aufgaben, die im Zeitraum [from, to) gestartet wurden.
applicationCodestringBehält Aufgaben, die diese Anwendung abdecken.
initiatorUserIdintegerBehält Aufgaben, die von diesem Control-Panel-Benutzer gestartet wurden. 0 (Standard) behält jeden Initiator.
initiatorTokenIdintegerBehält Aufgaben, die von diesem API-Token gestartet wurden. 0 (Standard) behält jeden Initiator.
initiatorEmailstringBehält Aufgaben, die von diesem Control-Panel-Benutzer gestartet wurden, abgeglichen per E-Mail, nicht case-sensitiv.
FeldTypBeschreibung
tasksArray von Löschaufgaben-ObjektenÜbereinstimmende Aufgaben.

Gibt eine einzelne Löschaufgabe mit ihrem Status und ihren Zählern zurück. Verwenden Sie sie, um eine mit Create oder Upload gestartete Aufgabe zu verfolgen.

GET /api/data_erasure/tasks/{task_id}

FeldTypBeschreibung
taskLöschaufgaben-ObjektDie angeforderte Aufgabe.

ListTaskRows

Anchor link to

Gibt das Ergebnis einer Aufgabe pro Kennung zurück: was gelöscht, nicht gefunden, übersprungen oder fehlgeschlagen wurde. Kennungen werden als ihr sha256-Hash gemeldet.

GET /api/data_erasure/tasks/{task_id}/rows

Abfrageparameter

Anchor link to
ParameterTypBeschreibung
limit / offsetintegerPaginierung.
FeldTypBeschreibung
rowsArray von Löschaufgabenzeilen-ObjektenDiese Ergebnisseite.

GetTaskReport

Anchor link to

Gibt den vollständigen Bericht einer Aufgabe als CSV-Datei zurück: eine Zeile pro Kennung und Anwendung, mit ihrem Ergebnis. ListTaskRows zeigt stattdessen dieselben Zeilen seitenweise an.

GET /api/data_erasure/tasks/{task_id}/report

FeldTypBeschreibung
filenamestringVorgeschlagener Dateiname, zum Beispiel data-erasure-task-42.csv.
content_typestringtext/csv.
contentstring (base64)Die CSV-Datei. Spalten: task_id, created, identifier_type, identifier_hash, application_code, result, detail.

GetJournalReport

Anchor link to

Gibt jede Löschung eines Zeitraums als eine CSV-Datei zurück: eine Zeile pro Kennung und Anwendung, mit der Aufgabe und ihrem Initiator auf jeder Zeile. Das ist es, was ein Konto einem Prüfer aushändigt.

GET /api/data_erasure/report

Abfrageparameter

Anchor link to
ParameterTypErforderlichBeschreibung
fromstring (RFC 3339)JaBeginn des Zeitraums.
tostring (RFC 3339)NeinEnde des Zeitraums. Standardmäßig jetzt.
includeDryRunsbooleanNeinDry-Run-Aufgaben einschließen.
FeldTypBeschreibung
filenamestringVorgeschlagener Dateiname, zum Beispiel data-erasure-2026-01-01-2026-04-01.csv.
content_typestringtext/csv.
contentstring (base64)Die CSV-Datei. Spalten: task_id, task_created, initiator_user_id, initiator_email, initiator_token_id, dry_run, identifier_type, identifier_hash, application_code, result, detail, row_created.

Löschaufgaben-Objekt

Anchor link to
FeldTypBeschreibung
task_idintegerAufgaben-ID.
identifier_typestringSUBJECT_IDENTIFIER_USER_ID, SUBJECT_IDENTIFIER_HWID oder SUBJECT_IDENTIFIER_EMAIL.
application_codesArray von StringsAnwendungen, die die Aufgabe abdeckt.
dry_runbooleanOb diese Aufgabe nur ein Volumen gemessen hat.
statusstringERASURE_TASK_STATUS_PENDING, _IN_PROGRESS, _DONE oder _FAILED.
total_countintegerKennungen × Anwendungen, die diese Aufgabe abdeckt.
deleted_countintegerWie viele gelöscht wurden (oder bei einem Dry-Run würden).
not_found_countintegerWie viele auf nichts zutrafen.
failed_countintegerWie viele fehlgeschlagen sind. Den Grund finden Sie in ListTaskRows oder im Bericht.
fail_reasonstringGesetzt, wenn status gleich ERASURE_TASK_STATUS_FAILED ist.
initiator_user_idintegerControl-Panel-Benutzer, der die Aufgabe gestartet hat. 0, wenn ein API-Token es getan hat.
initiator_token_idintegerAPI-Token, das die Aufgabe gestartet hat. 0, wenn ein Control-Panel-Benutzer es getan hat.
initiator_emailstringAdresse des Control-Panel-Benutzers, der die Aufgabe gestartet hat. Leer bei einem API-Token.
createdstring (RFC 3339)Wann die Aufgabe erstellt wurde.
started_atstring (RFC 3339)Wann die Löscharbeit begann.
finished_atstring (RFC 3339)Wann die Aufgabe einen endgültigen Status erreichte.

Löschaufgabenzeilen-Objekt

Anchor link to
FeldTypBeschreibung
identifier_hashstringsha256 der Kennung. Der Bericht speichert oder gibt niemals die Kennung selbst zurück.
application_codestringAnwendung, für die das Ergebnis dieser Zeile gilt.
resultstringERASURE_ROW_RESULT_DELETED, _NOT_FOUND, _SKIPPED oder _FAILED.
detailstringTechnisches Detail, hauptsächlich bei einem Fehlschlag gesetzt.
createdstring (RFC 3339)Wann diese Zeile geschrieben wurde.

Verwandte Themen

Anchor link to