Developer API
Integrate AutoPersonas into your own applications and workflows with our REST API. Manage influencers, generate content, publish posts, and create videos, all programmatically.
Authentication
Navigate to Settings > API Keys to create a new API key. Include the key as a Bearer token in the Authorization header of every request:
Authorization: Bearer ap_live_...Keys are scoped, only grant the permissions each key actually needs. You can revoke or rotate keys at any time from Settings.
Base URL
https://autopersonas.com/api/v1Rate Limits
- 60 requests per minute per API key.
- Exceeding the limit returns a
429 Too Many Requestsresponse. Back off and retry after the window resets.
Scopes
Each API key is assigned one or more scopes that determine what it can access:
| Scope | Description |
|---|---|
character:read | List and view influencers and preview results |
character:write | Create, update, delete influencers; set reference images; generate previews |
content:read | List content items and batch status |
content:write | Update, delete, approve, or reject content items |
content:generate | Generate, regenerate, and create videos |
publishing:write | Publish content to social platforms; check status; retry failed publishes |
analytics:read | Dashboard stats, engagement charts, platform breakdowns |
profile:read | List profiles and connected social accounts |
profile:write | Create, update, delete profiles |
Endpoints
The API exposes 100+ endpoints grouped by resource: influencers, content, analytics, profiles, social accounts, previews, batches, publishing, social import, managed-account caption generation, media library, collaborations, and config. Selected endpoints are listed below; the full, always-current reference (with request/response schemas and live try-out) is in the Swagger UI.
| Method | Path | Scope | Description |
|---|---|---|---|
GET | /api/v1/influencers | character:read | List all influencers |
GET | /api/v1/influencers/:id | character:read | Get influencer by ID |
POST | /api/v1/influencers | character:write | Create an influencer |
PUT | /api/v1/influencers/:id | character:write | Update an influencer |
DELETE | /api/v1/influencers/:id | character:write | Delete an influencer |
POST | /api/v1/influencers/:id/references | character:write | Set reference images |
POST | /api/v1/influencers/:id/generate-references | character:write | Generate 4-view reference pack |
GET | /api/v1/content | content:read | List content items |
GET | /api/v1/content/:id | content:read | Get a content item |
POST | /api/v1/content/generate | content:generate | Generate a content batch |
POST | /api/v1/content/:id/regenerate | content:generate | Regenerate a content item |
POST | /api/v1/content/:id/video | content:generate | Generate video for a content item |
POST | /api/v1/content/:id/approve | content:write | Approve for publishing |
POST | /api/v1/content/:id/reject | content:write | Reject a content item |
POST | /api/v1/content/:id/publish | publishing:write | Publish a content item |
GET | /api/v1/content/:id/publish/status | publishing:write | Get publish status |
POST | /api/v1/content/:id/publish/retry | publishing:write | Retry a failed publish |
GET | /api/v1/batches/:id | content:read | Get a generation batch status |
GET | /api/v1/analytics/stats | analytics:read | Dashboard stats |
GET | /api/v1/analytics/engagement | analytics:read | Engagement chart data |
GET | /api/v1/analytics/top-content | analytics:read | Top performing content |
GET | /api/v1/analytics/platforms | analytics:read | Platform breakdown |
GET | /api/v1/profiles | profile:read | List profiles |
GET | /api/v1/accounts | profile:read | List connected social accounts |
GET | /api/v1/config/features | character:read | Feature-flag map for this environment |
GET | /api/v1/config/pricing | character:read | Published rate table for image, video, and per-action pricing |
GET | /api/v1/config/aesthetic-grades | character:read | Catalog of the 10 aesthetic grade presets |
POST | /api/v1/characters/analyze-photos | character:write | Analyze uploaded photos and extract base prompt + wardrobe |
POST | /api/v1/characters/:id/voice-samples | character:write | Upload voice sample audio for cloning |
DELETE | /api/v1/characters/:id/voice-samples/:audioUrl | character:write | Remove a voice sample |
GET | /api/v1/characters/:id/voice-profile | character:read | Voice profile (samples and clone status) |
POST | /api/v1/characters/:id/wardrobe/generate | character:write | Generate wardrobe items from the character's base prompt |
PATCH | /api/v1/characters/:id/ingredients | character:write | Patch ingredient library fields without overwriting siblings |
POST | /api/v1/profiles/:profileId/content-directions/draft | content:generate | Draft content directions from a freeform prompt |
POST | /api/v1/content/:id/fine-tune-caption | content:write | Regenerate the caption only, image untouched |
POST | /api/v1/content/:id/unpublish | publishing:write | Cancel a scheduled publish or pull a published item |
POST | /api/v1/content/:id/video-comparison | content:generate | Generate video variants for A/B comparison |
POST | /api/v1/collaborations | character:write | Create a multi-character collaboration |
GET | /api/v1/collaborations | character:read | List collaborations |
POST | /api/v1/social-import/x | content:write | Import historical posts from a connected X account |
POST | /api/v1/social-import/tiktok | content:write | Import historical videos from a connected TikTok account |
POST | /api/v1/social-import/instagram | content:write | Instagram import (gated, pending Meta scope upgrade) |
GET | /api/v1/social-import/jobs/:jobId | content:read | Poll the status of an import job |
POST | /api/v1/profiles/:profileId/generate-caption | content:generate | Voice-grounded caption for a managed profile (image URL in) |
GET | /api/v1/profiles/:profileId/voice-stats | content:read | Voice corpus stats (count + recent samples) |
GET | /api/v1/profiles/:profileId/media-library | content:read | List imported media for a profile |
Error Codes
| Code | Meaning |
|---|---|
401 | Missing or invalid API key |
403 | Key lacks required scope |
404 | Resource not found |
429 | Rate limit exceeded |
500 | Internal server error |
Code Examples
List Influencers
curl https://autopersonas.com/api/v1/influencers \
-H "Authorization: Bearer ap_live_YOUR_KEY"Generate Content
curl -X POST https://autopersonas.com/api/v1/content/generate \
-H "Authorization: Bearer ap_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"profileId": "prof_abc123",
"count": 3
}'Publish a Post
curl -X POST https://autopersonas.com/api/v1/content/CONTENT_ID/publish \
-H "Authorization: Bearer ap_live_YOUR_KEY"Interactive Docs
Prefer to explore the API visually? Open the Swagger UI to browse every endpoint, try requests live, inspect response schemas, and copy ready-made code snippets.