Bulk Add Image Relationships

Creates relationships between an image and up to 100 items (products or variants) with optional priority ordering. Validates that each item exists and is not deleted before creating the relationship. Returns lists of successful and failed relationship creations with error details.

PUT/api/v1/{team_slug}/{app_slug}/images/{image_id}/relationships/bulk
API
Management
Updated
Apr 26, 2026

management-api:PUT:/api/v1/{team_slug}/{app_slug}/images/{image_id}/relationships/bulk

Creates relationships between an image and up to 100 items (products or variants) with optional priority ordering. Validates that each item exists and is not deleted before creating the relationship. Returns lists of successful and failed relationship creations with error details.

API ownership

  • API family: Management API
  • Best for: Trusted back-office workflows that create, update, organize, or delete merchant-owned data.
  • Do not use from: Browser-only storefront code or public clients.
  • Guide route: /apis/management/latest

The OpenAPI contract defines the method, path, parameters, request body, and responses for this operation.

Operation

  • Method: PUT
  • Path: /api/v1/\{team_slug\}/\{app_slug\}/images/\{image_id\}/relationships/bulk
  • Summary: Bulk Add Image Relationships
  • Description: Creates relationships between an image and up to 100 items (products or variants) with optional priority ordering. Validates that each item exists and is not deleted before creating the relationship. Returns lists of successful and failed relationship creations with error details.
  • OpenAPI contract: management-api
  • Operation ID: Not documented in the OpenAPI contract.

Operation key uses API family, method, and path because this OpenAPI contract does not publish an operation ID.

Parameters3 parameters
NameInRequiredTypeDescription
team_slugpathYesstringTeam slug
app_slugpathYesstringApp slug
image_idpathYesstringImage ID
Request bodyDocumented body
  • Required: Yes
  • Description: Items to link to the image
  • Content: application/json (object)

Bulk Add Image Relationships Payload

PropertyTypeRequiredDetails
itemsobject[]YesmaxItems: 100

Bulk Add Image Relationship Item

PropertyTypeRequiredDetails
item_idstringYes-
item_typeenum("product", "variant")Yes-
priorityintegerNomin: 1

Generated example (synthetic):

{
  "items": [
    {
      "item_id": "string",
      "item_type": "product",
      "priority": 1
    }
  ]
}
Responses5 statuses
StatusDescriptionContent
200Relationships added successfullyapplication/json (object)
400Invalid requestapplication/json (object)
401Unauthorized accessapplication/json (object)
404Image not foundapplication/json (object)
500Internal server errorapplication/json (object)

200 - object

Bulk Add Image Relationships Response

PropertyTypeRequiredDetails
dataobjectNo-
detailsstring[]NoAdditional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes
successbooleanNo-
Bulk Add Image Relationships
PropertyTypeRequiredDetails
failedobject[]No-
successfulobject[]No-
Bulk Add Image Relationship Failed Op
PropertyTypeRequiredDetails
item_idstringNo-
item_typestringNo-
reasonstringNo-
Bulk Add Image Relationship Item
PropertyTypeRequiredDetails
item_idstringYes-
item_typeenum("product", "variant")Yes-
priorityintegerNomin: 1

Generated example (synthetic):

{
  "data": {
    "failed": [
      {
        "item_id": "string",
        "item_type": "string",
        "reason": "string"
      }
    ],
    "successful": [
      {
        "item_id": "string",
        "item_type": "product",
        "priority": 1
      }
    ]
  },
  "details": [
    "string"
  ],
  "success": false
}

400 - object

Error Message

PropertyTypeRequiredDetails
detailsstring[]No-
messagestringNo-
successbooleanNo-

Generated example (synthetic):

{
  "details": [
    "string"
  ],
  "message": "string",
  "success": false
}

401 - object

Error Message

PropertyTypeRequiredDetails
detailsstring[]No-
messagestringNo-
successbooleanNo-

Generated example (synthetic):

{
  "details": [
    "string"
  ],
  "message": "string",
  "success": false
}

404 - object

Error Message

PropertyTypeRequiredDetails
detailsstring[]No-
messagestringNo-
successbooleanNo-

Generated example (synthetic):

{
  "details": [
    "string"
  ],
  "message": "string",
  "success": false
}

500 - object

Error Message

PropertyTypeRequiredDetails
detailsstring[]No-
messagestringNo-
successbooleanNo-

Generated example (synthetic):

{
  "details": [
    "string"
  ],
  "message": "string",
  "success": false
}

Contract identity

Use these fields to confirm you are implementing the intended endpoint contract.

  • API family: Management API
  • Method: PUT
  • Path: /api/v1/\{team_slug\}/\{app_slug\}/images/\{image_id\}/relationships/bulk
  • Operation ID: Not documented in the OpenAPI contract.
  • OpenAPI tag: Images, Bulk
  • OpenAPI summary: Bulk Add Image Relationships

Bulk Add Image Relationships

# Bulk Add Image Relationships Creates relationships between an image and up to 100 items (products or variants) with optional priority ordering. Validates that each item exists and is not deleted before creating the relationship. Returns lists of successful and failed relationship creations with error details.
PUT /api/v1/{team_slug}/{app_slug}/images/{image_id}/relationships/bulk
Purpose

Creates relationships between an image and up to 100 items (products or variants) with optional priority ordering.

