Estimate, create, and track your first generation
Discover a supported generation task, estimate it without authentication, and optionally create and monitor a paid generation.
On this page
This guide uses the current public video.create task with seedance-2. You can complete discovery and estimation without an API key, creating media, or spending balance.
Before you begin
Create an account in Console, open API Keys, and create a key if you intend to run the optional generation step. The full efapi_live_... secret is displayed once. Keep it out of source control, browser URLs, and prompts.
New organizations start with a zero balance. Discovery and estimation still work without funding. If you continue to the optional paid generation, a signed-in billing manager must add balance in Console after estimating and before creation.
The example price is representative of current pricing. Always use the response from POST /v1/estimate as the request-specific estimate immediately before paid creation.
Discover the contract
Read the task catalog before constructing input. This public request creates no media and spends no balance.
curl https://api.entirefeed.com/v1/tasks \
-X GETConfirm that video.create is available, select its seedance-2variant, and use that variant's published input schema and defaults.
Estimate before any paid request
No credential and no balance spentEstimation accepts the exact generation payload, returns a request-specific USD amount, and creates no media.
curl https://api.entirefeed.com/v1/estimate \
-X POST \
-H "Content-Type: application/json" \
-d '{
"task": "video.create",
"model": "seedance-2",
"input": {
"prompt": "A crisp product reveal on a clean studio set",
"duration_seconds": 8,
"aspect_ratio": "9:16",
"resolution": "720p"
}
}'{
"estimated_cost": {
"amount_usd": "1.64"
},
"line_items": [
{
"type": "video_generation",
"model": "seedance-2",
"quantity": 1,
"unit": "operation",
"amount_usd": "1.64"
}
]
}Optional: create the generation
Authorization: Bearer efapi_live_...curl https://api.entirefeed.com/v1/generations \
-X POST \
-H "Authorization: Bearer $ENTIREFEED_API_KEY" \
-H "Idempotency-Key: quickstart-video-001" \
-H "Content-Type: application/json" \
-d '{
"task": "video.create",
"model": "seedance-2",
"input": {
"prompt": "A crisp product reveal on a clean studio set",
"duration_seconds": 8,
"aspect_ratio": "9:16",
"resolution": "720p"
}
}'{
"id": "gen_0123456789abcdef0123456789abcdef",
"object": "generation",
"status": "queued",
"model": "seedance-2",
"task": "video.create",
"created_at": "2026-07-12T08:30:00Z",
"estimated_cost": {
"amount_usd": "1.64"
},
"links": {
"self": "https://api.entirefeed.com/v1/generations/gen_0123456789abcdef0123456789abcdef"
}
}Monitor to a terminal state
Follow links.self until the generation status is succeeded, failed, cancelled, or manual_review.
curl https://api.entirefeed.com/v1/generations/gen_0123456789abcdef0123456789abcdef \
-X GET \
-H "Authorization: Bearer $ENTIREFEED_API_KEY"{
"id": "gen_0123456789abcdef0123456789abcdef",
"object": "generation",
"status": "succeeded",
"model": "seedance-2",
"task": "video.create",
"created_at": "2026-07-12T08:30:00Z",
"completed_at": "2026-07-12T08:31:14Z",
"output": {
"assets": [
{
"id": "asset_0123456789abcdef0123456789abcdef",
"type": "video",
"url": "https://cdn.entirefeed.com/examples/product-reveal.mp4",
"mime_type": "video/mp4",
"expires_at": null
}
]
},
"usage": {
"amount_usd": "1.64",
"line_items": [
{
"type": "video_generation",
"model": "seedance-2",
"quantity": 1,
"unit": "operation",
"amount_usd": "1.64"
}
],
"billing_status": "settled"
},
"error": null,
"metadata": null
}Lifecycle, cost, and common errors
queued and running are active. Terminal states are reported by the generation resource.
The estimated amount is held while work runs. Final usage shows the amount charged or released.
Inspect the error code. Do not repeat paid work after authentication, balance, rate-limit, availability, or review failures until you know the request's current status.
authentication_errorCreate or replace the API key; do not substitute a Console or MCP credential.idempotency_conflictUse the existing request body or choose a new key for a genuinely new operation.insufficient_balanceNo work starts. A signed-in billing user can manage balance in Console.rate_limit_exceededRespect the limit and retry deliberately; keep the same key for the same intended work.