डेटा मिटाने की API
Data Erasure API, Pushwoosh से किसी विषय का व्यक्तिगत डेटा मिटाने (GDPR मिटाने का अधिकार) का सेल्फ-सर्व तरीका है। मिटाने की प्रक्रिया अपरिवर्तनीय है: इसका उपयोग अपने स्वयं के सिस्टम से कंट्रोल पैनल के डेटा अनुरोध पेज और किसी सब्सक्राइबर के कार्ड पर व्यक्तिगत डेटा मिटाएं एक्शन को मिरर करने के लिए करें।
बेस यूआरएल
Anchor link tohttps://rpc-api.svc-nue.pushwoosh.comसभी एंडपॉइंट्स HTTPS पर सर्व किए जाते हैं। अनुरोध और प्रतिक्रियाएं application/json का उपयोग करती हैं, सिवाय Upload के, जो multipart/form-data लेता है।
प्रमाणीकरण
Anchor link toप्रत्येक अनुरोध में आपके सर्वर API टोकन के साथ एक Authorization हेडर शामिल होना चाहिए:
Authorization: Api YOUR_API_TOKENटोकन के पास application_codes में नामित हर एप्लिकेशन पर मॉडिफाई एक्सेस होना चाहिए। यह वही एक्सेस है जो एक टोकन को उन एप्लिकेशनों पर डिवाइस डेटा लिखने के लिए चाहिए।
परंपराएं
Anchor link to- फ़ील्ड नेमिंग: रिक्वेस्ट बॉडी
lowerCamelCaseस्वीकार करती है (उदाहरण के लिए,applicationCodes,identifierType)। प्रतिक्रियाएं प्रोटो फ़ील्ड नामों का उपयोग करकेsnake_case(task_id,identifier_hash, इत्यादि) में मार्शल की जाती हैं। नीचे दिए गए उदाहरण और ऑब्जेक्ट रेफरेंस उसी केसिंग का उपयोग करते हैं। - आइडेंटिफायर: किसी विषय को
identifier_type(SUBJECT_IDENTIFIER_USER_ID,SUBJECT_IDENTIFIER_HWID, याSUBJECT_IDENTIFIER_EMAIL) और उस एक प्रकार केidentifiersकी सूची द्वारा एड्रेस किया जाता है। एक ईमेल आइडेंटिफायर केस-असंवेदनशील रूप से मेल खाता है। - पहले Dry run करें, फिर उसे कोट करें:
dry_run: trueके साथ Create केवल यह गिनता है कि क्या मिटाया जाएगा और कुछ भी नहीं लिखता। उस Dry run केtask_idको वास्तविक कॉल परconfirmation_dry_run_task_idके रूप में कोट करना वैकल्पिक है, लेकिन यदि आप एक को कोट करते हैं, तो यह उस Dry run के अपने एप्लिकेशनों और आइडेंटिफायर्स से बिल्कुल मेल खाना चाहिए, और उसके पूरा होने के 15 मिनट के भीतर कॉल किया जाना चाहिए। अन्यथा कॉल अस्वीकार कर दी जाती है। - रिपोर्ट्स कभी भी आइडेंटिफायर को साफ़ टेक्स्ट में नहीं ले जातीं। GetTaskReport और GetJournalReport दोनों प्रत्येक आइडेंटिफायर को उसके sha256 हैश (
identifier_hash) के रूप में रिपोर्ट करते हैं, और रिपोर्ट बॉडी JSON प्रतिक्रिया के अंदर base64 के रूप में एन्कोड की गई CSV होती है।
त्रुटि प्रतिक्रियाएं
Anchor link to| HTTP स्टेटस | अर्थ |
|---|---|
400 Bad Request | अमान्य तर्क, जैसे कि खाली identifier_type, identifiers, या application_codes, 10,000 से अधिक आइडेंटिफायर्स, 50 से अधिक एप्लिकेशन, आइडेंटिफायर्स × एप्लिकेशन 50,000 से अधिक, एक खाली आइडेंटिफायर स्ट्रिंग, या (केवल Upload के लिए) एक गुम/अपठनीय CSV फ़ाइल। जब कोई कोट किया गया confirmation_dry_run_task_id उस पूरे हो चुके Dry run से मेल नहीं खाता जिसे वह नाम देता है, बहुत पुराना है (15 मिनट से अधिक), या बिल्कुल भी पूरा हुआ Dry run नहीं है, तो इसे वायर पर FailedPrecondition के रूप में भी लौटाया जाता है। |
401 Unauthorized | गुम या अमान्य Authorization हेडर। |
403 Forbidden | टोकन के पास अनुरोधित एप्लिकेशनों में से किसी एक पर मॉडिफाई/डिवाइस-डेटा राइट नहीं है, या कॉलर अनुरोधित टास्क/रिपोर्ट को नहीं पढ़ सकता। |
404 Not Found | टास्क नहीं मिला, या कॉलर के खाते से संबंधित नहीं है। |
413 Payload Too Large | (केवल Upload के लिए) अपलोड की गई फ़ाइल 5 MB से अधिक है। |
429 Too Many Requests | खाते ने पिछले 24 घंटों में पहले ही 20 डेटा मिटाने के टास्क (Dry run सहित) शुरू कर दिए हैं। |
एंडपॉइंट्स
Anchor link to| मेथड | पाथ | विवरण |
|---|---|---|
POST | /api/data_erasure/tasks | एक मिटाने का (या dry-run) टास्क बनाएं |
POST | /api/data_erasure/upload | आइडेंटिफायर्स की अपलोड की गई CSV से एक मिटाने का टास्क बनाएं |
GET | /api/data_erasure/tasks | खाते के मिटाने के टास्क की सूची बनाएं |
GET | /api/data_erasure/tasks/{task_id} | एक मिटाने का टास्क प्राप्त करें |
GET | /api/data_erasure/tasks/{task_id}/rows | एक टास्क के प्रति-आइडेंटिफायर परिणामों की सूची बनाएं |
GET | /api/data_erasure/tasks/{task_id}/report | एक टास्क की रिपोर्ट को CSV के रूप में डाउनलोड करें |
GET | /api/data_erasure/report | एक अवधि के हर टास्क को एक CSV के रूप में डाउनलोड करें |
Create
Anchor link toसूचीबद्ध एप्लिकेशनों में सूचीबद्ध विषयों का व्यक्तिगत डेटा मिटाना शुरू करता है। dry_run: true के साथ टास्क केवल यह गिनता है कि क्या मिटाया जाएगा।
POST /api/data_erasure/tasks
रिक्वेस्ट बॉडी
Anchor link to| पैरामीटर | प्रकार | आवश्यक | विवरण |
|---|---|---|---|
identifierType | string | हाँ | SUBJECT_IDENTIFIER_USER_ID, SUBJECT_IDENTIFIER_HWID, या SUBJECT_IDENTIFIER_EMAIL। |
identifiers | array of strings | हाँ | उस एक प्रकार के विषय आइडेंटिफायर, प्रति टास्क 10,000 तक, कोई खाली वैल्यू नहीं। |
applicationCodes | array of strings | हाँ | मिटाने के लिए एप्लिकेशन कोड, 50 तक। एक ही कॉल में खाते के हर एप्लिकेशन से मिटाने का कोई तरीका नहीं है, इसलिए हर एक को स्पष्ट रूप से नाम दें। identifiers.length × applicationCodes.length 50,000 से अधिक नहीं होना चाहिए, क्योंकि रिपोर्ट में प्रति आइडेंटिफायर प्रति एप्लिकेशन एक पंक्ति होती है। |
dryRun | boolean | नहीं | यह गिनता है कि क्या मिटाया जाएगा और कुछ भी नहीं लिखता। डिफ़ॉल्ट रूप से false। |
confirmationDryRunTaskId | integer | नहीं | एक पूरे हो चुके Dry run का task_id जिसने इस सटीक मिटाने को मापा था। देखें परंपराएं। |
अनुरोध उदाहरण
Anchor link to{ "identifierType": "SUBJECT_IDENTIFIER_EMAIL", "identifiers": ["subject@example.com"], "applicationCodes": ["XXXXX-XXXXX"], "dryRun": true}प्रतिक्रिया
Anchor link to| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
task_id | integer | बनाए गए टास्क की Id। इसे इस पेज के हर दूसरे एंडपॉइंट के साथ उपयोग करें। |
Upload
Anchor link toCreate जैसा ही टास्क बनाता है, लेकिन आइडेंटिफायर्स JSON ऐरे के बजाय एक अपलोड की गई CSV से आते हैं। इसका उपयोग बल्क विषय सूची के लिए करें।
POST /api/data_erasure/upload
रिक्वेस्ट (multipart/form-data)
Anchor link to| फ़ील्ड | आवश्यक | विवरण |
|---|---|---|
file | हाँ | CSV फ़ाइल, 5 MB तक, एक ही कॉलम में प्रति पंक्ति एक आइडेंटिफायर। पहली पंक्ति आइडेंटिफायर रखने के बजाय कॉलम का नाम बता सकती है (user_id, userid, user id, hwid, email, identifier, या subject, केस-असंवेदनशील रूप से)। उस पंक्ति को फिर हेडर के रूप में छोड़ दिया जाता है, गिना नहीं जाता। खाली पंक्तियों को छोड़ दिया जाता है और अलग से गिना जाता है। डुप्लिकेट आइडेंटिफायर (ईमेल के लिए केस-असंवेदनशील रूप से) एक में समेट दिए जाते हैं और अलग से गिने जाते हैं। |
identifier_type | हाँ | user_id, hwid, या email, लोअरकेस, इस पेज पर अन्यत्र उपयोग किए गए JSON identifierType एनम वैल्यू से एक अलग केसिंग। पूरी फ़ाइल पर एक प्रकार लागू होता है। |
application_codes | हाँ | कॉमा-सेपरेटेड एप्लिकेशन कोड। |
dry_run | नहीं | true/false। |
confirmation_dry_run_task_id | नहीं | Create के समान। |
प्रतिक्रिया
Anchor link to{ "task_id": 123, "identifier_count": 480, "duplicate_count": 3, "skipped_rows": 1}ListTasks
Anchor link toखाते के मिटाने के टास्क की सूची बनाता है, सबसे नए पहले: यह ऑडिट जर्नल है कि किसने क्या और कब मिटाया। जब तक includeDryRuns सेट न हो, Dry run छोड़ दिए जाते हैं।
GET /api/data_erasure/tasks
क्वेरी पैरामीटर्स
Anchor link to| पैरामीटर | प्रकार | विवरण |
|---|---|---|
limit / offset | integer | पेजिंग। |
includeDryRuns | boolean | Dry-run (केवल-मापन) टास्क शामिल करें। |
from / to | string (RFC 3339) | [from, to) में शुरू हुए टास्क रखें। |
applicationCode | string | उन टास्क को रखें जो इस एप्लिकेशन को कवर करते हैं। |
initiatorUserId | integer | इस कंट्रोल पैनल यूज़र द्वारा शुरू किए गए टास्क रखें। 0 (डिफ़ॉल्ट) हर इनिशिएटर को रखता है। |
initiatorTokenId | integer | इस API टोकन द्वारा शुरू किए गए टास्क रखें। 0 (डिफ़ॉल्ट) हर इनिशिएटर को रखता है। |
initiatorEmail | string | इस कंट्रोल पैनल यूज़र द्वारा शुरू किए गए टास्क रखें, ईमेल द्वारा मैच किया गया, केस-असंवेदनशील रूप से। |
प्रतिक्रिया
Anchor link to| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
tasks | डेटा मिटाने टास्क ऑब्जेक्ट्स का ऐरे | मेल खाने वाले टास्क। |
GetTask
Anchor link toस्टेटस और काउंटर के साथ एक मिटाने का टास्क लौटाता है। Create या Upload द्वारा शुरू किए गए टास्क को फॉलो करने के लिए इसका उपयोग करें।
GET /api/data_erasure/tasks/{task_id}
प्रतिक्रिया
Anchor link to| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
task | डेटा मिटाने टास्क ऑब्जेक्ट | अनुरोधित टास्क। |
ListTaskRows
Anchor link toएक टास्क के प्रति-आइडेंटिफायर परिणाम को लौटाता है: क्या डिलीट हुआ, नहीं मिला, छोड़ा गया, या फेल हुआ। आइडेंटिफायर्स को उनके sha256 हैश के रूप में रिपोर्ट किया जाता है।
GET /api/data_erasure/tasks/{task_id}/rows
क्वेरी पैरामीटर्स
Anchor link to| पैरामीटर | प्रकार | विवरण |
|---|---|---|
limit / offset | integer | पेजिंग। |
प्रतिक्रिया
Anchor link to| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
rows | डेटा मिटाने टास्क रो ऑब्जेक्ट्स का ऐरे | परिणामों का यह पेज। |
GetTaskReport
Anchor link toएक टास्क की पूरी रिपोर्ट को एक CSV फ़ाइल के रूप में लौटाता है: प्रति आइडेंटिफायर प्रति एप्लिकेशन एक पंक्ति, उसके परिणाम के साथ। इसके बजाय ListTaskRows वही पंक्तियां पेज दर पेज दिखाता है।
GET /api/data_erasure/tasks/{task_id}/report
प्रतिक्रिया
Anchor link to| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
filename | string | सुझाया गया फ़ाइल नाम, उदाहरण के लिए data-erasure-task-42.csv। |
content_type | string | text/csv। |
content | string (base64) | CSV फ़ाइल। कॉलम: task_id, created, identifier_type, identifier_hash, application_code, result, detail। |
GetJournalReport
Anchor link toएक अवधि के हर मिटाने के टास्क को एक CSV फ़ाइल के रूप में लौटाता है: प्रति आइडेंटिफायर प्रति एप्लिकेशन एक पंक्ति, जिसमें हर पंक्ति पर टास्क और उसका इनिशिएटर होता है। यह वही है जो एक खाता किसी ऑडिटर को सौंपता है।
GET /api/data_erasure/report
क्वेरी पैरामीटर्स
Anchor link to| पैरामीटर | प्रकार | आवश्यक | विवरण |
|---|---|---|---|
from | string (RFC 3339) | हाँ | अवधि की शुरुआत। |
to | string (RFC 3339) | नहीं | अवधि का अंत। डिफ़ॉल्ट रूप से अभी। |
includeDryRuns | boolean | नहीं | Dry-run टास्क शामिल करें। |
प्रतिक्रिया
Anchor link to| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
filename | string | सुझाया गया फ़ाइल नाम, उदाहरण के लिए data-erasure-2026-01-01-2026-04-01.csv। |
content_type | string | text/csv। |
content | string (base64) | CSV फ़ाइल। कॉलम: task_id, task_created, initiator_user_id, initiator_email, initiator_token_id, dry_run, identifier_type, identifier_hash, application_code, result, detail, row_created। |
डेटा मिटाने टास्क ऑब्जेक्ट
Anchor link to| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
task_id | integer | टास्क Id। |
identifier_type | string | SUBJECT_IDENTIFIER_USER_ID, SUBJECT_IDENTIFIER_HWID, या SUBJECT_IDENTIFIER_EMAIL। |
application_codes | array of strings | वे एप्लिकेशन जिन्हें टास्क कवर करता है। |
dry_run | boolean | क्या यह टास्क केवल एक वॉल्यूम मापता है। |
status | string | ERASURE_TASK_STATUS_PENDING, _IN_PROGRESS, _DONE, या _FAILED। |
total_count | integer | आइडेंटिफायर्स × एप्लिकेशन जिन्हें यह टास्क कवर करता है। |
deleted_count | integer | कितने मिटाए गए (या, Dry run के लिए, मिटाए जाते)। |
not_found_count | integer | कितने किसी से मेल नहीं खाए। |
failed_count | integer | कितने फेल हुए। क्यों, यह जानने के लिए ListTaskRows या रिपोर्ट देखें। |
fail_reason | string | जब status, ERASURE_TASK_STATUS_FAILED हो तो सेट किया जाता है। |
initiator_user_id | integer | कंट्रोल पैनल यूज़र जिसने टास्क शुरू किया। जब एक API टोकन ने किया हो तो 0। |
initiator_token_id | integer | API टोकन जिसने टास्क शुरू किया। जब एक कंट्रोल पैनल यूज़र ने किया हो तो 0। |
initiator_email | string | उस कंट्रोल पैनल यूज़र का पता जिसने टास्क शुरू किया। API टोकन के लिए खाली। |
created | string (RFC 3339) | टास्क कब बनाया गया था। |
started_at | string (RFC 3339) | मिटाने का काम कब शुरू हुआ। |
finished_at | string (RFC 3339) | टास्क कब अंतिम स्टेटस पर पहुंचा। |
डेटा मिटाने टास्क रो ऑब्जेक्ट
Anchor link to| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
identifier_hash | string | आइडेंटिफायर का sha256। रिपोर्ट कभी भी आइडेंटिफायर को खुद स्टोर या नहीं लौटाती। |
application_code | string | वह एप्लिकेशन जिस पर इस पंक्ति का परिणाम लागू होता है। |
result | string | ERASURE_ROW_RESULT_DELETED, _NOT_FOUND, _SKIPPED, या _FAILED। |
detail | string | तकनीकी विवरण, मुख्य रूप से फेल होने पर सेट किया जाता है। |
created | string (RFC 3339) | यह पंक्ति कब लिखी गई थी। |