Cloudinary
Delivery and transformations
Delivery URLs and accepted transformations.
Use secure_url from the upload response for originals. Insert transformations between upload and the version.
https://media-develop.praxisusercontent.com/{library_id}/{resource_type}/upload/{transformation}/v{version}/{public_id}.{format}
For originals, omit transformation and its following slash. Only these transformations are accepted; others return errors.
| Parameter | Allowed values |
|---|---|
| w_ | 160, 320, 640, 1280 |
| c_ | fill, fit, limit, scale, pad |
| g_ | auto, center |
| f_ | auto, jpg, png, webp, avif |
| q_ | auto, auto:good, auto:eco |
| dpr_ | 1, 2 |
| so_ | Video time in seconds with .jpg; source at most 100 MiB |
w_160,c_fit
w_320,c_fill,g_center,f_webp,q_auto,dpr_2User-content safety
Delivery uses the separate registrable domain praxisusercontent.com, isolated from API and sign-in domains: media-develop.praxisusercontent.com on Develop and media.praxisusercontent.com in production. URL paths keep the same shape, and delivery carries no cookies.
- Only GET and HEAD are allowed; other methods return 405.
- Cookies and credentials are not forwarded upstream, and Set-Cookie is removed from responses.
- Every response includes
X-Content-Type-Options: nosniff. - HTML, SVG, XML, and JavaScript content includes
Content-Security-Policy: sandboxandContent-Disposition: attachment. - Range requests are supported, with 206 for partial content.