get_job_result
Retrieve the final output of a completed async job. Call ONLY after check_job_status returns status='COMPLETED' — calling on a job that has not completed returns an error. Returns JSON whose shape depends on jobType: video/video-image → { videoUrl, duration }; image-3d → { modelUrl } (GLB format); transcription → { text, language, segments }; epub-audiobook → { url, annexeUrl, totalChapters, completedChapters } (annexeUrl is a companion PDF of equations, tables, addresses, keys and hashes the narration replaces with a spoken marker; null when the book had none); ai-call → { transcript, duration, summary }. A video or 3D job whose payment was refunded returns error_code RESULT_NOT_AVAILABLE, unless you pass its paymentId: the payer then gets the pending refund (error_code L402_REFUND_ISSUED). An audiobook whose payment was refunded also returns RESULT_NOT_AVAILABLE, with no link: claim the refund at /recover with the payment ID. A web 3D purchase not yet collected on its own page also returns RESULT_NOT_AVAILABLE. All URLs are temporary (valid ~1 hour) — download immediately. This tool is free and does not require payment. Do NOT use for synchronous tools — those return results directly.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| jobType | Yes | Must match the async tool: video=generate_video, video-image=animate_image, image-3d=generate_3d_model, transcription=transcribe_audio, epub-audiobook=epub_to_audiobook, ai-call=ai_call. video-fal-standard/video-fal-pro = the fallback jobType generate_video returns when the primary video model is at capacity. | |
| paymentId | No | The paymentId that bought this job. On a failed or refunded job the refund is opened either way; the claim link (lnurl_withdraw / refund_secret) is returned only when this matches — or call check_payment_status(paymentId). | |
| requestId | Yes | The requestId returned by the original async tool — same ID used with check_job_status |