gensta DOCS
api-platform.gensta.ai/v1 Developer portal

Endpoint

POST/v1/generationsBearer key · generations:write

Send JSON with Content-Type: application/json. Idempotency-Key is optional in the schema and strongly recommended for every logical generation.

Request shape

json
{
  "model": "wan-3.0",
  "mode": "text_to_video",
  "variant": "standard",
  "parameters": {
    "resolution": "720p",
    "duration_seconds": 5,
    "ratio": "16:9",
    "audio": true,
    "prompt_extend": false,
    "watermark": false
  },
  "input": {
    "prompt": "A paper boat crosses a rain puddle, macro lens"
  }
}
FieldContract
modelRequired. Use an id returned by GET /v1/models
modeRequired. Must be listed in the selected model's operations
variantRequired. Must be listed in the selected model's variants
parametersRequired object; individual fields have defaults
inputStrict mode-specific object

Create response

Success returns HTTP 202. The response contains the generation ID, queued status, mode, variant, creation time, and the maximum amount temporarily reserved from the balance.

json
{
  "id": "1b90f2e6-8898-45c3-9c4a-6f4ba6af25cb",
  "status": "queued",
  "model": "wan-3.0",
  "mode": "text_to_video",
  "variant": "standard",
  "price": {
    "amount": "<calculated_amount>",
    "currency": "USD"
  },
  "billing": {
    "currency": "USD",
    "status": "reserved",
    "reserved_amount": "<calculated_amount>",
    "charged_amount": null
  },
  "created_at": "2026-09-01T12:00:00.000Z"
}

billing makes the money state explicit. On create, status is reserved, reserved_amount is the maximum hold, and charged_amount is null. The legacy price object remains for compatible clients.

Validation

Unknown fields and invalid mode combinations return 400 invalid_request before funds are reserved. After surrounding whitespace is removed, prompt must contain 1–20,000 characters. video_edit and video_extend require ratio: adaptive.