v21

latestOpenAPI 3.1.0raw.githubusercontent.com2026-08-051994411.2 MB
Uploads

Upload an avatar or banner image

Uploads image BYTES (multipart/form-data: file, slot = avatar|banner, optional targetKind + targetId) and returns a storageId already bound to the API key owner, plus its public URL. Branding writes such as PATCH /leagues/{leagueId}/branding only accept storage ids minted here - a raw id from /uploads/image-url is refused with error_image_blob_unbound. Avatars are capped at 1 MB and banners at 2 MB; SVG is rejected and the stored image is NSFW-scanned. Requires uploads.upload:read-write and the writes feature (api_pro).

post/uploads/image

Response

The stored, bound image.

storageIdstring required

Convex storage id, already bound to the API key owner. Use it on a write.

urlstring required

Public CDN URL for the stored image.