WooCommerce API — Download Product Images
Documentation menu
FetchLayer FetchLayer API

Download a product image

Stream a product image's actual bytes, using the store and url from an image returned by /products or /product-detail. The URL must belong to that store. Every image carries a downloadUrl that already contains both parameters — use it verbatim. HTTP Range requests are supported. This is a GET with query parameters, not a JSON POST, and it bills as one request. Image bytes are never fetched while reading a catalog, so this is the only route that moves them.

GET /media Media
https://api.fetchlayer.dev/woocommerce-stores/media
OpenAPI JSON

Headers

Authorization string required

Bearer token — your FetchLayer API key.

Parameters

store string required

The store the image belongs to. Passed as a query parameter.

url string required

Image URL, exactly as returned on a product. Must belong to that store. Passed as a query parameter.

filename string optional

Content-Disposition filename to serve the file as (max 200 characters).

Range string optional

Standard HTTP Range request header, for example bytes=0-65535. Sent as a header, not a query parameter.

Response Fields

media

Download a product image

(body) binary

The file itself. 200 for the whole file, 206 for a requested byte range.

Content-Type header

Media type of the file, e.g. image/jpeg or image/webp.

Content-Range header

Byte range served, on a 206 response.

Accept-Ranges header

Present when the file supports range requests.

Request

curl -X GET "https://api.fetchlayer.dev/woocommerce-stores/media?store=example-shop.com&url=https%3A%2F%2Fexample-shop.com%2Fwp-content%2Fuploads%2F2026%2F03%2Fcoastal-rain-shell.jpg&filename=coastal-rain-shell.jpg" \
  -H "Authorization: Bearer ss-your-key"

Response

{
  "note": "Binary file streamed back with Content-Type, Content-Length and Accept-Ranges headers."
}