Skip to content

Your Data Rights

beginner

Exercise your GDPR rights with Engramma: data export, erasure, consent management, and the processing registry — step by step.

Overview

Under the General Data Protection Regulation (GDPR), you have specific rights over your personal data. Engramma provides full API access to exercise each right programmatically or via the dashboard.

RightGDPR ArticleHow to exercise
AccessArt. 15Data export
RectificationArt. 16Update memories via store/forget
ErasureArt. 17Request erasure
Restrict processingArt. 18Revoke consent
Data portabilityArt. 20Data export (JSON/CSV)
ObjectArt. 21Revoke consent

Engramma processes your data based on explicit consent. You can view, grant, and revoke consent at any time.

View your consents

import os
from engramma_cloud import EngrammaClient

client = EngrammaClient(api_key=os.environ['ENGRAMMA_API_KEY'])

consents = client.gdpr.consents()
for c in consents:
    status = 'granted' if c.granted else 'not granted'
    print(f'{c.purpose}: {status}')
    if c.expires_at:
        print(f'  Expires: {c.expires_at}')
PurposeDescriptionRequired
memory_storageStore and process memories for retrievalYes (core service)
analyticsAnonymous usage analytics for service improvementNo
marketingProduct updates and feature announcementsNo
third_party_sharingShare anonymized data with research partnersNo
# Grant consent with optional expiration
client.gdpr.grant_consent(
    purpose='analytics',
    expires_in_days=365  # auto-expires after 1 year
)
# Revoke a specific consent
client.gdpr.revoke_consent(consent_id='consent_abc123')

# Impact: data processing for that purpose stops within 24 hours
Warning

Revoking memory_storage consent triggers an automatic data erasure request. Your memories will be queued for permanent deletion.


Export your data

Request a complete export of all your data in JSON or CSV format (GDPR Article 20 — Right to data portability).

Request an export

# Request a full data export
export_req = client.gdpr.export(
    format='json',
    include=['memories', 'metadata', 'causal_links', 'usage']
)
print(f'Export ID: {export_req.export_id}')
print(f'Estimated time: {export_req.estimated_time_minutes} minutes')
print(f'Will notify: {export_req.notify_email}')

Data categories

CategoryContents
memoriesAll stored memory patterns with text and embeddings
metadataTags, importance scores, creation dates
causal_linksCausal relationships between memories
usageAPI call history, timestamps, operations performed

Check export status

# Check if the export is ready
status = client.gdpr.export_status(export_id='exp_abc123')
print(f'Status: {status.status}')  # processing, completed, or failed

if status.status == 'completed':
    print(f'Download: {status.download_url}')
    print(f'Size: {status.size_mb} MB')
    print(f'Expires: {status.download_expires_at}')
Info

Download links expire after 24 hours. You'll receive an email notification when the export is ready.


Request erasure

Request permanent deletion of all your data (GDPR Article 17 — Right to erasure). This is irreversible after the 7-day safety window.

Submit an erasure request

# Request data erasure
erasure = client.gdpr.erasure(
    confirm=True,
    reason='No longer using the service'
)
print(f'Erasure ID: {erasure.erasure_id}')
print(f'Scheduled for: {erasure.execution_at}')
print(f'Cancel before: {erasure.cancellation_deadline}')
print(f'Data affected:')
print(f'  Memories: {erasure.data_affected.memories}')
print(f'  Causal links: {erasure.data_affected.causal_links}')

What gets deleted

DataDeletedTimeline
All memory patternsYesAt execution date
Causal linksYesAt execution date
Metadata recordsYesAt execution date
Export filesYesAt execution date
AccountYesAt execution date
Billing recordsRetained 7 yearsLegal obligation
Audit logsRetained 90 daysSecurity requirement

Cancel an erasure request

You have 7 days to change your mind:

# Cancel before the deadline
client.gdpr.cancel_erasure(erasure_id='era_abc123')
print('Erasure cancelled — your data is safe')
Danger

After the 7-day window, erasure is permanent and cannot be reversed. All data is cryptographically shredded and unrecoverable.


Processing registry

View exactly how your data is processed (GDPR Article 30):

registry = client.gdpr.processing_registry()
print(f'Controller: {registry.controller}')
print(f'DPO contact: {registry.dpo_contact}')

for activity in registry.processing_activities:
    print(f'\nPurpose: {activity.purpose}')
    print(f'  Legal basis: {activity.legal_basis}')
    print(f'  Data categories: {activity.data_categories}')
    print(f'  Retention: {activity.retention}')
    print(f'  EU transfers: {activity.transfers_outside_eu}')

Contact the DPO

For any data protection question not covered by the API:

ChannelContact
Email[email protected]
Response timeWithin 72 hours
Supervisory authorityCNIL (France)

Next steps