Browse Security Audit Privacy

stable · api · 0.1.0

Create a verified Privacy Request

POST /api/v1/privacy-requests

Capability Domain: Security Audit Privacy

Authentication

platformSession — Requires recent authentication.

Scope: None

Parameters and request body

  • X-Correlation-ID — header, optional
    X-Correlation-ID schema
    {
        "type": "string",
        "format": "uuid"
    }

Request schema

application/json

application/json request schema
{
    "type": "object",
    "additionalProperties": false,
    "required": [
        "type"
    ],
    "properties": {
        "type": {
            "type": "string",
            "enum": [
                "access",
                "export",
                "correction",
                "deletion",
                "stop_processing"
            ]
        },
        "details": {
            "type": [
                "string",
                "null"
            ],
            "maxLength": 4000
        }
    }
}

application/json request example

application/json request example
{
    "type": "export",
    "details": "Please provide my MiniCenter-held data."
}

Responses and errors

StatusDescription
202Verified Privacy Request accepted
401Invalid or revoked Project Credential
403Project Credential lacks the required scope
422Request violates the public contract

202 schema

202 response schema
{
    "type": "object",
    "required": [
        "data"
    ],
    "properties": {
        "data": {
            "type": "object",
            "required": [
                "id",
                "platform_account_id",
                "type",
                "status",
                "acknowledgement_due_at",
                "response_due_at",
                "progress_summary",
                "progress_at",
                "extended_response_due_at",
                "closed_unverified_at",
                "fallback_contact",
                "legal_holds",
                "required_retention"
            ],
            "properties": {
                "id": {
                    "type": "string",
                    "format": "uuid"
                },
                "platform_account_id": {
                    "type": "string",
                    "format": "uuid"
                },
                "type": {
                    "type": "string",
                    "enum": [
                        "access",
                        "export",
                        "correction",
                        "deletion",
                        "stop_processing"
                    ]
                },
                "status": {
                    "type": "string",
                    "enum": [
                        "pending_verification",
                        "verified",
                        "in_progress",
                        "completed",
                        "closed_unverified"
                    ]
                },
                "acknowledgement_due_at": {
                    "type": "string",
                    "format": "date-time"
                },
                "response_due_at": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "format": "date-time"
                },
                "progress_summary": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "progress_at": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "format": "date-time"
                },
                "extended_response_due_at": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "format": "date-time"
                },
                "closed_unverified_at": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "format": "date-time"
                },
                "fallback_contact": {
                    "type": "string",
                    "format": "email"
                },
                "legal_holds": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "required": [
                            "purpose",
                            "reason",
                            "expires_at"
                        ],
                        "properties": {
                            "purpose": {
                                "type": "string"
                            },
                            "reason": {
                                "type": "string"
                            },
                            "expires_at": {
                                "type": "string",
                                "format": "date-time"
                            }
                        }
                    }
                },
                "required_retention": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "required": [
                            "project_client_id",
                            "reason",
                            "until"
                        ],
                        "properties": {
                            "project_client_id": {
                                "type": "string",
                                "format": "uuid"
                            },
                            "reason": {
                                "type": "string"
                            },
                            "until": {
                                "type": "string",
                                "format": "date-time"
                            }
                        }
                    }
                },
                "account_deletion": {
                    "type": "object",
                    "required": [
                        "id",
                        "status",
                        "deadline_at"
                    ],
                    "properties": {
                        "id": {
                            "type": "string",
                            "format": "uuid"
                        },
                        "status": {
                            "type": "string",
                            "enum": [
                                "pending",
                                "completed"
                            ]
                        },
                        "deadline_at": {
                            "type": "string",
                            "format": "date-time"
                        }
                    }
                }
            }
        }
    }
}

401 schema

401 response schema
{
    "type": "object",
    "required": [
        "error"
    ],
    "properties": {
        "error": {
            "type": "object",
            "required": [
                "code",
                "message",
                "retryable",
                "correlation_id",
                "details"
            ],
            "properties": {
                "code": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                },
                "retryable": {
                    "type": "boolean"
                },
                "correlation_id": {
                    "type": "string",
                    "format": "uuid"
                },
                "details": {
                    "type": "object"
                }
            }
        }
    }
}

403 schema

403 response schema
{
    "type": "object",
    "required": [
        "error"
    ],
    "properties": {
        "error": {
            "type": "object",
            "required": [
                "code",
                "message",
                "retryable",
                "correlation_id",
                "details"
            ],
            "properties": {
                "code": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                },
                "retryable": {
                    "type": "boolean"
                },
                "correlation_id": {
                    "type": "string",
                    "format": "uuid"
                },
                "details": {
                    "type": "object"
                }
            }
        }
    }
}

422 schema

422 response schema
{
    "type": "object",
    "required": [
        "error"
    ],
    "properties": {
        "error": {
            "type": "object",
            "required": [
                "code",
                "message",
                "retryable",
                "correlation_id",
                "details"
            ],
            "properties": {
                "code": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                },
                "retryable": {
                    "type": "boolean"
                },
                "correlation_id": {
                    "type": "string",
                    "format": "uuid"
                },
                "details": {
                    "type": "object"
                }
            }
        }
    }
}

202 example

202 response example
{
    "data": {
        "id": "8b000000-0000-4000-8000-000000000001",
        "platform_account_id": "30000000-0000-4000-8000-000000000003",
        "type": "export",
        "status": "verified",
        "acknowledgement_due_at": "2026-08-08T01:00:00Z",
        "response_due_at": "2026-08-31T01:00:00Z",
        "progress_summary": null,
        "progress_at": null,
        "extended_response_due_at": null,
        "closed_unverified_at": null,
        "fallback_contact": "legal@otus.tw",
        "legal_holds": [],
        "required_retention": []
    }
}

Idempotency

Creating a request is not idempotent. Submit once after recent authentication, then retain the returned request id.