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. This is an asynchronous operation — the response includes a policy_id and status of processing. Poll the retrieve endpoint or use webhooks to know when generation is complete.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
| policy_type | string | ✓ | Slug of the policy type, e.g. privacy-policy |
| business_name | string | ✓ | Name of the business |
| domain | string | ✓ | Website URL, e.g. https://example.com |
| jurisdiction | string | ✓ | ISO 3166-1 country code, e.g. GB, US, DE |
| industry | string | Business sector, e.g. ecommerce, saas, healthcare | |
| language | string | ISO 639-1 language code, e.g. en, de, fr (default: en) | |
| context | string | Additional context to improve accuracy | |
| client_id | string | Associate with an agency client |
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",
"business_name": "Acme Ltd",
"domain": "https://acme.com",
"jurisdiction": "GB",
"language": "en"
}'Response
{
"policy_id": "pol_abc123",
"status": "processing",
"estimated_seconds": 45
}List policies
/policiesReturns a paginated list of all policies in your workspace.
Query parameters
pagePage number (default: 1)
limitResults per page, max 100 (default: 20)
client_idFilter by client ID
policy_typeFilter by policy type slug
statusFilter by status: processing | ready | failed
Retrieve a policy
/policies/{id}Returns a single policy including its full HTML content when status is ready.
{
"policy_id": "pol_abc123",
"status": "ready",
"policy_type": "privacy-policy",
"business_name": "Acme Ltd",
"domain": "https://acme.com",
"jurisdiction": "GB",
"language": "en",
"content_html": "<h1>Privacy Policy</h1>...",
"created_at": "2025-01-01T12:00:00Z",
"updated_at": "2025-01-01T12:01:30Z"
}Update a policy
/policies/{id}Update a policy's metadata or content. Only the fields you include are changed.
{
"content_html": "<h1>Updated Privacy Policy</h1>..."
}Delete a policy
/policies/{id}Permanently deletes a policy. This action cannot be undone. Returns 204 No Content on success.
Policy type slugs
Common slugs for the policy_type field:
For the full list of 120+ slugs see Policy types.