Heads up, our devs are blazing ahead—docs are catching up, so some features might not be fully documented yet.

ProductMedia

ProductMedia

List product media

get

List media (images, videos) for a given product.

Authorizations
Path parameters
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
productUidstringRequired

Reference to a Product.

Pattern: ^[A-Za-z0-9-_]+
Query parameters
pageNumberintegerOptional

Reference to a specific page in a result set.

pageSizeintegerOptional

The number of items per page in a result set.

Responses
200
Example response
application/json
get
GET /v2/tenants/{tenantUid}/products/{productUid}/media HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

Example response

{
  "items": [
    {
      "productMediaUid": "text",
      "mainUrl": "text",
      "thumbnailUrl": "text",
      "position": 1,
      "width": 1,
      "height": 1,
      "isCoverImage": true,
      "source": "FLOW",
      "createdAt": "2025-07-30T18:19:16.388Z",
      "createdBy": "text",
      "lastModifiedAt": "2025-07-30T18:19:16.388Z",
      "lastModifiedBy": "text"
    }
  ],
  "paging": {
    "pageNumber": 1,
    "pageSize": 1,
    "totalCount": 1
  }
}

Create new product media

post

When you already have the images that you want to use, add them as the URL. Note that the URLs must be publicly accessible.

Authorizations
Path parameters
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
productUidstringRequired

Reference to a Product.

Pattern: ^[A-Za-z0-9-_]+
Body
mainUrlstringRequired
thumbnailUrlstringOptional
positionintegerOptional
setAsCoverImagebooleanOptional
productMediaUidstringOptionalPattern: ^[A-Za-z0-9-_]*
Responses
201
Example response
application/json
post
POST /v2/tenants/{tenantUid}/products/{productUid}/media HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 101

{
  "mainUrl": "text",
  "thumbnailUrl": "text",
  "position": 1,
  "setAsCoverImage": true,
  "productMediaUid": "text"
}
201

Example response

{
  "productMediaUid": "text",
  "mainUrl": "text",
  "thumbnailUrl": "text",
  "position": 1,
  "width": 1,
  "height": 1,
  "isCoverImage": true,
  "source": "FLOW",
  "createdAt": "2025-07-30T18:19:16.388Z",
  "createdBy": "text",
  "lastModifiedAt": "2025-07-30T18:19:16.388Z",
  "lastModifiedBy": "text"
}

Get a product media record

get

Retrieve the data record for the given product media.

Authorizations
Path parameters
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
productUidstringRequired

Reference to a Product.

Pattern: ^[A-Za-z0-9-_]+
productMediaUidstringRequired

Reference to a product media record.

Responses
200
Example response
application/json
get
GET /v2/tenants/{tenantUid}/products/{productUid}/media/{productMediaUid} HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

Example response

{
  "productMediaUid": "text",
  "mainUrl": "text",
  "thumbnailUrl": "text",
  "position": 1,
  "width": 1,
  "height": 1,
  "isCoverImage": true,
  "source": "FLOW",
  "createdAt": "2025-07-30T18:19:16.388Z",
  "createdBy": "text",
  "lastModifiedAt": "2025-07-30T18:19:16.388Z",
  "lastModifiedBy": "text"
}

Update a product media record

put

Update a product media record.

Authorizations
Path parameters
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
productUidstringRequired

Reference to a Product.

Pattern: ^[A-Za-z0-9-_]+
productMediaUidstringRequired

Reference to a product media record.

Body
mainUrlstringOptional
thumbnailUrlstringOptional
positionintegerOptional
setAsCoverImagebooleanOptional
Responses
200
Example response
application/json
put
PUT /v2/tenants/{tenantUid}/products/{productUid}/media/{productMediaUid} HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 76

{
  "mainUrl": "text",
  "thumbnailUrl": "text",
  "position": 1,
  "setAsCoverImage": true
}
200

Example response

{
  "productMediaUid": "text",
  "mainUrl": "text",
  "thumbnailUrl": "text",
  "position": 1,
  "width": 1,
  "height": 1,
  "isCoverImage": true,
  "source": "FLOW",
  "createdAt": "2025-07-30T18:19:16.388Z",
  "createdBy": "text",
  "lastModifiedAt": "2025-07-30T18:19:16.388Z",
  "lastModifiedBy": "text"
}

Delete a product media record.

delete

Delete a product media record.

Authorizations
Path parameters
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
productUidstringRequired

Reference to a Product.

Pattern: ^[A-Za-z0-9-_]+
productMediaUidstringRequired

Reference to a product media record.

Responses
204
No Content
delete
DELETE /v2/tenants/{tenantUid}/products/{productUid}/media/{productMediaUid} HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
204

No Content

No content

Upload product media

post

Upload a new image or video. We accept two kinds of values in the file field, either base64 a Base64 encoded string of the file content, or URL a URL of the file from where to download the content (make sure that the URL is accessible).

Filename is the name with which the file will be uploaded, e.g. "new-image.jpg".

Authorizations
Path parameters
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
productUidstringRequired

Reference to a Product.

Pattern: ^[A-Za-z0-9-_]+
Body
mediastringRequired

The file content as base64 or source URL.

filenamestringRequired
positionintegerOptional
productMediaUidstringOptionalPattern: ^[A-Za-z0-9-_]+
setAsCoverImagebooleanOptional
Responses
201
Example response
application/json
post
POST /v2/tenants/{tenantUid}/products/{productUid}/media/upload HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 95

{
  "media": "text",
  "filename": "text",
  "position": 1,
  "productMediaUid": "text",
  "setAsCoverImage": true
}
201

Example response

{
  "productMediaUid": "text",
  "mainUrl": "text",
  "thumbnailUrl": "text",
  "position": 1,
  "width": 1,
  "height": 1,
  "isCoverImage": true,
  "source": "FLOW",
  "createdAt": "2025-07-30T18:19:16.388Z",
  "createdBy": "text",
  "lastModifiedAt": "2025-07-30T18:19:16.388Z",
  "lastModifiedBy": "text"
}

Set all media for a product

post

Set all the media items for a product in one go. The payload is an array refelecting all the media on the given product. In addition to adding the new entries, this will also remove any exising entries that are not in the payload. So an empty array will delete all the product media on the product.

If no media is set as cover image, the first media added will be used. Only one image can be set as the cover image.

Authorizations
Path parameters
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
productUidstringRequired

Reference to a Product.

Pattern: ^[A-Za-z0-9-_]+
Body
Responses
204
No Content
post
POST /v2/tenants/{tenantUid}/products/{productUid}/media/batch HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 113

{
  "items": [
    {
      "mainUrl": "text",
      "thumbnailUrl": "text",
      "position": 1,
      "setAsCoverImage": true,
      "productMediaUid": "text"
    }
  ]
}
204

No Content

No content

Was this helpful?