WalletD developers
Catalog

Upload one image and get the URL to store on a profile or offering

Stores one image in the deployment's object store and answers with its public URL, which you then pass as logo_url or image_url on a separate profile or offering write; uploading alone changes noth...

POST/v1/media

Stores one image in the deployment's object store and answers with its public URL, which you then pass as logo_url or image_url on a separate profile or offering write; uploading alone changes nothing a shopper can see. The body is multipart/form-data with a single file part, capped at 5 MiB. The content type is sniffed from the bytes rather than trusted from the part header, so a mislabelled upload is still classified correctly or rejected. Any authenticated principal may upload. Refuses invalid_request (400) when there is no file part, unsupported_type (415) for anything that is not PNG, JPEG, WebP or GIF, and media_disabled (501) on a deployment with no object store configured.

Authorization

bearerAuth
AuthorizationBearer <token>

A tenant API key (sk_{env}_{id}_{secret}), a wallet user token, or an IdP access token. Which principal the credential resolves to decides the scopes it carries; see the authentication guide.

In: header

Request Body

multipart/form-data

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

curl -X POST "https://example.com/v1/media" \  -F file="null"
{  "url": "string"}