Skip to main content
ClearLake keeps file bytes out of ordinary API responses. The API gives you a short-lived URL, and your client transfers the file directly through that URL.

Upload an object

POST /clearlake/buckets/:name/objects/upload-url requires clearlake:write:
Response:
The URL is valid for 300 seconds. Upload directly to uploadUrl and include the intended Content-Type. Treat the URL as a temporary bearer credential. Do not log it, store it as a permanent credential, or reuse it after expiry.

Download an object

GET /clearlake/buckets/:name/objects/*/download-url requires clearlake:read. Response:
Download URLs are valid for 300 seconds. Generate a new URL when the previous one expires.

Upload example

Private and public transfers

Private objects require a valid short-lived download URL. Public objects can also be served through a Waymark custom domain. Private ClearLake buckets are not supported through Waymark custom domains.