VoxlyAIVoxlyAI/API Reference
Get API key

API Reference

VoxlyAI exposes a REST API that mirrors everything available in the dashboard. Use it to generate platform-native content, manage your writing personas, re-edit drafts, and adapt posts across platforms from your own pipelines.

Base URL: https://app.voxlyai.online/api

Authentication

All requests require a bearer token passed in the Authorization header. API keys are prefixed with vlx- and are generated from your dashboard.

curl https://app.voxlyai.online/api/generate \
  -H "Authorization: Bearer vlx-xxxxxxxxxxxxxxxx"

Rate limits

Usage is tracked in tokens per calendar month, not requests per second. The free plan includes 100,000 tokens per month. When the budget is exhausted, generation endpoints return 403 until the next billing cycle.

PlanMonthly tokensNotes
Free100,000Resets on the 1st of each month

Generate content

Generate platform-native content from a topic name or a saved topic ID. The system selects the best matching persona automatically unless you specify one.

POSThttps://app.voxlyai.online/api/generate

Request body

ParameterTypeRequiredDescription
topic_namestringrequiredFree-form topic or headline to generate content about
platformstringrequiredOne of: twitter, instagram, facebook, telegram
content_typestringrequiredOne of: idea, long_form, thread, article
topic_idintegeroptionalID of a saved topic. Unlocks sentiment context if available
persona_idintegeroptionalForce a specific persona; omit to auto-select

Example

curl -X POST https://app.voxlyai.online/api/generate \
  -H "Authorization: Bearer vlx-xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "topic_name": "Why decentralized AI matters in 2025",
    "platform": "twitter",
    "content_type": "thread"
  }'
Response
{
  "content_type": "thread",
  "results": [
    {
      "id": 142,
      "platform": "twitter",
      "content_type": "thread",
      "title": "Why decentralized AI matters in 2025",
      "content": "Decentralized AI isn't a buzzword...",
      "meta": { "word_count": 87, "hook": "..." },
      "version": 1,
      "parent_id": null,
      "rating": null,
      "created_at": "2025-08-05T09:21:44Z"
    }
  ]
}

Generate from source

Generate content from an existing source: a URL, raw text, a PDF, a DOCX, or an image. Sent as multipart/form-data.

POSThttps://app.voxlyai.online/api/generate/from-source

Form fields

ParameterTypeRequiredDescription
platformstringrequiredOne of: twitter, instagram, facebook, telegram
content_typestringrequiredOne of: idea, long_form, thread, article
urlstringoptionalURL to fetch and extract content from
textstringoptionalRaw text to use as the source
filefileoptionalPDF, DOCX, or image file (.jpg, .png, .webp)
persona_idintegeroptionalForce a specific persona; omit to auto-select

Example (URL)

curl -X POST https://app.voxlyai.online/api/generate/from-source \
  -H "Authorization: Bearer vlx-xxxxxxxxxxxxxxxx" \
  -F "platform=instagram" \
  -F "content_type=idea" \
  -F "url=https://example.com/article"

Batch generate

Generate content for a specific platform in a single call. Useful for automating multi-platform campaigns one platform at a time.

POSThttps://app.voxlyai.online/api/generate/batch

Request body

ParameterTypeRequiredDescription
platformstringrequiredOne of: twitter, instagram, facebook, telegram
content_typestringrequiredOne of: idea, long_form, thread, article
topic_namestringoptionalFree-form topic
topic_idintegeroptionalID of a saved topic

List content

Returns the authenticated user's generated content, newest first. Only top-level items are returned (not re-edit children).

GEThttps://app.voxlyai.online/api/content

Query parameters

ParameterTypeRequiredDescription
platformstringoptionalFilter by platform
content_typestringoptionalFilter by content type
limitintegeroptionalMax results (default 20, max 100)
offsetintegeroptionalPagination offset (default 0)

Get content

Returns a single content record including its full version history.

GEThttps://app.voxlyai.online/api/content/{id}
Response
{
  "id": 142,
  "platform": "twitter",
  "content_type": "thread",
  "title": "...",
  "content": "...",
  "meta": {},
  "version": 2,
  "parent_id": null,
  "rating": 1,
  "created_at": "2025-08-05T09:21:44Z",
  "versions": [
    {
      "version_number": 2,
      "content": "...",
      "edit_instruction": "make it shorter",
      "created_at": "2025-08-05T09:35:00Z"
    }
  ]
}

Re-edit content

Apply a plain-English edit instruction to an existing post. Returns a new content record linked to the original, preserving the version chain.

POSThttps://app.voxlyai.online/api/content/{id}/re-edit

Request body

ParameterTypeRequiredDescription
instructionstringrequiredPlain-English edit instruction e.g. "make it shorter", "add a question at the end"
curl -X POST https://app.voxlyai.online/api/content/142/re-edit \
  -H "Authorization: Bearer vlx-xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{ "instruction": "make it shorter and punchier" }'

Adapt to platform

Reformat an existing post for a different platform. Produces a new child record adapted in length, structure, and tone for the target platform.

POSThttps://app.voxlyai.online/api/content/{id}/adapt

Request body

ParameterTypeRequiredDescription
platformstringrequiredTarget platform: twitter, instagram, facebook, or telegram

Rate content

Add a thumbs-up or thumbs-down rating to a piece of content. Ratings are used to refine the style profile automatically once enough accumulate.

POSThttps://app.voxlyai.online/api/content/{id}/rate

Request body

ParameterTypeRequiredDescription
ratingintegerrequired1 for thumbs up, -1 for thumbs down, 0 to remove rating

Delete content

Permanently deletes a content record. Returns 204 No Content on success.

DELETEhttps://app.voxlyai.online/api/content/{id}

Error codes

StatusMeaning
400Invalid request — check platform/content_type values or missing required fields
401Missing or invalid Authorization header
403Monthly token budget exhausted. Resets on the 1st of the month
404Content or topic not found, or belongs to another user
422Request body failed schema validation
500Internal server error

Ready to start building?

Generate your API key