Complete a catalog photo upload
POST/v1/catalog/entities/{entityId}/images/{assetId}/complete
Completes a photo upload after its bytes were PUT: bymundi re-encodes it and attaches it to the entry — last, or as the lead photo with position: first. Nothing uploaded yet is a 422 upload_missing; bytes that are not an image a 422 not_an_image; a second completion a 409 already_complete. Undo with POST /changes/{changeId}/revert: it takes the photo off the entry while nobody has changed its photos since.
Permissions: catalog:write · Kind: write · Cost: 2 units · MCP tool complete_catalog_image_upload
Undoable: the response carries Bymundi-Change-Id; revert it with POST /v1/changes/{changeId}/revert.
Path parameters
| Field | Type | Required | Description |
|---|---|---|---|
entityId |
uuid | yes | |
assetId |
uuid | yes |
Body
| Field | Type | Required | Description |
|---|---|---|---|
alt |
string | A description of the photo for screen readers (recommended). max 300 chars | |
position |
"first" | "last" | first makes it the entry's lead photo; last (the default) appends it. default "last" |
Response 200
| Field | Type | Required | Description |
|---|---|---|---|
object |
"catalog_entity" | yes | |
id |
uuid | yes | |
kind |
"destino" | "punto" | "alojamiento" | "actividad" | "servicio" | yes | |
name |
string | yes | |
placeId |
string | yes | |
cityKey |
string | yes | |
externalId |
string | yes | |
place |
object | yes | |
images |
object[] | yes | |
tags |
string[] | yes | |
origin |
"human" | "ai" | "api" | "import" | yes | |
content |
object | yes | |
updatedAt |
string | yes | |
deletedAt |
string | null | yes |
Errors
Errors are problem details. Besides the refusals described above, any call like this one can return:
invalid_request— Invalid requestunauthorized— Missing or invalid API keyinsufficient_scope— Missing permissionrate_limited— Rate limit reachednot_found— Not foundidempotency_key_reused— Idempotency-Key reusedrequest_in_progress— Request in progress