Skip to content

GDPR

intermediate

Manage consent, data export, erasure requests, and processing registry for GDPR compliance.

List consents

GET/v1/gdpr/consents

List all consent records for the authenticated user.

200Response
[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "user_id": "user-uuid",
    "consent_type": "memory_storage",
    "granted": true,
    "ip_address": "203.0.113.42",
    "user_agent": "Mozilla/5.0...",
    "version": "1.0",
    "granted_at": "2026-01-15T10:00:00Z",
    "withdrawn_at": null
  }
]

POST/v1/gdpr/consents

Grant consent for a specific processing purpose.

consent_typestringrequired

Consent type: memory_storage, analytics, marketing, etc.

grantedbooleanrequired

Whether consent is granted.

200Response
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "user_id": "user-uuid",
  "consent_type": "analytics",
  "granted": true,
  "ip_address": "203.0.113.42",
  "user_agent": "Mozilla/5.0...",
  "version": "1.0",
  "granted_at": "2026-01-15T10:00:00Z",
  "withdrawn_at": null
}

DELETE/v1/gdpr/consents/{consent_type}

Withdraw a previously granted consent by type.

consent_typestringrequired

The consent type to withdraw (path parameter).

200Response
{
  "message": "Consent withdrawn"
}
Info

Withdrawing memory_storage consent may trigger automatic data erasure depending on your organization's configuration.


Request data export

POST/v1/gdpr/export

Request a full export of all your data (GDPR Article 20 — Right to data portability).

200Response
{
  "request_id": "exp_abc123",
  "status": "processing",
  "estimated_completion": "2026-01-15T10:30:00Z"
}

Check export status

GET/v1/gdpr/export/{request_id}

Check the status of a data export request.

request_idstringrequired

Export request ID (path parameter).

200Response
{
  "request_id": "exp_abc123",
  "status": "completed",
  "created_at": "2026-01-15T10:00:00Z",
  "download_url": "https://exports.engramma-memory.com/exp_abc123.json.gz"
}
Warning

Download links expire after 24 hours. Request a new export if the link has expired.


Request erasure

POST/v1/gdpr/erasure

Request permanent deletion of all your data (GDPR Article 17 — Right to erasure). Subject to a cooling-off period.

reasonstring | null

Optional reason for the erasure request.

200Response
{
  "request_id": "era_abc123",
  "status": "scheduled",
  "cooling_period_ends": "2026-01-22T00:00:00Z"
}
Danger

Erasure is permanent and irreversible after the cooling period. You can cancel before the cooling period ends.


Cancel erasure

DELETE/v1/gdpr/erasure/{request_id}

Cancel a pending erasure request before the cooling period ends.

request_idstringrequired

Erasure request ID (path parameter).

200Response
{
  "message": "Erasure request cancelled"
}

Processing registry

GET/v1/gdpr/processing-registry

View the complete registry of how your data is processed (GDPR Article 30).

200Response
[
  {
    "name": "Memory storage and retrieval",
    "purpose": "Store and retrieve user memories via cognitive engine",
    "legal_basis": "consent",
    "data_categories": [
      "text content",
      "metadata",
      "embeddings"
    ],
    "recipients": [
      "Internal processing systems"
    ],
    "retention_period": "Until account deletion or erasure request",
    "international_transfers": false,
    "safeguards": "Data encrypted at rest and in transit"
  }
]

Next steps