Files
Requires scope merchant-media-read.
Lists original images uploaded by this app installation, newest first, with cursor pagination (limit + starting_after). Each image has the same id, url and variants shape as product images. Only this installation’s uploads are visible.
Authorization
merchantKey The store's private API key (sk_live_…, sk_test_… on a dev store) from Dashboard → Settings → API keys. It is bound to one store and carries the scopes the merchant granted; each operation names the scope it needs. Server-side only — never ship it to a browser or an app bundle.
In: header
Query Parameters
1 <= value <= 100Header Parameters
A private API key (sk_live_…, sk_test_… on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or vendor_id is sent; its scopes decide which operations it may call. pk_ public keys never reach this API. Keep it on your server.
Your own correlation id (8–128 chars, ^[A-Za-z0-9_.:-]+$). Echoed back on the response and on every log line of the request; one is generated when you omit it.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/files?limit=10" \ -H "X-Client-Key: {{merchantKey}}"{ "data": [ { "id": 88214, "url": "https://media.usequeek.com/uploads/stores/1095/jollof-rice-party-pack.jpg", "thumbnail_url": "https://media.usequeek.com/uploads/stores/1095/jollof-rice-party-pack-thumb.webp", "variants": { "thumb": { "url": "https://media.usequeek.com/uploads/stores/1095/jollof-rice-party-pack-thumb.webp", "w": null, "h": null }, "card": { "url": "https://media.usequeek.com/uploads/stores/1095/jollof-rice-party-pack-card.webp", "w": 480, "h": 480 }, "card2x": { "url": "https://media.usequeek.com/uploads/stores/1095/jollof-rice-party-pack-card2x.webp", "w": 800, "h": 800 }, "view": { "url": "https://media.usequeek.com/uploads/stores/1095/jollof-rice-party-pack-view.webp", "w": 1200, "h": 1200 }, "wa": { "url": "https://media.usequeek.com/uploads/stores/1095/jollof-rice-party-pack-wa.jpg", "w": 1080, "h": 1080 }, "original": { "url": "https://media.usequeek.com/uploads/stores/1095/jollof-rice-party-pack.jpg", "w": 1200, "h": 1200 } }, "mime_type": "image/jpeg", "size": 0, "width": 1200, "height": 1200, "created_at": null } ], "has_more": true, "next_cursor": "eyJpZCI6ODgyMTQsIl9wb2ludHNUb05leHRJdGVtcyI6dHJ1ZX0"}Requires scope merchant-media-create.
Uploads one JPEG, PNG or WebP image as multipart/form-data using the file field. The image is added to the store media library and belongs to this app installation. Reuse its id with media_id on products/{product}/images. A same-byte retry without an Idempotency-Key returns the existing image.
Authorization
merchantKey The store's private API key (sk_live_…, sk_test_… on a dev store) from Dashboard → Settings → API keys. It is bound to one store and carries the scopes the merchant granted; each operation names the scope it needs. Server-side only — never ship it to a browser or an app bundle.
In: header
Header Parameters
A private API key (sk_live_…, sk_test_… on a dev store) minted under Dashboard → Settings → API keys. The key is bound to ONE store, so no vendor header or vendor_id is sent; its scopes decide which operations it may call. pk_ public keys never reach this API. Keep it on your server.
Your own correlation id (8–128 chars, ^[A-Za-z0-9_.:-]+$). Echoed back on the response and on every log line of the request; one is generated when you omit it.
Retry-safe write key. The same key with the same body replays the stored response for 24h with Idempotent-Replayed: true; with a different body it is 409 idempotency_key_reuse; while the first call is still running it is 409 idempotency_key_in_progress.
Request Body
multipart/form-data
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/files" \ -H "X-Client-Key: {{merchantKey}}" \ -F file="(binary image)"{ "status": "success", "message": "Image already uploaded", "data": { "id": 88214, "url": "https://media.usequeek.com/uploads/stores/1095/jollof-rice-party-pack.jpg", "thumbnail_url": "https://media.usequeek.com/uploads/stores/1095/jollof-rice-party-pack-thumb.webp", "variants": { "thumb": { "url": "https://media.usequeek.com/uploads/stores/1095/jollof-rice-party-pack-thumb.webp", "w": null, "h": null }, "card": { "url": "https://media.usequeek.com/uploads/stores/1095/jollof-rice-party-pack-card.webp", "w": 480, "h": 480 }, "card2x": { "url": "https://media.usequeek.com/uploads/stores/1095/jollof-rice-party-pack-card2x.webp", "w": 800, "h": 800 }, "view": { "url": "https://media.usequeek.com/uploads/stores/1095/jollof-rice-party-pack-view.webp", "w": 1200, "h": 1200 }, "wa": { "url": "https://media.usequeek.com/uploads/stores/1095/jollof-rice-party-pack-wa.jpg", "w": 1080, "h": 1080 }, "original": { "url": "https://media.usequeek.com/uploads/stores/1095/jollof-rice-party-pack.jpg", "w": 1200, "h": 1200 } }, "mime_type": "image/jpeg", "size": 0, "width": 1200, "height": 1200, "created_at": null }}