aimodels.cheap

API

Everything the website does, from a script. Base URL https://aimodels.cheap/v1, JSON in and out, Authorization: Bearer <api_key>. Prices in USD, paid from a prepaid USDT/USDC balance and locked when you submit.

AccountFundsQuoteUploadJobsWebhookErrors

1. Account and key

POST/v1/signup — no auth. Returns the API key once, plus your personal deposit address.

curl -X POST https://aimodels.cheap/v1/signup \
  -H 'content-type: application/json' -d '{"email":"you@company.com"}'

{ "api_key": "amc_…", "session": "ses_…",
  "deposit": { "address": "0x…", "network": "BNB Smart Chain (BEP-20)", "token": "USDT/USDC", "min_usd": 10 } }

Accounts created on the website (email or Google) work here too: sign in, open your account, click API key. POST/v1/account/rotate-key issues a new key and invalidates the previous one.

2. Funds

GET/v1/account — balance, deposit address, last 50 ledger lines.

curl https://aimodels.cheap/v1/account -H 'Authorization: Bearer amc_…'

{ "email": "…", "balance_usd": 24.98, "deposit": { "address": "0x…", … }, "ledger": [ … ] }
Send USDT or USDC on BNB Smart Chain (BEP-20) to your deposit address. Balance is credited after 5 confirmations, usually under a minute. Tokens sent on other networks cannot be recovered.

3. Quote

GET/v1/quote?product=h3_768p&tier=24h&seconds=10 — no auth. Same formula the job will use; only the job locks it.

productwhat
h3_768pMiniMax H3, 1344×768, 24 fps, stereo audio, official 20-step workflow
h3_turboMiniMax H3 with the turbo LoRA, 8 steps, draft quality
h3_ref · h3_ref_turboReference mode (r2v): source video + character photos, 20 steps or 4-step draft
tierdelivery
24h · 4h · 1hDeadline from submission. Missed deadlines are rerun on on-demand GPUs at our cost.

4. Upload an image (image-to-video)

POST/v1/uploads — raw body, content-type: image/jpeg, image/png or image/webp, max 20 MB. Any public image URL works as well.

curl -X POST https://aimodels.cheap/v1/uploads -H 'Authorization: Bearer amc_…' \
  -H 'content-type: image/jpeg' --data-binary @frame.jpg

{ "url": "https://aimodels.cheap/in/12-….jpg", "bytes": 183422 }

4b. Remake: your character in a video (reference mode)

Mode r2v with reference_url (a video of 4 to 15 s) and ref_images (3 to 5 photos of the character, faces visible). The clip is entirely regenerated: the model keeps the scene, camera, framing, gestures and timing of the video and puts your character in it; with "voice": "original" (default) the source soundtrack is reused. Since 2026-09-17 your request is rewritten server-side into the structured prompt MiniMax H3 was trained on (six sections: subject definitions, task summary, retention analysis, shot-by-shot description, soundscape, music) and stored as input.prompt_h3, visible in the studio. Set seconds to the video's length (max 15; 10 s or less keeps timing tighter). Reference pack that works best: a front portrait, a three-quarter view and a full-body shot, sharp, plain background, consistent hair and clothing (contradictory photos blend into a third person). Test feature: expect a close resemblance of the face, not an exact copy; hands, feet and fast moves are the usual weak spots; price product h3_ref.

{
  "mode": "r2v",
  "product": "h3_ref",
  "seconds": 10,
  "reference_url": "https://aimodels.cheap/in/12-….mp4",
  "ref_images": ["https://aimodels.cheap/in/12-a.jpg", "https://aimodels.cheap/in/12-b.jpg", "https://aimodels.cheap/in/12-c.jpg"],
  "ref_image_size": "max",
  "prompt": "she walks towards the camera and smiles, golden hour"
}

The source video is fed to the model as a lightweight proxy (576p short edge at 24 fps, 15 s max) and up to 5 photos are used alongside a video; this keeps the render inside GPU memory while preserving motion and framing.

By default we prefix your prompt with the reference tags (<Video 1> is the shot to recreate, <Picture 1..N> the character). Send "auto_tags": false to write the tags yourself. ref_image_size: match is faster, max keeps the photos in high resolution for stronger identity.

5. Jobs

POST/v1/jobs — debits the price immediately, refunded if the job fails or you cancel while it is still queued.

curl -X POST https://aimodels.cheap/v1/jobs \
  -H 'Authorization: Bearer amc_…' -H 'content-type: application/json' \
  -d '{
    "product": "h3_768p",
    "tier": "24h",
    "seconds": 10,
    "mode": "i2v",
    "prompt": "handheld phone footage, a woman laughs on a ferry deck, wind in her hair, natural light",
    "image_url": "https://aimodels.cheap/in/12-….jpg",
    "aspect": "9:16",
    "webhook": "https://example.com/hooks/aimodels"
  }'

{ "id": "job_…", "status": "queued", "price_usd": 0.07, "deadline": 1788630000, … }
fieldnotes
modet2v (default, text only), i2v with image_url / last_image_url, r2v with reference_url and/or ref_images (see 4b)
seconds1 to 15
aspect16:9 (default), 9:16, 1:1, 4:3, 3:4
voicecharacter | original | generated, jobs with a source video (see 4e)
realismtrue by default: a realism adapter (skin texture, eye coherence, handheld feel) is applied on top of the model in every mode. false for the plain model. realism_strength 0.2 to 1.5, default 1.
audio_url, seedoptional
webhookhttps URL, receives the job object as JSON when it finishes or fails

GET/v1/jobs/:id · GET/v1/jobs · DELETE/v1/jobs/:id (queued jobs only, full refund)

Statuses: queued → running → done with output_url (kept 7 days) or failed (refunded). render_seconds and gpu are filled in when done.

6. Webhook

When a job finishes or fails, we POST the same job object to your webhook URL, once, with a 10-second timeout. Poll GET /v1/jobs/:id if you need certainty.

7. Errors

codemeaning
401Missing or invalid API key
402Insufficient balance; the response includes price_usd, balance_usd and your deposit_address
409Job cannot be cancelled in its current state
429Too many signups from one address

Questions: hello@aimodels.cheap