Required inputs

team_slug path app_slug path image_id path

Primary response

200 ยท Relationships added successfully

Operation key

management-api:PUT:/api/v1/{team_slug}/{app_slug}/images/{image_id}/relationships/bulk

## API ownership - API family: Management API - Best for: Trusted back-office workflows that create, update, organize, or delete merchant-owned data. - Do not use from: Browser-only storefront code or public clients. - Guide route: [/apis/management/latest](/apis/management/latest) The OpenAPI contract defines the method, path, parameters, request body, and responses for this operation. ## Operation - Method: `PUT` - Path: `/api/v1/{team_slug}/{app_slug}/images/{image_id}/relationships/bulk` - Summary: Bulk Add Image Relationships - Description: Creates relationships between an image and up to 100 items (products or variants) with optional priority ordering. Validates that each item exists and is not deleted before creating the relationship. Returns lists of successful and failed relationship creations with error details. - OpenAPI contract: management-api - Operation ID: Not documented in the OpenAPI contract. - Stable operation key: `management-api:PUT:/api/v1/{team_slug}/{app_slug}/images/{image_id}/relationships/bulk` Operation key uses API family, method, and path because this OpenAPI contract does not publish an operation ID. ## Parameters | Name | In | Required | Type | Description | | --- | --- | --- | --- | --- | | team_slug | path | Yes | string | Team slug | | app_slug | path | Yes | string | App slug | | image_id | path | Yes | string | Image ID | ## Request body - Required: Yes - Description: Items to link to the image - Content: application/json (object) ### Bulk Add Image Relationships Payload | Property | Type | Required | Details | | --- | --- | --- | --- | | `items` | object[] | Yes | maxItems: 100 | #### Bulk Add Image Relationship Item | Property | Type | Required | Details | | --- | --- | --- | --- | | `item_id` | string | Yes | - | | `item_type` | enum("product", "variant") | Yes | - | | `priority` | integer | No | min: 1 | **Generated example (synthetic):** ```json { "items": [ { "item_id": "string", "item_type": "product", "priority": 1 } ] } ``` ## Responses | Status | Description | Content | | --- | --- | --- | | 200 | Relationships added successfully | application/json (object) | | 400 | Invalid request | application/json (object) | | 401 | Unauthorized access | application/json (object) | | 404 | Image not found | application/json (object) | | 500 | Internal server error | application/json (object) | ### 200 - object #### Bulk Add Image Relationships Response | Property | Type | Required | Details | | --- | --- | --- | --- | | `data` | object | No | - | | `details` | string[] | No | Additional contextual information about the response. Used to provide supplementary details beyond the main data payload, such as validation warnings or processing notes | | `success` | boolean | No | - | ##### Bulk Add Image Relationships | Property | Type | Required | Details | | --- | --- | --- | --- | | `failed` | object[] | No | - | | `successful` | object[] | No | - | ##### Bulk Add Image Relationship Failed Op | Property | Type | Required | Details | | --- | --- | --- | --- | | `item_id` | string | No | - | | `item_type` | string | No | - | | `reason` | string | No | - | ##### Bulk Add Image Relationship Item | Property | Type | Required | Details | | --- | --- | --- | --- | | `item_id` | string | Yes | - | | `item_type` | enum("product", "variant") | Yes | - | | `priority` | integer | No | min: 1 | **Generated example (synthetic):** ```json { "data": { "failed": [ { "item_id": "string", "item_type": "string", "reason": "string" } ], "successful": [ { "item_id": "string", "item_type": "product", "priority": 1 } ] }, "details": [ "string" ], "success": false } ``` ### 400 - object #### Error Message | Property | Type | Required | Details | | --- | --- | --- | --- | | `details` | string[] | No | - | | `message` | string | No | - | | `success` | boolean | No | - | **Generated example (synthetic):** ```json { "details": [ "string" ], "message": "string", "success": false } ``` ### 401 - object #### Error Message | Property | Type | Required | Details | | --- | --- | --- | --- | | `details` | string[] | No | - | | `message` | string | No | - | | `success` | boolean | No | - | **Generated example (synthetic):** ```json { "details": [ "string" ], "message": "string", "success": false } ``` ### 404 - object #### Error Message | Property | Type | Required | Details | | --- | --- | --- | --- | | `details` | string[] | No | - | | `message` | string | No | - | | `success` | boolean | No | - | **Generated example (synthetic):** ```json { "details": [ "string" ], "message": "string", "success": false } ``` ### 500 - object #### Error Message | Property | Type | Required | Details | | --- | --- | --- | --- | | `details` | string[] | No | - | | `message` | string | No | - | | `success` | boolean | No | - | **Generated example (synthetic):** ```json { "details": [ "string" ], "message": "string", "success": false } ``` ## Contract identity Use these fields to confirm you are implementing the intended endpoint contract. - API family: Management API - Method: `PUT` - Path: `/api/v1/{team_slug}/{app_slug}/images/{image_id}/relationships/bulk` - Operation ID: Not documented in the OpenAPI contract. - Stable operation key: `management-api:PUT:/api/v1/{team_slug}/{app_slug}/images/{image_id}/relationships/bulk` - OpenAPI tag: Images, Bulk - OpenAPI summary: Bulk Add Image Relationships