Estimate the Cost Before You Generate

POST the same body you would send to generate and get back the exact credits it will cost, with nothing created and nothing charged.

Send the request you are about to make to /api/v1/estimate instead of /api/v1/generate. You get back the exact number of credits that request will cost. Nothing is created and no credits are used.

The estimate runs the same validation, the same model and resolution resolution, and the same per-second billing as the generate call, so the number it returns is the number generate will charge. If the request is invalid, the estimate returns the same error generate would.

Request

POST https://vicsee.com/api/v1/estimate
Content-Type: application/json
Authorization: Bearer sk-your-api-key

The body is identical to Generate. Anything generate accepts, estimate accepts.

Example

curl -X POST https://vicsee.com/api/v1/estimate \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-5-reference-to-video",
    "prompt": "@Image1 speaking to camera, warm studio light",
    "input": {
      "duration": 27,
      "resolution": "720p",
      "reference_image_urls": ["https://example.com/portrait.jpg"],
      "reference_audio_urls": ["https://example.com/voice.mp3"]
    }
  }'

Response

{
  "success": true,
  "data": {
    "estimate": true,
    "model": "seedance-2-5-reference-to-video",
    "credits": 2250,
    "variant": "27s-720p",
    "resolvedParams": { "duration": 27, "resolution": "720p", "aspect_ratio": "adaptive" },
    "creditsRemaining": 78372,
    "sufficient": true,
    "note": "Nothing was created and no credits were used. Send this exact body to POST /api/v1/generate to run it; the charge will be `credits`."
  }
}

Response Fields

FieldDescription
creditsWhat generate will charge for this exact body
variantThe pricing tier the request resolved to, for example 27s-720p or 720p-vref
billableSecondsPresent only for per-second billing (a video reference or a video edit): input seconds plus output seconds
resolvedParamsThe parameters generate would actually apply, including any defaults you did not send
creditsRemainingYour current balance
sufficienttrue when the balance covers credits

Notes

  • When the body includes a video reference, the estimate reads the clip's length the same way generate does, so the per-second total is exact rather than approximate.
  • Omitted parameters resolve to the model's defaults, which on most video models are not the cheapest tier. Read resolvedParams and send resolution and duration explicitly if the number surprises you.
  • The estimate does not reserve credits. Prices are fixed per model, so the number holds until you call generate.

Next Steps