> For the complete documentation index, see [llms.txt](https://help.mimeeq.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.mimeeq.com/developers/galleries.md).

# Galleries

Named, localized media galleries (images/videos) for the product configurator.

## List Galleries

> List the customer's galleries. Filter by name with \`search\`; localized fields come back translated — to \`lang\` when given, otherwise to your customer's default language. The full \`{ language: text }\` maps are a detail-read feature; the list is always translated. Cursor-paginated.\
> \
> Requires the \`galleries:read\` scope.

```json
{"openapi":"3.1.0","info":{"title":"Mimeeq External API","version":"1.0.0"},"tags":[{"name":"Galleries","description":"Named, localized media galleries (images/videos) for the product configurator."}],"servers":[{"url":"https://admin.mimeeqapi.com","description":"Production"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"API key sent as a bearer token (mk_live_… / mk_test_…)."}},"schemas":{"GalleriesList":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"galleryId":{"type":"string","pattern":"^GALL-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","description":"Gallery identifier (GALL-<uuid>)."},"name":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}]},{"type":"null"}],"description":"Translated text when `lang` is set, otherwise the full `{ language: text }` map. Languages with no text are omitted, and a field with no text at all is null."},"numberOfItems":{"type":"number"},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"modifiedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["galleryId","name","numberOfItems","createdAt","modifiedAt"],"additionalProperties":false}},"page":{"type":"object","properties":{"limit":{"type":"number"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["limit","nextCursor"],"additionalProperties":false}},"required":["data","page"],"additionalProperties":false},"PublicError":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"},"details":{"description":"Optional error-specific details (e.g. per-field validation reasons)."}}}}},"paths":{"/v1/galleries":{"get":{"summary":"List Galleries","tags":["Galleries"],"description":"List the customer's galleries. Filter by name with `search`; localized fields come back translated — to `lang` when given, otherwise to your customer's default language. The full `{ language: text }` maps are a detail-read feature; the list is always translated. Cursor-paginated.\n\nRequires the `galleries:read` scope.","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GalleriesList"}}}},"400":{"description":"Invalid request data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"403":{"description":"The API key lacks the required scope (`scope_denied`), or the operation is not permitted for this account (`operation_not_permitted`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}},"parameters":[{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":5000}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1}},{"name":"search","in":"query","required":false,"schema":{"type":"string","minLength":1,"description":"Substring match on the gallery name."}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","minLength":2,"maxLength":10,"description":"Language code to translate localized fields to (falls back if unavailable)."}}]}}}}
```

## Create Gallery

> Create a gallery. Only the localized name is required; you may also pass the general fields (description, number of columns) and media items to build the whole gallery in one call. Extras are applied by a follow-up update after the gallery exists; if that step fails the gallery is still created and the response shows it without them.\
> \
> Requires the \`galleries:write\` scope.

```json
{"openapi":"3.1.0","info":{"title":"Mimeeq External API","version":"1.0.0"},"tags":[{"name":"Galleries","description":"Named, localized media galleries (images/videos) for the product configurator."}],"servers":[{"url":"https://admin.mimeeqapi.com","description":"Production"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"API key sent as a bearer token (mk_live_… / mk_test_…)."}},"schemas":{"GalleriesMutation":{"type":"object","properties":{"data":{"type":"object","properties":{"galleryId":{"type":"string","pattern":"^GALL-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","description":"Gallery identifier (GALL-<uuid>)."},"name":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}]},{"type":"null"}],"description":"Translated text when `lang` is set, otherwise the full `{ language: text }` map. Languages with no text are omitted, and a field with no text at all is null."},"numberOfItems":{"type":"number"},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"modifiedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}]},{"type":"null"}],"description":"Translated text when `lang` is set, otherwise the full `{ language: text }` map. Languages with no text are omitted, and a field with no text at all is null."},"numColumns":{"anyOf":[{"type":"string"},{"type":"null"}]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"mediaType":{"type":"string","enum":["IMAGE","VIDEO"]},"mediaSource":{"type":"string","enum":["CUSTOM","MEDIA_LIBRARY"]},"caption":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}]},{"type":"null"}],"description":"Translated text when `lang` is set, otherwise the full `{ language: text }` map. Languages with no text are omitted, and a field with no text at all is null."},"fileId":{"anyOf":[{"type":"string"},{"type":"null"}]},"filePath":{"anyOf":[{"type":"string"},{"type":"null"}]},"url":{"anyOf":[{"type":"string"},{"type":"null"}]},"loop":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"autoplay":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"required":["id","mediaType","mediaSource","caption","fileId","filePath","url","loop","autoplay"],"additionalProperties":false}}},"required":["galleryId"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"PublicError":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"},"details":{"description":"Optional error-specific details (e.g. per-field validation reasons)."}}},"GalleriesCreateRequest":{"type":"object","properties":{"name":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Gallery name, keyed by language code."},"description":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},{"type":"null"}]},"numColumns":{"type":"string","minLength":1},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":255},"mediaType":{"type":"string","enum":["IMAGE","VIDEO"]},"mediaSource":{"type":"string","enum":["CUSTOM","MEDIA_LIBRARY"]},"caption":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]}},"fileId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"filePath":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"url":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"loop":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"autoplay":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"required":["id","mediaType","mediaSource"],"additionalProperties":false}}},"required":["name"],"additionalProperties":false}}},"paths":{"/v1/galleries":{"post":{"summary":"Create Gallery","tags":["Galleries"],"description":"Create a gallery. Only the localized name is required; you may also pass the general fields (description, number of columns) and media items to build the whole gallery in one call. Extras are applied by a follow-up update after the gallery exists; if that step fails the gallery is still created and the response shows it without them.\n\nRequires the `galleries:write` scope.","responses":{"201":{"description":"Created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GalleriesMutation"}}}},"400":{"description":"Invalid request data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"403":{"description":"The API key lacks the required scope (`scope_denied`), or the operation is not permitted for this account (`operation_not_permitted`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GalleriesCreateRequest"}}}}}}}}
```

## Get Gallery

> Get a gallery with its media items. The localized name, description and item captions are translated to \`lang\`; omit \`lang\` to get the full \`{ language: text }\` maps instead — the items upsert stores an item exactly as sent, so editing one caption language means sending the others back with it.\
> \
> Requires the \`galleries:read\` scope.

```json
{"openapi":"3.1.0","info":{"title":"Mimeeq External API","version":"1.0.0"},"tags":[{"name":"Galleries","description":"Named, localized media galleries (images/videos) for the product configurator."}],"servers":[{"url":"https://admin.mimeeqapi.com","description":"Production"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"API key sent as a bearer token (mk_live_… / mk_test_…)."}},"schemas":{"GalleriesDetail":{"type":"object","properties":{"data":{"type":"object","properties":{"galleryId":{"type":"string","pattern":"^GALL-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","description":"Gallery identifier (GALL-<uuid>)."},"name":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}]},{"type":"null"}],"description":"Translated text when `lang` is set, otherwise the full `{ language: text }` map. Languages with no text are omitted, and a field with no text at all is null."},"numberOfItems":{"type":"number"},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"modifiedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}]},{"type":"null"}],"description":"Translated text when `lang` is set, otherwise the full `{ language: text }` map. Languages with no text are omitted, and a field with no text at all is null."},"numColumns":{"anyOf":[{"type":"string"},{"type":"null"}]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"mediaType":{"type":"string","enum":["IMAGE","VIDEO"]},"mediaSource":{"type":"string","enum":["CUSTOM","MEDIA_LIBRARY"]},"caption":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}]},{"type":"null"}],"description":"Translated text when `lang` is set, otherwise the full `{ language: text }` map. Languages with no text are omitted, and a field with no text at all is null."},"fileId":{"anyOf":[{"type":"string"},{"type":"null"}]},"filePath":{"anyOf":[{"type":"string"},{"type":"null"}]},"url":{"anyOf":[{"type":"string"},{"type":"null"}]},"loop":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"autoplay":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"required":["id","mediaType","mediaSource","caption","fileId","filePath","url","loop","autoplay"],"additionalProperties":false}}},"required":["galleryId","name","numberOfItems","createdAt","modifiedAt","description","numColumns","items"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"PublicError":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"},"details":{"description":"Optional error-specific details (e.g. per-field validation reasons)."}}}}},"paths":{"/v1/galleries/{galleryId}":{"get":{"summary":"Get Gallery","tags":["Galleries"],"description":"Get a gallery with its media items. The localized name, description and item captions are translated to `lang`; omit `lang` to get the full `{ language: text }` maps instead — the items upsert stores an item exactly as sent, so editing one caption language means sending the others back with it.\n\nRequires the `galleries:read` scope.","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GalleriesDetail"}}}},"400":{"description":"Invalid request data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"403":{"description":"The API key lacks the required scope (`scope_denied`), or the operation is not permitted for this account (`operation_not_permitted`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}},"parameters":[{"name":"galleryId","in":"path","required":true,"schema":{"type":"string","pattern":"^GALL-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","description":"Gallery identifier (GALL-<uuid>)."}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","minLength":2,"maxLength":10,"description":"Language code to translate localized fields to (falls back if unavailable)."}}]}}}}
```

## Update Gallery

> Update the general fields (localized name, description, number of columns). Only the fields you send are changed; omitted fields keep their stored value. Send \`description: null\` to clear the description. Media items are preserved (managed via their own endpoint).\
> \
> Requires the \`galleries:write\` scope.

```json
{"openapi":"3.1.0","info":{"title":"Mimeeq External API","version":"1.0.0"},"tags":[{"name":"Galleries","description":"Named, localized media galleries (images/videos) for the product configurator."}],"servers":[{"url":"https://admin.mimeeqapi.com","description":"Production"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"API key sent as a bearer token (mk_live_… / mk_test_…)."}},"schemas":{"GalleriesDetail":{"type":"object","properties":{"data":{"type":"object","properties":{"galleryId":{"type":"string","pattern":"^GALL-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","description":"Gallery identifier (GALL-<uuid>)."},"name":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}]},{"type":"null"}],"description":"Translated text when `lang` is set, otherwise the full `{ language: text }` map. Languages with no text are omitted, and a field with no text at all is null."},"numberOfItems":{"type":"number"},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"modifiedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}]},{"type":"null"}],"description":"Translated text when `lang` is set, otherwise the full `{ language: text }` map. Languages with no text are omitted, and a field with no text at all is null."},"numColumns":{"anyOf":[{"type":"string"},{"type":"null"}]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"mediaType":{"type":"string","enum":["IMAGE","VIDEO"]},"mediaSource":{"type":"string","enum":["CUSTOM","MEDIA_LIBRARY"]},"caption":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}]},{"type":"null"}],"description":"Translated text when `lang` is set, otherwise the full `{ language: text }` map. Languages with no text are omitted, and a field with no text at all is null."},"fileId":{"anyOf":[{"type":"string"},{"type":"null"}]},"filePath":{"anyOf":[{"type":"string"},{"type":"null"}]},"url":{"anyOf":[{"type":"string"},{"type":"null"}]},"loop":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"autoplay":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"required":["id","mediaType","mediaSource","caption","fileId","filePath","url","loop","autoplay"],"additionalProperties":false}}},"required":["galleryId","name","numberOfItems","createdAt","modifiedAt","description","numColumns","items"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"PublicError":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"},"details":{"description":"Optional error-specific details (e.g. per-field validation reasons)."}}},"GalleriesUpdateRequest":{"type":"object","properties":{"name":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Gallery name, keyed by language code."},"description":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},{"type":"null"}]},"numColumns":{"type":"string","minLength":1}},"additionalProperties":false}}},"paths":{"/v1/galleries/{galleryId}":{"put":{"summary":"Update Gallery","tags":["Galleries"],"description":"Update the general fields (localized name, description, number of columns). Only the fields you send are changed; omitted fields keep their stored value. Send `description: null` to clear the description. Media items are preserved (managed via their own endpoint).\n\nRequires the `galleries:write` scope.","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GalleriesDetail"}}}},"400":{"description":"Invalid request data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"403":{"description":"The API key lacks the required scope (`scope_denied`), or the operation is not permitted for this account (`operation_not_permitted`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}},"parameters":[{"name":"galleryId","in":"path","required":true,"schema":{"type":"string","pattern":"^GALL-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","description":"Gallery identifier (GALL-<uuid>)."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GalleriesUpdateRequest"}}}}}}}}
```

## Add or Update Gallery Items

> Add or update media items without re-sending the whole list. An item whose \`id\` is already in the gallery replaces that item where it stands (a submitted item is stored as sent, so omitted optional fields are cleared); the rest are appended in the order given. Items you do not send are left exactly as stored, captions in every language included.\
> \
> Requires the \`galleries:write\` scope.

```json
{"openapi":"3.1.0","info":{"title":"Mimeeq External API","version":"1.0.0"},"tags":[{"name":"Galleries","description":"Named, localized media galleries (images/videos) for the product configurator."}],"servers":[{"url":"https://admin.mimeeqapi.com","description":"Production"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"API key sent as a bearer token (mk_live_… / mk_test_…)."}},"schemas":{"GalleriesDetail":{"type":"object","properties":{"data":{"type":"object","properties":{"galleryId":{"type":"string","pattern":"^GALL-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","description":"Gallery identifier (GALL-<uuid>)."},"name":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}]},{"type":"null"}],"description":"Translated text when `lang` is set, otherwise the full `{ language: text }` map. Languages with no text are omitted, and a field with no text at all is null."},"numberOfItems":{"type":"number"},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"modifiedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}]},{"type":"null"}],"description":"Translated text when `lang` is set, otherwise the full `{ language: text }` map. Languages with no text are omitted, and a field with no text at all is null."},"numColumns":{"anyOf":[{"type":"string"},{"type":"null"}]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"mediaType":{"type":"string","enum":["IMAGE","VIDEO"]},"mediaSource":{"type":"string","enum":["CUSTOM","MEDIA_LIBRARY"]},"caption":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}]},{"type":"null"}],"description":"Translated text when `lang` is set, otherwise the full `{ language: text }` map. Languages with no text are omitted, and a field with no text at all is null."},"fileId":{"anyOf":[{"type":"string"},{"type":"null"}]},"filePath":{"anyOf":[{"type":"string"},{"type":"null"}]},"url":{"anyOf":[{"type":"string"},{"type":"null"}]},"loop":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"autoplay":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"required":["id","mediaType","mediaSource","caption","fileId","filePath","url","loop","autoplay"],"additionalProperties":false}}},"required":["galleryId","name","numberOfItems","createdAt","modifiedAt","description","numColumns","items"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"PublicError":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"},"details":{"description":"Optional error-specific details (e.g. per-field validation reasons)."}}},"GalleriesItemsRequest2":{"type":"object","properties":{"items":{"minItems":1,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":255},"mediaType":{"type":"string","enum":["IMAGE","VIDEO"]},"mediaSource":{"type":"string","enum":["CUSTOM","MEDIA_LIBRARY"]},"caption":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]}},"fileId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"filePath":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"url":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"loop":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"autoplay":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"required":["id","mediaType","mediaSource"],"additionalProperties":false}}},"required":["items"],"additionalProperties":false}}},"paths":{"/v1/galleries/{galleryId}/items":{"post":{"summary":"Add or Update Gallery Items","tags":["Galleries"],"description":"Add or update media items without re-sending the whole list. An item whose `id` is already in the gallery replaces that item where it stands (a submitted item is stored as sent, so omitted optional fields are cleared); the rest are appended in the order given. Items you do not send are left exactly as stored, captions in every language included.\n\nRequires the `galleries:write` scope.","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GalleriesDetail"}}}},"400":{"description":"Invalid request data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"403":{"description":"The API key lacks the required scope (`scope_denied`), or the operation is not permitted for this account (`operation_not_permitted`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}},"parameters":[{"name":"galleryId","in":"path","required":true,"schema":{"type":"string","pattern":"^GALL-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","description":"Gallery identifier (GALL-<uuid>)."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GalleriesItemsRequest2"}}}}}}}}
```

## Update Gallery Items

> Replace the full media list of a gallery: items omitted from the list are removed. Each item is stored as sent, so include every field you want to keep (e.g. \`caption\`, \`loop\`, \`autoplay\`) — omitting one clears it. Array order is the display order. Send an empty list to clear the gallery. The name, description and columns are preserved.\
> \
> Requires the \`galleries:write\` scope.

```json
{"openapi":"3.1.0","info":{"title":"Mimeeq External API","version":"1.0.0"},"tags":[{"name":"Galleries","description":"Named, localized media galleries (images/videos) for the product configurator."}],"servers":[{"url":"https://admin.mimeeqapi.com","description":"Production"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"API key sent as a bearer token (mk_live_… / mk_test_…)."}},"schemas":{"GalleriesDetail":{"type":"object","properties":{"data":{"type":"object","properties":{"galleryId":{"type":"string","pattern":"^GALL-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","description":"Gallery identifier (GALL-<uuid>)."},"name":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}]},{"type":"null"}],"description":"Translated text when `lang` is set, otherwise the full `{ language: text }` map. Languages with no text are omitted, and a field with no text at all is null."},"numberOfItems":{"type":"number"},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"modifiedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}]},{"type":"null"}],"description":"Translated text when `lang` is set, otherwise the full `{ language: text }` map. Languages with no text are omitted, and a field with no text at all is null."},"numColumns":{"anyOf":[{"type":"string"},{"type":"null"}]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"mediaType":{"type":"string","enum":["IMAGE","VIDEO"]},"mediaSource":{"type":"string","enum":["CUSTOM","MEDIA_LIBRARY"]},"caption":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}]},{"type":"null"}],"description":"Translated text when `lang` is set, otherwise the full `{ language: text }` map. Languages with no text are omitted, and a field with no text at all is null."},"fileId":{"anyOf":[{"type":"string"},{"type":"null"}]},"filePath":{"anyOf":[{"type":"string"},{"type":"null"}]},"url":{"anyOf":[{"type":"string"},{"type":"null"}]},"loop":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"autoplay":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"required":["id","mediaType","mediaSource","caption","fileId","filePath","url","loop","autoplay"],"additionalProperties":false}}},"required":["galleryId","name","numberOfItems","createdAt","modifiedAt","description","numColumns","items"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"PublicError":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"},"details":{"description":"Optional error-specific details (e.g. per-field validation reasons)."}}},"GalleriesItemsRequest":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":255},"mediaType":{"type":"string","enum":["IMAGE","VIDEO"]},"mediaSource":{"type":"string","enum":["CUSTOM","MEDIA_LIBRARY"]},"caption":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"anyOf":[{"type":"string"},{"type":"null"}]}},"fileId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"filePath":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"url":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"loop":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"autoplay":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"required":["id","mediaType","mediaSource"],"additionalProperties":false}}},"required":["items"],"additionalProperties":false}}},"paths":{"/v1/galleries/{galleryId}/items":{"put":{"summary":"Update Gallery Items","tags":["Galleries"],"description":"Replace the full media list of a gallery: items omitted from the list are removed. Each item is stored as sent, so include every field you want to keep (e.g. `caption`, `loop`, `autoplay`) — omitting one clears it. Array order is the display order. Send an empty list to clear the gallery. The name, description and columns are preserved.\n\nRequires the `galleries:write` scope.","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GalleriesDetail"}}}},"400":{"description":"Invalid request data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"403":{"description":"The API key lacks the required scope (`scope_denied`), or the operation is not permitted for this account (`operation_not_permitted`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}},"parameters":[{"name":"galleryId","in":"path","required":true,"schema":{"type":"string","pattern":"^GALL-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","description":"Gallery identifier (GALL-<uuid>)."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GalleriesItemsRequest"}}}}}}}}
```

## Remove Gallery Items

> Remove media items by id. Ids that are not in the gallery are ignored, and the remaining items keep their order. Removing nothing leaves the gallery untouched.\
> \
> Requires the \`galleries:write\` scope.

```json
{"openapi":"3.1.0","info":{"title":"Mimeeq External API","version":"1.0.0"},"tags":[{"name":"Galleries","description":"Named, localized media galleries (images/videos) for the product configurator."}],"servers":[{"url":"https://admin.mimeeqapi.com","description":"Production"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"API key sent as a bearer token (mk_live_… / mk_test_…)."}},"schemas":{"GalleriesDetail":{"type":"object","properties":{"data":{"type":"object","properties":{"galleryId":{"type":"string","pattern":"^GALL-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","description":"Gallery identifier (GALL-<uuid>)."},"name":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}]},{"type":"null"}],"description":"Translated text when `lang` is set, otherwise the full `{ language: text }` map. Languages with no text are omitted, and a field with no text at all is null."},"numberOfItems":{"type":"number"},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"modifiedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}]},{"type":"null"}],"description":"Translated text when `lang` is set, otherwise the full `{ language: text }` map. Languages with no text are omitted, and a field with no text at all is null."},"numColumns":{"anyOf":[{"type":"string"},{"type":"null"}]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"mediaType":{"type":"string","enum":["IMAGE","VIDEO"]},"mediaSource":{"type":"string","enum":["CUSTOM","MEDIA_LIBRARY"]},"caption":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}]},{"type":"null"}],"description":"Translated text when `lang` is set, otherwise the full `{ language: text }` map. Languages with no text are omitted, and a field with no text at all is null."},"fileId":{"anyOf":[{"type":"string"},{"type":"null"}]},"filePath":{"anyOf":[{"type":"string"},{"type":"null"}]},"url":{"anyOf":[{"type":"string"},{"type":"null"}]},"loop":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"autoplay":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"required":["id","mediaType","mediaSource","caption","fileId","filePath","url","loop","autoplay"],"additionalProperties":false}}},"required":["galleryId","name","numberOfItems","createdAt","modifiedAt","description","numColumns","items"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"PublicError":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"},"details":{"description":"Optional error-specific details (e.g. per-field validation reasons)."}}},"GalleriesItemsRemoveRequest":{"type":"object","properties":{"itemIds":{"minItems":1,"type":"array","items":{"type":"string","minLength":1,"maxLength":255},"description":"Ids of the items to remove, as returned in the gallery detail."}},"required":["itemIds"],"additionalProperties":false}}},"paths":{"/v1/galleries/{galleryId}/items:remove":{"post":{"summary":"Remove Gallery Items","tags":["Galleries"],"description":"Remove media items by id. Ids that are not in the gallery are ignored, and the remaining items keep their order. Removing nothing leaves the gallery untouched.\n\nRequires the `galleries:write` scope.","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GalleriesDetail"}}}},"400":{"description":"Invalid request data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"403":{"description":"The API key lacks the required scope (`scope_denied`), or the operation is not permitted for this account (`operation_not_permitted`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}},"parameters":[{"name":"galleryId","in":"path","required":true,"schema":{"type":"string","pattern":"^GALL-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","description":"Gallery identifier (GALL-<uuid>)."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GalleriesItemsRemoveRequest"}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.mimeeq.com/developers/galleries.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
