The Repagio API
Convert long-form content, manage your source library, and check plan usage directly from your own tools, scripts, or the WordPress plugin.
Getting started
API keys are available on every plan, including free. Generations made through the API count against the same quota as the web app: Free includes 2 lifetime generations, Creator includes 20 per month, and Pro and Agency are unlimited. Brand voice and the more capable model apply on Pro and Agency.
- Step 1 — Create a key
Open Settings → API Keys and choose “Create API Key”. Your key is shown exactly once at creation — we only store a hash of it, so it can never be retrieved again. Lost a key? Revoke it and create a new one.
- Step 2 — Base URL
All endpoints live under
https://repagify.afriflare.com/api/v1 - Step 3 — Authenticate
Send your key on every request as a Bearer token:
Endpoints
Returns the account behind the API key and its current usage.
| string | The account email address. | |
| plan_tier | string | free, creator, pro, or agency. |
| is_admin | boolean | Whether the account has admin access. |
| limit_type | string | lifetime, monthly, or unlimited. |
| conversions_used | number | Conversions counted in the current window. |
| conversion_limit | number | null | Null when the plan is unlimited. |
| conversions_remaining | number | null | Null when the plan is unlimited. |
Converts long-form content into a finished piece. Generations count against the same plan quota as the web app, and brand voice is applied automatically on Pro and Agency.
| text | string | The source content — 100 to 50,000 characters. |
| output_type | string | blog, linkedin, twitter, or newsletter. |
| tone | string | professional, conversational, authoritative, casual, or inspirational. |
| keyword | string? | Optional focus keyword to weave in. |
| source_id | string? | Optional source to attach the conversion to. |
| content | string | The generated content. |
| output_type | string | Echo of the requested format. |
| tone | string | Echo of the requested tone. |
| word_count | number | Word count of the generated content. |
| conversion_id | string | ID of the saved conversion. |
Lists the sources saved on the account, newest first.
| limit | number? | Defaults to 25, maximum 100. |
| offset | number? | Number of rows to skip. Defaults to 0. |
| sources | array | Each item has id, title, source_type, word_count, and created_at. |
Creates a new source in the account's library.
| title | string | Name of the source. |
| content | string | The full source text. |
| source_type | string | book, article, document, url, or transcript. |
| description | string? | Optional short description. |
| source | object | The newly created source. |
Rate limits
60 / minute
Read endpoints — GET /me and GET /sources.
20 / minute
POST /generate.
Limits are counted per API key, not per account — issue separate keys per integration to keep them independent. Every response includes X-RateLimit-Limit and X-RateLimit-Remaining. A 429 response also includes Retry-After in seconds.
Errors
| 400 | invalid_request | Malformed JSON or a field that failed validation. |
| 401 | unauthorized | Missing, invalid, or revoked API key. |
| 402 | limit_reached | Your plan's conversion limit has been reached. |
| 429 | rate_limited | Too many requests — slow down and retry. |
| 500 | server_error | Something failed on our side. |
Example request
Turn a book chapter into a LinkedIn post:
Get Notified About API Changes
New endpoints, breaking changes, and deprecations — we will email you before anything in your integration stops working.