API ReferenceapiidentityPOST /v1/erasure-requests

POST /v1/erasure-requests

Service: identity · operationId: (none)

Create a GDPR erasure request for the authenticated user or another user as an identity admin

Required scopes

(no scope declared — review service config)

Request body

{
  "type": "object",
  "properties": {
    "user_id": {
      "type": "string",
      "minLength": 1,
      "description": "Target user ID; optional for self-service"
    },
    "reason": {
      "type": "string",
      "minLength": 1,
      "description": "Why the erasure was requested"
    }
  },
  "required": [
    "reason"
  ]
}

Responses

201 Erasure request created

{
  "type": "object",
  "properties": {
    "request_id": {
      "type": "string",
      "format": "uuid"
    },
    "user_id": {
      "type": "string"
    },
    "requested_by": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "in_progress",
        "completed"
      ]
    },
    "reason": {
      "type": "string"
    },
    "services_erased": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "partial_failures": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "service": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "service",
          "message"
        ]
      }
    },
    "requested_at": {
      "type": "string",
      "format": "date-time"
    },
    "completed_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    }
  },
  "required": [
    "request_id",
    "user_id",
    "requested_by",
    "status",
    "reason",
    "services_erased",
    "partial_failures",
    "requested_at",
    "completed_at"
  ]
}

400 Validation error

{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "error",
    "message"
  ]
}

403 Forbidden

{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "error",
    "message"
  ]
}

409 Active request already exists

{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "error",
    "message"
  ]
}

Example

curl -X POST https://identity.platform.loop.health/v1/erasure-requests \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ ... }'