API reference
Policy Endpoints
All endpoints are relative to https://policifyai.com/api/v1. All requests require a valid Bearer token. See Authentication.
Generate a policy
/policies/generateGenerates a new policy using AI and returns it immediately - this call is synchronous (it can take up to 120 seconds; keep your client timeout above that). Generation counts against your normal quota (agency pooled cap or per-user quota) and delivers a policy.created webhook.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
| policy_type | string | ✓ | Slug of the policy type, e.g. privacy-policy |
| jurisdiction | string | ✓ | ISO 3166-1 country code (or US state code), e.g. GB, US-CA, EU |
| language | string | ISO 639-1 language code, e.g. en, de, fr (default: en) | |
| business_name | string | Name of the business | |
| domain | string | Website URL, e.g. https://example.com | |
| industry | string | Business sector, e.g. ecommerce, saas, healthcare | |
| business_type | string | Legal structure, e.g. limited-company, sole-trader |
Example request
curl -X POST https://policifyai.com/api/v1/policies/generate \
-H "Authorization: Bearer pak_live_your_key" \
-H "Content-Type: application/json" \
-d '{
"policy_type": "privacy-policy",
"jurisdiction": "GB",
"business_name": "Acme Ltd",
"domain": "https://acme.com",
"language": "en"
}'Response
{
"id": "3f4a9b12-...",
"policy_type": "privacy-policy",
"jurisdiction": "GB",
"language": "en",
"content": "## Privacy Policy\n\nThis Privacy Policy...",
"created_at": "2026-05-26T14:30:00.000Z",
"policies_remaining": 42
}Bulk generate
/policies/bulkGenerates up to 20 policies in a single request, passed as an items array - each item takes the same fields as /policies/generate. Items beyond your remaining quota are returned with status skipped rather than failing the whole batch. Limited to 5 requests/minute and 20 batches/day per key.
{
"batch_id": "batch_xyz",
"total": 3,
"created": 3,
"failed": 0,
"results": [
{ "id": "pol_...", "policy_type": "privacy-policy", "status": "created" }
]
}List policies
/policiesReturns every published policy on your account, with a ready-to-use public URL for each. There is no pagination or filtering - the endpoint returns your full list in one response.
{
"count": 2,
"policies": [
{
"id": "3f4a9b12-...",
"policy_type": "privacy-policy",
"title": "Privacy Policy",
"jurisdiction": "GB",
"language": "en",
"updated_at": "2026-05-26T14:30:00.000Z",
"url": "https://policifyai.com/policy/privacy-policy/3f4a9b12-...?token=..."
}
]
}Publish a policy
/policies/{id}/publishPublishes a single policy you own, generating (or reusing) its public hosted URL, and fires a policy.published webhook to every subscribed endpoint.
{
"id": "3f4a9b12-...",
"hosted_url": "https://policifyai.com/policy/privacy-policy/3f4a9b12-...?token=...",
"published_at": "2026-05-26T14:31:00.000Z",
"webhook_deliveries_queued": 1
}Consent logs
/consent/logsReturns recorded cookie/consent decisions for a consent banner - for audit trails and DSAR responses.
Query parameters
banner_idThe consent banner to fetch logs for
from / toISO date range to filter by
limitResults per page, 1–200
cursorPagination cursor from a previous response
OpenAPI spec
/openapiReturns the full OpenAPI 3.1 specification for this API - import it into Postman, Insomnia, or a codegen tool.
Policy type slugs
Common slugs for the policy_type field:
For the full list of 120+ slugs see Policy types.