Skip to documentation
MakeInfluencer.ai
v1

REST API

Generate media

Submit model-aware image and video jobs, preview credit costs, and make retries safe with idempotency keys.

Generation endpoint

POSThttps://www.makeinfluencer.ai/api/v1/models/{modelId}/generations

Use the exact model ID returned by GET /models. One route handles image, editing, text-to-video, image-to-video, motion control, and lip-sync models through their own validated input contract.

Request body

cURL
curl --request POST \
  https://www.makeinfluencer.ai/api/v1/models/happyhorse1/generations \
  --header "Authorization: Bearer $MAKEINFLUENCER_API_KEY" \
  --header "Idempotency-Key: campaign-video-001" \
  --header "Content-Type: application/json" \
  --data '{
    "input": {
      "prompt": "A creator walking through neon Tokyo",
      "aspectRatio": "9:16",
      "duration": 5,
      "resolution": "720p"
    }
  }'
inputobjectRequiredFields published by the selected model contract.
copiesintegerImage onlyGenerate 1–4 image copies; defaults to 1.
influencerIduuidOptionalA trained character supported by eligible image models.
generationIduuidOptionalAn owned source image generation for image-to-video workflows.

Preview credits

POSThttps://www.makeinfluencer.ai/api/v1/models/{modelId}/preview-credits

Send the same request body before generation. The endpoint validates the model inputs and returns the exact charge without reserving credits.

Response · no charge
{
  "modelId": "happyhorse1",
  "credits": {
    "cost": 35088,
    "description": "Happy Horse 1.0 video - 720p (per second)"
  }
}

Idempotency

Include a unique Idempotency-Key for requests that may be retried. Reusing the key with the same payload returns the original accepted generation. Reusing it with different input returns409 idempotency_conflict.

Generate one key per logical job

A UUID or your own stable job identifier works. Do not reuse one key across multiple campaign assets.

Accepted response

A valid job returns HTTP 202. Poll each returned ID until it is terminal.

HTTP 202
{
  "status": "queued",
  "kind": "video",
  "modelId": "happyhorse1",
  "ids": ["GENERATION_ID"],
  "creditsCost": 35088
}