Skip to main content
result.url can arrive in two forms. Both are valid and both live on the same origin as the API:
The second form uses a token that is valid for 24 hours. After that the link is permanently dead, even if the job is still on record. Never store a URL as your archive of the result.
Treat both forms as a black box: download as-is, do not guess the extension from the path, and do not strip the query string.

Download and store it yourself

Store the file immediately once the status is succeeded. The most reliable way is to hand it to a worker: the polling job records the final status, then a download worker takes over.

Metadata you can trust

result is only populated when status === "succeeded". On any other status its value is null — check the status first, then read result.

When a job fails

  • errorMessage is already scrubbed and in English in the API response. Translate it into your own UI language, or display it as-is.
  • Credits already deducted are refunded automatically, so creditsCharged on a failed job ends up at 0. Do not build your own refund system on your side.
  • Failure messages deliberately do not mention Vidgen’s internal systems. When helping a user, ask for the job.id, not raw logs.

Result policy

Rights over the output, privacy, content filtering, and commercial use are governed by Vidgen’s terms of service — this documentation does not replace them. Some models carry their own restrictions listed in the dashboard. Watermarks follow the package active on your account, so check the pricing page if you promise clean files to end users.

Audit trail

Every job stores id, model, prompt, creditsCharged, createdAt, and updatedAt. Keep job.id in your own database next to the business record (order, user, campaign) so you can reconcile billing and open a support ticket with a clear reference.