GDPR For Apps
GDPR For AppsGDPR For Apps
Privacy Policy CreatorCookie Banner CreatorPricingAgencyDocs

API Reference

v1

Generate GDPR-compliant privacy policies programmatically. Integrate GDPR For Apps into your own tools and workflows.

Base URL: https://gdprforapps.com/api/v1
Format: JSON
Auth: Bearer token

Authentication

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 Basic

$149 lifetime
  • • 100 generations / month
  • • HTML + Markdown output
  • • EN / PL / DE languages
  • • Mobile app clauses

API Pro

$299 lifetime
  • • 1,000 generations / month
  • • HTML + Markdown output
  • • EN / PL / DE languages
  • • Priority email support (48h SLA)
POST
/api/v1/generate

Generate a privacy policy document. Returns HTML and Markdown output.

Request Body

{
  "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"
  }
}

Response

{
  "html": "<!DOCTYPE html>...",
  "markdown": "# Privacy Policy...",
  "meta": {
    "language": "de",
    "serviceType": "saas",
    "generatedAt": "2026-03-18T09:48:00.000Z"
  }
}

Error Responses

401
Missing or invalid Authorization header / API key format
429
Rate limit exceeded for your API key tier
400
Invalid JSON body
500
Generation failed — check your request body

Code Examples

cURL

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"]
    }
  }'

JavaScript (fetch)

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

<?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'];

Reference: dataCollected values

ValueDescription
nameFull name
emailEmail address
phonePhone number
addressPostal address
paymentPayment information
ip_locationIP address and location data
cookiesCookies and tracking data
behavioralBehavioral data
accountAccount information

Ready to integrate?

Purchase an API key to start generating privacy policies programmatically.

Get API Access

GDPR For Apps generates templates, not legal advice. Consult a qualified legal professional for compliance assurance.

GDPR For Apps
GDPR For Apps

© 2026 GDPR For Apps. Architecting privacy with certainty.

Created by Obsydian.dev

Privacy Policy CreatorCookie Banner CreatorPricingAgencyDocsLegal