Skip to Content
United KingdomAPI Reference

UK API Reference

Complete reference for GET /v1/uk/persona.

Base URL

https://api.personagen.dev

Authentication

X-API-Key: your-api-key-here

Demo mode

X-Demo: true

Demo mode is rate-limited to 25 requests/hour per IP.

Endpoint

Generate one UK persona with 77 dimensions.

GET /v1/uk/persona

Query parameters

ParameterTypeRequiredDescription
seedstringNoDeterministic seed. Same seed + same route = same output.

Request examples

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

StatusDescription
200 OKPersona generated successfully

Client Errors

StatusCodeDescription
400 Bad RequestINVALID_SEEDSeed parameter is invalid (too long, invalid characters)
401 UnauthorizedMISSING_API_KEYNo API key or demo header provided
401 UnauthorizedINVALID_API_KEYAPI key is invalid or revoked
403 ForbiddenAPI_KEY_DISABLEDAPI key has been disabled
429 Too Many RequestsRATE_LIMIT_EXCEEDEDRate limit exceeded (demo or API key)
429 Too Many RequestsQUOTA_EXCEEDEDMonthly quota exhausted

Server Errors

StatusCodeDescription
500 Internal Server ErrorGENERATION_FAILEDTemporary generation failure
503 Service UnavailableSERVICE_UNAVAILABLEService 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

FieldTypeDescription
codestringMachine-readable error code
messagestringHuman-readable error description
detailsobjectAdditional 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