AuraFlux Developer API

Access platform-signal Peaks (YouTube Most Replayed, Twitch Chat Spikes, Kick CCV) and automated 9:16 rendering via programmatic endpoints.

BASE URL https://api.auraflux.co/v1
Request API Key

Authorization: Bearer af_live_YOUR_KEY

X-Brand-Id: optional_brand_scope_id

Peaks (platform signal)
GET /peaks/vods
List VODs

List recent YouTube or Twitch VODs for the brand channel. Query: platform=youtube|twitch, optional handle, limit.

cURL
curl "https://api.auraflux.co/v1/peaks/vods?platform=youtube" \ -H "Authorization: Bearer af_live_YOUR_KEY"
POST /peaks/analyze
Analyze VOD peaks

Run YouTube Most Replayed or Twitch chat heatmap analysis. Returns ranked peak segments for Short production. Subject to fair-use Peaks analysis limits in the Terms.

Request body
{ "platform": "youtube", "vodUrl": "https://www.youtube.com/watch?v=…", "streamer": "yourbrand", "maxPeaks": 8, "targetSec": 45 }
Flow
analyze → stage → GET /peaks/presets → POST /jobs (short_compile_clips + C1–C11) → approve-publish
GET /peaks/sessions/:id/segments
List segments

Fetch stored segments for an analysis session id returned by /peaks/analyze.

POST /peaks/stage
Stage VOD window

Stage a trimmed VOD window to R2 for Short compile. Same contract as the in-app Peaks stage step.

GET /peaks/kick
Kick CCV peaks

Recent Kick concurrent-viewer peaks for the brand channel (captured while live).

GET /peaks/twitch-ccv
Twitch CCV peaks

Recent Twitch concurrent-viewer peaks for the brand channel.

GET /peaks/presets
C1–C11 edit presets

Part 2 — Short compose presets after you stage a peak. Default for Peaks Shorts: fableflow_speed (C9). Also: brand-pad (C1), full bleed (C2), ranked Short/VOD (C3/C4), karaoke clean (C5), long comp VOD (C6), custom (C7), facecam split (C8), reaction (C10), then/now stack (C11).

Then compile
curl -X POST https://api.auraflux.co/v1/jobs \ -H "Authorization: Bearer af_live_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"entry":"fetch","url":"https://r2…/staged.mp4","productionPath":"short_compile_clips","featureConfig":{"compose":{"preset":"fableflow_speed"}},"format":"short","staging":true,"platforms":["youtube"]}'
More edit knobs

Beyond C1–C11, GET /v1/feature-inputs documents captions, color grade, effects, audio, branding/chrome, layout, TTS, thumbnail, and publish metadata. Use addOns / feature fields on POST /v1/jobs.

Jobs & publish
POST /jobs
Submit a job

Submit a new video production job (including Short compile after Peaks stage). Returns immediately with a jobId — poll GET /jobs/:id to track progress. Subject to fair-use job-start limits.

Request body
{ "entry": "fetch", "url": "https://www.twitch.tv/videos/123456789", "platforms": ["tiktok", "youtube"], "publishMode": "immediate" }
Response
{ "jobId": "job_abc123", "status": "queued", "creditCost": 1, "balance": 46 }
cURL
curl -X POST https://api.auraflux.co/v1/jobs \ -H "Authorization: Bearer af_live_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{ "entry": "fetch", "url": "https://www.twitch.tv/videos/123456789", "platforms": ["tiktok", "youtube"], "publishMode": "immediate" }'
GET /jobs/:id
Get job status

Poll after submitting a job. Status progresses: queued → running → complete (or failed). A complete job includes an outputUrl.

Response
{ "jobId": "job_abc123", "status": "complete", "outputUrl": "https://r2.auraflux.co/…/output.mp4", "score": 94, "platforms": ["tiktok"], "createdAt": "2026-05-25T12:00:00Z" }
cURL
curl https://api.auraflux.co/v1/jobs/job_abc123 \ -H "Authorization: Bearer af_live_YOUR_KEY"
GET /jobs/:id/result
Get full job result

Returns the full output for a completed job: video URL, thumbnail, publish copy, and per-platform publish results. Returns 202 if not yet complete.

Response
{ "jobId": "job_abc123", "status": "complete", "videoUrl": "https://r2.auraflux.co/…/output.mp4", "thumbnailUrl": "https://r2.auraflux.co/…/thumb.jpg", "publishCopy": { "title": "…", "description": "…", "hashtags": ["#cs2"] }, "completedAt": "2026-05-25T12:05:00Z" }
GET /jobs
List jobs

