Generate GDPR-compliant privacy policies programmatically. Integrate GDPR For Apps into your own tools and workflows.
All API requests require an API key passed as a Bearer token in the Authorization header.
# All requests must include:
Authorization: Bearer GDPR-API-BASIC-xxxx-xxxx-xxxx
/api/v1/generateGenerate a privacy policy document. Returns HTML and Markdown output.
{
"basics": {
"companyName": "Acme Inc.",
"websiteUrl": "https://acme.com",
"contactEmail": "privacy@acme.com",
"country": "Germany"
},
"documentLanguage": "de", // "en" | "pl" | "de"
"serviceType": "saas", // "blog" | "ecommerce" | "saas" | "mobile" | "marketplace"
"mobileOptions": { // only needed if serviceType = "mobile"
"mobileSubType": "both", // "ios" | "android" | "both"
"hasPushNotifications": true,
"hasInAppPurchases": false,
"devicePermissions": ["camera", "location"],
"crashReporting": ["firebase", "sentry"]
},
"dataCollected": ["email", "ip_location", "behavioral"],
"thirdPartyServices": {
"analytics": ["Google Analytics 4"],
"payments": ["Stripe"],
"marketing": [],
"hosting": ["Vercel"],
"socialLogin": [],
"support": []
},
"cookieSettings": {
"types": ["necessary", "analytics"],
"retention": "1year",
"hasConsentManager": true
},
"userRights": {
"rights": ["access", "rectification", "erasure", "portability", "objection"],
"dpContact": "dpo@acme.com"
}
}{
"html": "<!DOCTYPE html>...",
"markdown": "# Privacy Policy...",
"meta": {
"language": "de",
"serviceType": "saas",
"generatedAt": "2026-03-18T09:48:00.000Z"
}
}curl -X POST https://gdprforapps.com/api/v1/generate \
-H "Authorization: Bearer GDPR-API-BASIC-xxxx-xxxx-xxxx" \
-H "Content-Type: application/json" \
-d '{
"basics": {
"companyName": "My Company",
"websiteUrl": "https://mycompany.com",
"contactEmail": "privacy@mycompany.com",
"country": "Germany"
},
"documentLanguage": "en",
"serviceType": "saas",
"dataCollected": ["email", "account"],
"userRights": {
"rights": ["access", "rectification", "erasure", "portability", "objection"]
}
}'const response = await fetch('https://gdprforapps.com/api/v1/generate', {
method: 'POST',
headers: {
'Authorization': 'Bearer GDPR-API-BASIC-xxxx-xxxx-xxxx',
'Content-Type': 'application/json',
},
body: JSON.stringify({
basics: {
companyName: 'My Company',
websiteUrl: 'https://mycompany.com',
contactEmail: 'privacy@mycompany.com',
country: 'Poland',
},
documentLanguage: 'pl',
serviceType: 'saas',
dataCollected: ['email', 'account'],
userRights: {
rights: ['access', 'rectification', 'erasure', 'portability', 'objection'],
},
}),
});
const { html, markdown } = await response.json();
console.log('Generated HTML length:', html.length);<?php
$data = [
'basics' => [
'companyName' => 'My Company',
'websiteUrl' => 'https://mycompany.com',
'contactEmail' => 'privacy@mycompany.com',
'country' => 'Germany',
],
'documentLanguage' => 'de',
'serviceType' => 'ecommerce',
'dataCollected' => ['email', 'payment', 'address'],
'userRights' => [
'rights' => ['access', 'rectification', 'erasure', 'portability', 'objection'],
],
];
$ch = curl_init('https://gdprforapps.com/api/v1/generate');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer GDPR-API-BASIC-xxxx-xxxx-xxxx',
'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
echo $response['html'];| Value | Description |
|---|---|
| name | Full name |
| Email address | |
| phone | Phone number |
| address | Postal address |
| payment | Payment information |
| ip_location | IP address and location data |
| cookies | Cookies and tracking data |
| behavioral | Behavioral data |
| account | Account information |
Purchase an API key to start generating privacy policies programmatically.
Get API Access