{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreifnmlnkhzjpidnzjy4o3dpnx7gcnc7mgmijbbxps4krgyky4giypy",
"uri": "at://did:plc:lk3jfj3zq4k4wxnk474axylu/app.bsky.feed.post/3mkoszkvzqj62"
},
"path": "/t/sora-videos-api-jobs-complete-but-mp4-download-fails-with-403-files-are-not-accessible/1380078#post_1",
"publishedAt": "2026-04-30T03:31:44.000Z",
"site": "https://community.openai.com",
"textContent": "Hi everyone,\n\nI’m running into a persistent Sora Videos API download issue and wanted to check if this is an entitlement/file-access problem or a current issue with the Sora content endpoint.\n\nThe render job itself succeeds, and I can retrieve/list the completed video object, but downloading the completed MP4 fails with:\n\n`{`\n` \"error\": {`\n` \"message\": \"Files [file_...] are not accessible\",`\n` \"type\": \"invalid_request_error\",`\n` \"param\": null,`\n` \"code\": null`\n` }`\n`}`\n\nEndpoint failing:\n\n`curl -L \"https://api.openai.com/v1/videos/VIDEO_ID/content?variant=video\" \\`\n` -H \"Authorization: Bearer $OPENAI_API_KEY\" \\`\n` --output video.mp4`\n\nI also tried:\n\n`curl -L \"https://api.openai.com/v1/videos/VIDEO_ID/content\" \\`\n` -H \"Authorization: Bearer $OPENAI_API_KEY\" \\`\n` --output video.mp4`\n\nWhat works:\n\n * POST /v1/videos creates the Sora job successfully\n\n * GET /v1/videos/{video_id} returns the completed job successfully\n\n * GET /v1/videos?limit=5&order=desc lists the completed video successfully\n\n * The job reaches status: completed, progress: 100, and has a future expires_at\n\n\n\n\nWhat fails:\n\n * GET /v1/videos/{video_id}/content?variant=video\n\n * GET /v1/videos/{video_id}/content\n\n\n\n\nI tested this with a minimal 4-second Sora job:\n\n * model: sora-2-pro\n\n * size: 720x1280\n\n * seconds: 4\n\n * prompt: simple voice-led canary, no references/assets\n\n * I also tested the hidden file ID from the error against the Files API:\n\n`curl \"https://api.openai.com/v1/files/file_0000000056507285b63c977fa5a51906\" \\`\n` -H \"Authorization: Bearer $OPENAI_API_KEY\"`\n\nThat returns 404 No such File object, while the video content endpoint returns 403 Files […] are not accessible.\n\nTo rule out local request issues, I tested with:\n\n * Node fetch\n\n * direct curl\n\n * /content\n\n * /content?variant=video\n\n * explicit OpenAI-Project header\n\n * Accept: video/mp4\n\nAll fail the same way.\n\nI also tested a separate OpenAI project/API key under the same org and a separate key under a different org; both completed rendering but failed on content download with the same Files […] are not accessible error. So this does not look like a single API key, single project, prompt, duration, or resolution issue.\n\nCan you confirm whether completed Sora video content downloads are currently available for this project/org, or whether there is a known issue with the /v1/videos/{video_id}/content file resolver?\n\nAny help appreciated.\n\n\n",
"title": "Sora Videos API jobs complete, but MP4 download fails with 403 Files are not accessible."
}