All integrations
Live today

PolicifyAI on REST API

Programmatic policy + consent - versioned & scoped.

Generate, publish and manage policies and pull consent logs from your own backend. Versioned under /api/v1, authenticated with API keys sent as a Bearer token, rate-limited, and paginated. Create and revoke keys in Dashboard → Integrations (agencies: Agency → API & Webhooks). Available on all paid plans.

Set up in 10 minutes

10 minutes
  1. 1Dashboard → Integrations → API keys → Create key. (Agency workspaces: Agency → API & Webhooks.)
  2. 2Send the key as a Bearer token over HTTPS.
  3. 3Call /api/v1/policies/generate to create a policy, then /api/v1/policies/{id}/publish to sync connected sites + fire webhooks.
  4. 4Pull /api/v1/consent/logs for audit exports (privacy-safe - hashed identifiers only).
Generate a policy - cURL
curl https://policifyai.com/api/v1/policies/generate \
  -H "Authorization: Bearer $POLICIFY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "privacy_policy",
    "jurisdiction": ["GB", "EU"],
    "language": "en",
    "tone": "plain",
    "custom_clauses": ["We never sell personal data."]
  }'
Response
{
  "id": "pol_abc123",
  "type": "privacy_policy",
  "version": 1,
  "hosted_url": "https://policifyai.com/p/abc123",
  "html": "<h1>Privacy Policy</h1> ...",
  "markdown": "# Privacy Policy ...",
  "created_at": "2026-06-22T09:00:00Z"
}
Pull consent logs - Python
import requests

r = requests.get(
    "https://policifyai.com/api/v1/consent/logs",
    headers={"Authorization": f"Bearer {API_KEY}"},
    params={"from": "2026-06-01", "to": "2026-06-22", "limit": 100},
    timeout=15,
)
r.raise_for_status()
page = r.json()
# page["data"] -> rows; page["next_cursor"] -> pass back as ?cursor= for next page
Minimal JS client - fetch
const res = await fetch('https://policifyai.com/api/v1/policies', {
  headers: { Authorization: `Bearer ${process.env.POLICIFY_API_KEY}` },
})
if (!res.ok) throw new Error(`Policify API ${res.status}`)
const { data, next_cursor } = await res.json()

Why PolicifyAI

Frequently asked

What are the rate limits?+

Policy generation is limited to 20 requests/minute per key; other endpoints have generous per-key limits returned in the response headers. Generations also count against your plan's normal quota.

Is there an OpenAPI spec?+

Yes - the OpenAPI spec is served at /api/v1/openapi, and the full endpoint reference lives at policifyai.com/docs/api.

Also available