{
  "$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."
}