aisplice

By capability

Videos

Videos always run as a task: submit, then check back or get a callback. Longer and sharper clips cost more.

#1. Pick a model

#3. Get the result

The submit call answers with a task_id at once. Check the task every few seconds until status is completed, or pass webhook_url and we call you when it is done.

GET https://www.aisplice.store/v1/videos/{task_id}

GET https://www.aisplice.store/v1/videos/{task_id}/content

Duration and resolution set the price tier. A running task can be cancelled; see the API reference.

Charged only when it succeeds

A failed or cancelled task is refunded automatically. The request log shows each task’s final cost.

Status values and polling →Get a callback instead of checking →

#When it goes wrong

  • 400 with a field name: that option is not accepted by this model; use the values listed in step 2.
  • Reference image or video rejected: it must be a public URL the model can download.
  • Content refused by the model: rephrase the prompt; refused requests are not charged.
  • 402: the balance cannot cover this request; top up in Wallet, then retry.
  • 429: slow down and retry after the Retry-After seconds.
  • 503 model_not_found: the model name is wrong or the model is offline; pick one from step 1.

Look up any other error →

#First and last frames, reference images and videos

Models that accept them show the fields in step 2: first frame, last frame, reference images or a reference video. Pass public URLs; upload local files first.

How to upload a local file →

Building it into your productWhich options to show your users first, and which to leave for later.
Which options to show your users firstStart with the prompt and one price knob; add the rest once the basic flow works.+

Creative intent

Fields like prompt belong in the UI because the user directly understands the outcome they change.

Cost multiplier

Fields like duration, resolution, size, and count should be introduced only when pricing is already explainable.

Mode switch

Fields like image, mask, or continuation IDs change the workflow itself and should appear only in dedicated modes.

System plumbing

Fields like webhook_secret are for integrators, not for everyday creators, so keep them out of default UI.

  • prompt
    Expose when
    Always. It defines the scene or motion direction.
    Recommended default
    Required in UI.
    Why it matters
    Without it, users cannot steer the clip intent.
  • image / images
    Expose when
    Expose only for reference-driven or image-to-video products.
    Recommended default
    Hide in prompt-only flows.
    Why it matters
    It changes the creation mode and should be a deliberate product choice.
  • duration
    Expose when
    Expose once the base async flow is stable and pricing is visible.
    Recommended default
    Start from the shortest supported duration.
    Why it matters
    It is one of the biggest cost and latency multipliers in video generation.
  • resolution
    Expose when
    Expose when customers explicitly compare 720p, 1080p, or 4K output.
    Recommended default
    Pick one recommended resolution server-side.
    Why it matters
    Higher resolution raises cost, queue time, and failure sensitivity.
  • webhook_url / webhook_secret
    Expose when
    Expose only for backend integrators, not for normal end users.
    Recommended default
    Prefer polling in UI products.
    Why it matters
    They solve system integration, not end-user creativity, so they should stay out of consumer-facing controls.
recommended-rollout.txt
Phase 1
- prompt
- one size or one duration default
- submit -> poll -> content

Phase 2
- one quality or resolution selector
- clear pricing hint

Phase 3
- advanced controls such as reference media, continuation, webhook, or vendor-specific tuning

Keep one source of truth for results

When a task finishes, normalize your app around the platform URL returned by /content. That keeps upstream vendor details hidden and makes historical playback stable.

Still stuck?

Send us the request ID or the error message and we will look into it.