The API key for your account. You can find this in your account settings.
Object Post uploads a single file to Square Cloud Blob Storage and returns a CDN-backed URL you can embed or share directly, without provisioning a bucket or managing ACLs yourself. It backs attachments, generated exports, and user-uploaded media for applications hosted on the platform.The uploaded file’s declared content type must match one of the platform’s allowed MIME types; anything outside that list is rejected as INVALID_FILE_TYPE before the file reaches storage. Objects can be given an automatic expiration between 1 and 365 days, after which they’re no longer served.Once a file is uploaded, browse it with Object List, remove it with Object Delete, or track usage against your plan’s quota with Account Stats.
Every account may have at most 4 uploads in progress simultaneously. Starting another upload while 4 are still running returns TOO_MANY_CONCURRENT_UPLOADS (429).
Hobby and Standard plans are additionally limited to 1 upload per second (RATE_LIMITED, 429). Pro and Enterprise plans are exempt from the per-second limit.
For security, .html and .svg files are always delivered as downloads (served as application/octet-stream) instead of being rendered inline. Setting auto_download=true applies the same forced-download behavior to any file type.
Uploads are validated against a strict MIME allowlist; anything outside it is rejected with INVALID_FILE_TYPE. The stored file extension is derived server-side from the MIME type.
The public CDN URL of the uploaded file: https://public-blob.squarecloud.dev/<user_id>/<key>, where the key is [prefix/]name[_hash][-exN].ext (hash and expiration suffixes appear only when used; the extension is derived from the MIME type).
// The provided object name is invalid.// Must adhere to the a to z, A to Z, 0 to 9, and _ pattern.{ "status": "error", "code": "INVALID_OBJECT_NAME"}
// The provided object prefix is invalid.// Must adhere to the a to z, A to Z, 0 to 9, and _ pattern.{ "status": "error", "code": "INVALID_OBJECT_PREFIX"}
// The provided expiration value for the object is invalid.// Must be a number ranging from 1 to 365. (value in days).{ "status": "error", "code": "INVALID_OBJECT_EXPIRE"}
// The provided security hash boolean is invalid.// Just set to true or false. 😅{ "status": "error", "code": "INVALID_OBJECT_SECURITY_HASH"}
// The provided auto-download boolean is invalid.// Just set to true or false. 😅{ "status": "error", "code": "INVALID_STORAGE_AUTO_DOWNLOAD"}
The current maximum file size is 100MB. In the future, we plan to increase it to 10GB. For now, the limit is 100MB due to technical and load-balancing constraints.
// The provided file is invalid.{ "status": "error", "code": "INVALID_FILE"}
// The provided file type is invalid.{ "status": "error", "code": "INVALID_FILE_TYPE"}
// The file size is too small (< 1kb).{ "status": "error", "code": "FILE_TOO_SMALL"}