The Instructure Community will enter a read-only state on November 22, 2025 as we prepare to migrate to our new Community platform in early December. Read our blog post for more info about this change.
Found this content helpful? Log in or sign up to leave a like!
Hi everyone,
I'm currently working on implementing content migrations using the Canvas API, specifically with migration_type=zip_file_importer.
After uploading a .zip file via the file upload flow (starting with POST /api/v1/folders/:folder_id/files), I receive an upload_url and upload_params. I can successfully upload the file to that URL using multipart/form-data.
However, to initiate the content migration, the API requires a pre_attachment or valid file reference. I noticed that the upload flow internally redirects to:
/api/v1/files/:id/create_success?uuid=...
I tried calling this endpoint manually via curl with the correct file ID and UUID, but I receive a 400 Bad Request. It seems this endpoint is intended for internal use by the browser after upload.
My questions are:
Is /api/v1/files/:id/create_success?uuid=... a supported or documented API endpoint?
If not, what is the official and recommended way to retrieve the uuid or attachment needed for the pre_attachment when importing with zip_file_importer?
Should we always fetch the uploaded file info using /api/v1/folders/:folder_id/files or /api/v1/users/self/files instead?
Any clarification or official guidance would be appreciated. Thanks!
I haven't tried uploading a zip for content migration myself, but I think the issue may be with querying progress.
Create_success is indeed a valid endpoint.
Did you follow the instructions in Content Migrations | Instructure Developer Documentation Portal?
Under "Create a content migration", "for file uploading", step 4 seems to suggest that querying progress may be required when using zip files, probably to wait until it finishes processing?
thank you for your help, i will
I'm not sure if this will affect what you're trying to do, but I wanted to mention it just in case since I see you're trying to retrieve the UUID...
On the Upcoming Canvas Changes page, they list the UUID field as being deprecated from the Files API response on 8/13/2025:
| Change Type | Change | Description | Effective Date | Resource |
|---|---|---|---|---|
| Deprecation |
Removal of the UUID field from the File API |
The UUID field is removed from the FIle API response in efforts to streamline response payloads and minimize exposure of internal identifiers. |
2025-08-13 |
None |
Just wanted to mention it in case this might impact what you're working on here.
Community helpTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign inTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign in