58ELLISEKIZ
All ModelsImageVideoAudioChatCompare
Get started
Getting startedIntroductionQuickstart
AuthenticationCreate an appAPI tokens
GenerationsList models and pricesSubmit a generationPoll until done
ReferenceRouting and BYOKBillingErrors
58 ElliSekiz LLC · Wyoming, USAellisekiz.aiModelsCompareDocsBlogTermsPrivacyRefunds
Generations

Submit a generation

One POST starts the work. The call is asynchronous: it returns a generation id immediately and the provider keeps rendering in the background, so nothing hangs on a long video job.

Request

Request
curl -X POST https://ellisekiz.ai/api/v1/generations \
  -H "Authorization: Bearer $ELLISEKIZ_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "flux-schnell",
    "prompt": "a lighthouse at dawn, oil painting"
  }'
FieldTypeDescription
modelstring · requiredA canonical id from the catalog, for example flux-schnell.
promptstring · requiredWhat to generate. Trimmed and stored with the generation; the first 2,000 characters are kept for your history.
providerstring · optionalPin the provider: fal, replicate, atlascloud or openrouter. Omit it and your routing policy decides.
paramsobject · optionalPer-model inputs — size, steps, duration, reference images. Unknown keys are dropped rather than forwarded.

Per-model parameters

Every model declares its own inputs. An image model takes size and step count; an image-to-image or video model takes source media as URLs. Send them under params:

Image-to-image
{
  "model": "wan-2.6-i2i",
  "prompt": "repaint in watercolour, soft light",
  "params": {
    "image": "https://example.com/source.jpg",
    "resolution": "1024x1024",
    "num_inference_steps": 28
  }
}

The exact fields for a model are listed on its page under the API tab, next to a playground that builds the same request interactively. Values are filtered before they reach the provider: strings, numbers, booleans and short arrays of URLs pass through, up to eighteen keys.

model, prompt, input and text are ignored inside params — the prompt belongs at the top level.

Response

202 Accepted
{
  "id": "gen_01j...",
  "status": "pending",
  "provider": "fal",
  "provider_model_id": "fal-ai/flux/schnell",
  "kind": "image",
  "credits": 3000,
  "used_own_key": false,
  "poll": "/api/v1/generations/gen_01j..."
}
FieldTypeDescription
idstringPass this to the poll endpoint. It is also the id shown in your request history.
providerstringWhere the router actually sent it — worth logging when you let the router choose.
creditsintegerWhat this generation will cost in micro-dollars, reserved against your balance and charged on completion.
used_own_keybooleanTrue when your stored provider key paid for it, in which case your ElliSekiz balance is untouched.
pollstringThe relative URL to poll. Prefer it over building the path yourself.

Errors

FieldTypeDescription
400Bad requestmodel or prompt missing, or no provider serves that model for your policy.
401UnauthorizedInvalid or missing API token.
402Payment requiredBalance below the generation cost; the message states what is needed and what you have.
502Bad gatewayThe upstream provider rejected the submission. Nothing is charged; retry, or pin a different provider.
← PreviousList models and pricesNext →Poll until done