Returns your job history. Supports pagination via ?limit=20&offset=0 and optional ?status=complete filter.

cURL
curl "https://api.auraflux.co/v1/jobs?limit=20&status=complete" \ -H "Authorization: Bearer af_live_YOUR_KEY"
DELETE /jobs/:id
Cancel a job

Cancels a queued or running job. Cannot cancel jobs that are already complete, published, or failed.

cURL
curl -X DELETE https://api.auraflux.co/v1/jobs/job_abc123 \ -H "Authorization: Bearer af_live_YOUR_KEY"
POST /jobs/:id/approve-publish
Approve staged job

When a job is submitted with "staging": true, it stops before Portal 5 (publish) for your review. Call this endpoint to approve and publish.

cURL
curl -X POST https://api.auraflux.co/v1/jobs/job_abc123/approve-publish \ -H "Authorization: Bearer af_live_YOUR_KEY"
Upload
POST /upload
Upload a video file

Upload a video file (MP4/MOV, max 500MB). Returns a fileId - pass it to POST /jobs as "entry": "upload", "fileId": "…".

cURL
curl -X POST https://api.auraflux.co/v1/upload \ -H "Authorization: Bearer af_live_YOUR_KEY" \ -F "file=@/path/to/myclip.mp4"
Templates
GET /templates
List templates

Returns all saved templates. Use a template's id in POST /jobs as fromTemplateId to submit a job with pre-set options.

cURL
curl https://api.auraflux.co/v1/templates \ -H "Authorization: Bearer af_live_YOUR_KEY"
POST /templates
Create a template

Save a job configuration as a reusable template.

cURL
curl -X POST https://api.auraflux.co/v1/templates \ -H "Authorization: Bearer af_live_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"name":"Weekly highlights","format":"short","platforms":["tiktok"],"tone":"hype"}'
DELETE /templates/:id
Delete a template

Permanently deletes a saved template. Jobs previously submitted from this template are unaffected.

cURL
curl -X DELETE https://api.auraflux.co/v1/templates/tpl_abc \ -H "Authorization: Bearer af_live_YOUR_KEY"
Scheduling
PATCH /jobs/:id/schedule
Schedule a job

Set or update the publish time for an existing job. Pass null to unschedule.

cURL
curl -X PATCH https://api.auraflux.co/v1/jobs/job_abc123/schedule \ -H "Authorization: Bearer af_live_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"scheduledAt":"2026-05-26T09:00:00Z"}'
Account
GET /account
Get account info

Returns your account ID, plan tier, credit balance, and rate limit info. Use this to verify your key is working.

Response
{ "accountId": "user_xxx", "planTier": "operate", "credits": { "balance": 47, "included": 50, "used": 3 } }
cURL
curl https://api.auraflux.co/v1/account \ -H "Authorization: Bearer af_live_YOUR_KEY"

POST /jobs — Field Reference & Example

Field Type Required Description
entrystringNoHow source is provided (fetch, upload, compose, generate)
urlstringIf entry=fetchSource video URL (Twitch clip, YouTube, VOD)
urlsstring[]NoMultiple source URLs for multi-clip jobs
fileIdstringIf entry=uploadFile ID from POST /upload
platformsstring[]NoTarget platforms (tiktok, youtube, instagram)
publishModestringNoimmediate | scheduled | manual
formatstringNoshort or long
stagingbooleanNoIf true, stop before publish for review
fromTemplateIdstringNoStart from a saved template
EXAMPLE REQUEST
curl -X POST https://api.auraflux.co/v1/jobs \
  -H "Authorization: Bearer af_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "entry": "fetch",
    "url": "https://www.twitch.tv/videos/123456789",
    "platforms": ["tiktok", "youtube"],
    "publishMode": "immediate"
  }'
Rate Limits & Credit Costs
Rate limits
  • 60 API requests / minute
  • 10 concurrent job submissions
  • 500MB max upload size
Credit costs per job
  • Short-form, single clip - 1 credit
  • Long-form or multi-clip - 2 credits
  • Video generation - 3 credits
Fair use

Self-serve is unlimited Peaks+publish for one brand, with rate limits in the Terms (concurrent jobs, hourly job starts, Peaks analyses). API RPM limits also apply per key.

Request API access

Tell us your brand, stack, and Peaks use case. We review invites for platform-signal buyers.

Request access
💬 AuraFlux Chat
Hi! I'm the AuraFlux assistant. Ask me anything about the platform, pricing, or how it works.