UK API Reference
Complete reference for GET /v1/uk/persona.
Base URL
https://api.personagen.devAuthentication
API key (recommended)
X-API-Key: your-api-key-hereDemo mode
X-Demo: trueDemo mode is rate-limited to 25 requests/hour per IP.
Endpoint
Generate one UK persona with 77 dimensions.
GET /v1/uk/personaQuery parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
seed | string | No | Deterministic seed. Same seed + same route = same output. |
Request examples
cURL
curl -X GET "https://api.personagen.dev/v1/uk/persona" \
-H "X-API-Key: your-api-key-here"
curl -X GET "https://api.personagen.dev/v1/uk/persona?seed=test-123" \
-H "X-API-Key: your-api-key-here"
curl -X GET "https://api.personagen.dev/v1/uk/persona" \
-H "X-Demo: true"Success response
{
"success": true,
"data": {
"name": {
"first_name": "Eleanor",
"last_name": "Ahmed"
},
"identity": {
"gender": "female",
"political_orientation": "labour_mainstream"
},
"origin": {
"region": "london",
"local_area": "greater_london"
},
"work": {
"income_band": "35k_to_50k_gbp",
"occupation_domain": "business_finance"
},
"behavior": {
"interests": ["watching_soccer", "concert_going", "home_improvement"]
},
"decisioning": {
"message_processing_style": "balanced_mixed",
"communication_preference": "concise_direct",
"purchase_risk_tolerance": "risk_balanced"
}
},
"metadata": {
"id": "persona_xxx",
"version": "1.1.x",
"generated_at": "2026-03-05T12:00:00.000Z",
"seed": "test-123",
"country": "uk",
"usage": {
"requests_remaining": 4999,
"reset_date": "2026-04-01T00:00:00.000Z"
}
}
}Status Codes
Success
| Status | Description |
|---|---|
200 OK | Persona generated successfully |
Client Errors
| Status | Code | Description |
|---|---|---|
400 Bad Request | INVALID_SEED | Seed parameter is invalid (too long, invalid characters) |
401 Unauthorized | MISSING_API_KEY | No API key or demo header provided |
401 Unauthorized | INVALID_API_KEY | API key is invalid or revoked |
403 Forbidden | API_KEY_DISABLED | API key has been disabled |
429 Too Many Requests | RATE_LIMIT_EXCEEDED | Rate limit exceeded (demo or API key) |
429 Too Many Requests | QUOTA_EXCEEDED | Monthly quota exhausted |
Server Errors
| Status | Code | Description |
|---|---|---|
500 Internal Server Error | GENERATION_FAILED | Temporary generation failure |
503 Service Unavailable | SERVICE_UNAVAILABLE | Service temporarily unavailable |
Error Response Format
{
"success": false,
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded. Please wait before making another request.",
"details": {
"retry_after_seconds": 60
}
}
}Error Fields
| Field | Type | Description |
|---|---|---|
code | string | Machine-readable error code |
message | string | Human-readable error description |
details | object | Additional context (optional) |
Rate Limit Error Example
{
"success": false,
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Demo mode rate limit exceeded. Maximum 10 requests per hour per IP.",
"details": {
"retry_after_seconds": 3420,
"limit": 10,
"window": "hour"
}
}
}Quota Exceeded Example
{
"success": false,
"error": {
"code": "QUOTA_EXCEEDED",
"message": "Monthly quota exhausted. Quota resets on 2026-04-01.",
"details": {
"reset_date": "2026-04-01T00:00:00.000Z",
"requests_used": 5000,
"requests_limit": 5000
}
}
}Rate limits
Demo mode
- Limit: 25 requests/hour/IP
API key
- Default: 5,000 requests/month/key
- Higher limits: request in dashboard
Usage metadata
{
"metadata": {
"usage": {
"requests_remaining": 4999,
"reset_date": "2026-04-01T00:00:00.000Z"
}
}
}Notes
- Route-country is fixed: this endpoint always returns UK personas.
- Legacy docs URLs redirect to US pages.
- Full schema details: UK Persona Structure.
Last updated on