Upload a file
POST /rest/v1/files
Upload an image binary when it isn't publicly hosted anywhere. The returned url can be used in product images[]. Max 10 MB; JPEG, PNG, WebP or GIF, checked on the bytes (422 unsupported_file_type / file_too_large otherwise). The file is stored with its real type: the url ends in .jpg, .png, .webp or .gif and is served with the matching Content-Type.
Required scope: products:write.
Authorization
apiKey Authorization: Bearer nbl_live_... (or nbl_test_... for test mode). Test-mode writes are validated and simulated but never persisted and never touch channels; simulated results are marked simulated.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/files" \ -H "Content-Type: application/json" \ -d '{ "base64": "string" }'{ "id": "file_9dk2a", "object": "file", "url": "http://example.com"}Last updated on October 18, 2026
Need help?
Email us and a human replies, usually within one business day.