GDPR API 참조

Singular API를 사용하여 GDPR 요청을 지원하는 방법을 알아보세요.

 

GDPR 엔드포인트

엔드포인트 메서드 URL 설명
Discovery GET https://gdpr.singular.net/gdpr/discovery Singular가 GDPR API를 통해 처리할 수 있는 현재 지원되는 모든 요청 유형을 반환합니다.
Requests POST https://gdpr.singular.net/gdpr/requests 이 엔드포인트를 사용하여 요청된 데이터 주체의 디바이스 ID를 지정하면서 HTTP POST 요청을 통해 새 GDPR 요청을 전송할 수 있습니다.
Status GET https://gdpr.singular.net/gdpr/requests/request_id 요청 ID로 식별되는 이전에 전송된 요청의 현재 상태를 반환합니다.
Cancellation DELETE https://gdpr.singular.net/gdpr/requests/request_id 이 엔드포인트를 사용하여 이전 요청을 취소할 수 있습니다. 요청이 '보류 중' 상태인 경우에만 가능합니다.

검색 엔드포인트

GET https://gdpr.singular.net/api/gdpr/discovery

사용 방법

OpenGDPR Discovery 엔드포인트는 Singular가 GDPR API를 통해 처리할 수 있는 현재 지원되는 모든 요청 유형을 반환합니다.

샘플 쿼리

import requests
  response = requests.get("https://gdpr.singular.net/api/gdpr/discovery")
  print(response.text)

샘플 출력

{
    "api_version": "0.1.4",
    "supported_identities": [
      {"identity_format": "raw","identity_type": "android_advertising_id"},
      {"identity_format": "raw","identity_type": "android_id"},
      {"identity_format": "raw","identity_type": "ios_advertising_id"},
      {"identity_format": "raw","identity_type": "ios_vendor_id"},
      {"identity_format": "raw","identity_type": "user_id"}
    ],
    "supported_subject_request_types": [
        "erasure",
        "access"
    ]
  }

요청 엔드포인트

POST https://gdpr.singular.net/api/gdpr/requests

사용법

OpenGDPR 요청 엔드포인트는 요청된 데이터 주체의 디바이스 ID를 지정하면서 HTTP POST 요청을 통해 전송되는 새로운 GDPR 요청을 처리합니다.

지원되는 요청

OpenGDPR 요청 엔드포인트는 다양한 GDPR 권한에 해당하는 다음 유형의 요청을 지원합니다:

  • `erasure` - GDPR 제17조, 삭제 권리의일부로 데이터 삭제에 대한 사용자 요청 지원
  • `access` - GDPR 제15조, 접근 권리의일부로 데이터 접근에 대한 사용자 요청 지원

지원되는 ID

OpenGDPR 요청 엔드포인트는 다음 유형의 ID를 지원합니다:

  • `android_advertising_id` - GAID 또는 AIFA라고도 하는 Google 광고 ID를 제공하여 이루어지는 요청
  • `android_id` - ANDI라고도 하는 안드로이드 ID를 제공하여 만든 요청
  • `ios_advertising_id` - iOS 광고 ID인 IDFA를 제공하여 이루어진 요청. 0으로 설정된 IDFA("00000000-0000-0000-0000-000000000000")가 포함된'제한 광고 추적또는 ATT 권한 부여 상태거부' 기기에 대한 요청은 무시되며 API가 오류와 함께 반환되지 않습니다. 대신 `ios_vendor_id`를 사용해야 합니다.
  • `ios_vendor_id` - 공급업체용 iOS ID인 IDFV를 제공하여 이루어진 요청.
  • `user_id` - 사용자 지정 사용자 ID를 제공하여 이루어진 요청

샘플 쿼리

import requests
  
  url = "https://gdpr.singular.net/api/gdpr/requests"
  
  payload = {
    "subject_request_id": "1c8b23f4-12eb-4fe8-af1c-0f72807dfec2",
    "subject_request_type": "access",
    "submitted_time": "2018-05-25T10:00:00Z",
    "subject_identities": [
      {
        "identity_type": "android_advertising_id",
        "identity_value": "38400000-8cf0-11bd-b23e-10b96e40000d",
        "identity_format": "raw"
      }
    ],
    "property_id": "Android:com.myapp.xyz",
  }
  
  headers = {
    "content-type": "application/json",
    "Authorization": "[API_KEY]"
  }
  
  response = requests.post(url, json=payload, headers=headers)
  print(response.text)

쿼리 매개 변수

파라미터 형식 설명 예제
subject_request_id String UUIDv4 문자열  
subject_request_type String OpenGDPR 요청의 유형을 나타내는 문자열 값입니다. 현재 단수 값만 지원됩니다: "삭제", "이동성", "액세스"  
subject_identities Array 요청을 이행할 각 디바이스 ID의 유형, 값 및 형식을 설명하는 ID 객체 목록입니다. 요청에는 최대 100개의 디바이스 ID가 포함될 수 있습니다.
[
  {
    "identity_type":
"android_advertising_id", "identity_value":
"38400-8cf0-11bd-b23e-1000d", "identity_format": "raw" } ]
submitted_time   데이터 주체의 최초 요청 시간을 나타내는 RFC 3339 날짜 문자열입니다. 2010-05-25T10:00:00Z
property_id String 관련 앱을 지정하는 [플랫폼]:[긴 이름] 쌍입니다. iOS:com.myapp.xyz

샘플 출력

{
    "controller_id":"example_controller_id",
    "received_time":"2018-05-25T10:00:01Z",
    "expected_completion_time": "2018-06-24T10:00:01Z",
    "encoded_request":"<BASE64 ENCODED REQUEST>",
    "subject_request_id":"1c8b23f4-12eb-4fe8-af1c-0f72807dfec2",
    "results_url": "https://url-to-results-in-json-format",
    "api_version": "0.1.4"
  }

상태 엔드포인트

GET https://gdpr.singular.net/api/gdpr/requests/<REQUEST_ID>

사용법

이전에 보낸 요청의 현재 상태를 반환하며, 요청 ID로 식별됩니다.

샘플 쿼리

import requests
  url = "https://gdpr.singular.net/api/gdpr/requests/"
  subject_request_id = "1c8b23f4-12eb-4fe8-af1c-0f72807dfec2"
  headers = {"Authorization": "<API KEY>"}
  response = requests.get(url+subject_request_id, headers=headers)
  print(response.text)

샘플 출력

{
      "controller_id": "example_controller_id",
      "request_status": "completed",
      "expected_completion_time": "2018-06-24T10:00:01Z",
      "subject_request_id": "1c8b23f4-12eb-4fe8-af1c-0f72807dfec2",
      "api_version": "0.1.4"
  }

취소 엔드포인트

DELETE https://gdpr.singular.net/gdpr/requests/<REQUEST_ID>

사용법

이 엔드포인트를 사용하여 이전 요청을 취소합니다. 요청이 '보류 중' 상태인 경우에만 가능합니다.

샘플 쿼리

import requests
  url = "https://gdpr.singular.net/api/gdpr/requests/"
  subject_request_id = "1c8b23f4-12eb-4fe8-af1c-0f72807dfec2"
  headers = {"Authorization": "<API KEY>"}
  response = requests.delete(url+subject_request_id, headers=headers)
  print(response.text)

샘플 출력

{
    "controller_id":"example_controller_id",
    "subject_request_id":"1c8b23f4-12eb-4fe8-af1c-0f72807dfec2",
    "received_time":"2018-05-25T10:00:01Z",
    "api_version":"0.1"
  }