Timed out?
Do not resubmit.
Video generation is asynchronous and image generation can be slow. A timeout describes your client, not the job, so the next step depends on which kind of request you sent and which ID you actually hold.
VIDEO TASKS · IMAGE JOBS · USAGE
TIMEOUTS AND FAILED MEDIA
BEEFAPIFAILURE GUIDE
An image or video request timed out or failed. What should I do next?
Video: the create call returns a task ID
- Submit the creation request once and save the returned task ID before doing anything else. An accepted task is not a finished asset.
- Poll
GET /v1/videos/{id}about every five seconds. Video generation can take several minutes. - Statuses are
queued,in_progress,completedandfailed. Stop polling oncompletedorfailed. - A polling timeout does not mean the task failed. Query the same ID again instead of resubmitting the create request.
Poll the saved task ID
curl --fail-with-body "https://global.beefapi.com/v1/videos/$VIDEO_ID" \
--header "Authorization: Bearer $BEEFAPI_KEY"Images: there is often no job ID to poll
POST /v1/images/generations is synchronous: the call waits and returns the image itself, so a timeout leaves you with no job ID and nothing to poll. Asynchronous image jobs exist, but they are limited to accounts with access and are not available on every route that serves the same model. When a job is available, submitting to /v1/images/generations/jobs returns HTTP 202 with a job_id, and GET /v1/images/jobs/{job_id} reports its status.
- If you have a
job_id, pollGET /v1/images/jobs/{job_id}every few seconds. Fetching a result before completion returns409, and a failed job includes anerror. - If you submitted the synchronous endpoint and timed out, you have no ID to query. Do not invent one and do not poll a guessed path.
- Instead, check Usage for the request ID, and read the error body your client kept. An unsupported job submission returns an error rather than silently becoming a synchronous request.
- Do not automatically submit the same image again after an ambiguous timeout: a second generation is a separate request and can be charged separately.
Download without leaking the key
Follow the redirect, but never forward the credential
curl --fail --location \
--header "Authorization: Bearer $BEEFAPI_KEY" \
"https://global.beefapi.com/v1/videos/$VIDEO_ID/content" -o video.mp4--locationis correct: it follows the redirect to the short-lived URL.- Do not use
--location-trusted, which can forward your API key to another host. - If the download link expires, call the authenticated
/contentendpoint again rather than treating the asset as lost.
What happens to the charge
- Credit is reserved when a video task is accepted, and a task recorded as failed releases its reservation when the failure is recorded.
- A disconnected client alone does not cancel the task, so a lost connection is not proof of a refund.
- Keep the HTTP status, the error body, the request ID and any job ID you hold. Those are what a support request needs and what makes the usage record findable.
An accepted task is not a finished asset, and an absent or pending usage record is not proof that a request was free. For an uncertain synchronous call, read the request record before sending it again. Payment refunds are a separate process from releasing a failed task's reservation; read the refund policy for payments.
Still deciding
The job shows failed. Do I get the reserved credit back automatically?
A task recorded as failed releases its reservation through failure processing. Confirm the outcome on the request record rather than on the client error alone, and wait for settlement before treating the amount as final.
My client closed. Is the video task cancelled?
No. A disconnected client alone does not cancel the task. Poll the saved task ID again after reconnecting, and only treat failed as a failure.
Can I always use asynchronous image jobs?
No. Image jobs are available only to some accounts and not on every route that serves the same model. Use the synchronous endpoints unless your account has access, and treat an unsupported job submission error as final rather than retrying the job path.
Sources
- BeefAPI docs · Video generation checked 2026-09-26
- BeefAPI docs · Image generation checked 2026-09-26
- BeefAPI docs · Billing and usage checked 2026-09-26
- BeefAPI docs · Errors checked 2026-09-26
Page facts checked 2026-09-26. Prices, model IDs and client configurations change; the linked sources are authoritative.