Skip to content

Get a brand's public image

The media.public.get operation: GET /api/v1/public/media/{fileId} in the REST API and the media_public_get tool in the MCP server.

GET/api/v1/public/media/{fileId}

Returns a brand's uploaded logo or icon (type, size, SHA-256 and path) without authentication: customers see them on checkout, the portal and in emails. Only brand images of brands in test or live mode are public; any other file ID is resource_not_found.

At a glance

  • REST: GET /api/v1/public/media/{fileId}
  • MCP tool: media_public_get
  • Operation ID: media.public.get
  • Scope: Brand
  • Permission: brands:read
  • Risk tier: read
  • Dry run: Not supported
  • Idempotency: Not needed (read only)
  • Modes: Test and live
  • Authentication: None (a public endpoint, rate-limited per IP address)
  • Since: M13

Request

Path parameters

FieldTypeDescription
fileIdfile_… IDThe image's file ID (file_…), as in its /media path.

Query parameters

This operation takes no query parameters.

Response

200 OK with a JSON object:

FieldTypeDescription
idfile_… ID
object"media"
kindone of org_avatar, entity_avatar, brand_logo, brand_icon, user_avatar
contentTypeone of image/png, image/jpeg, image/webp
sizeinteger (at least 0)
sha256stringHex SHA-256 of the bytes; the route checks it.
urlstring/media/{fileId}/{sha256}.{ext}, relative to the app's URL.
visibilityone of public, privatepublic: anyone may load it (brand logos and icons); private: only who may see it.

Examples

A brand's icon

HTTP
GET /api/v1/public/media/file_01m4tx5nj8emwbyf7y9vcf47yc

Response (200):

JSON
{
  "id": "file_01m4tx5nj8emwbyf7y9vcf47yc",
  "object": "media",
  "kind": "brand_icon",
  "contentType": "image/png",
  "size": 68,
  "sha256": "63ef318d96b5d0d0ceba6e04a4e622b1158335cdc67c49e27839132c6f655058",
  "url": "/media/file_01m4tx5nj8emwbyf7y9vcf47yc/63ef318d96b5d0d0ceba6e04a4e622b1158335cdc67c49e27839132c6f655058.png",
  "visibility": "public"
}

Errors

CodeHTTP statusWhenWhat to do
validation_failed400fileId isn't a file ID.Fix the fields listed in details.issues and send the request again.
resource_not_found404There is no such brand image, or its brand isn't in test or live mode.Check the ID and that your credentials are scoped to the right organization, entity, brand and mode.

It can also return these common errors: api_version_unsupported, scope_required, dry_run_not_supported, rate_limited, internal_error.