Create collections

Bulk-creates collections. Successful entities are returned in data; per-item failures in errors.

POST/api/v2/{team_slug}/{app_slug}/collections
API
Management
Updated
Apr 26, 2026

management-api:POST:/api/v2/{team_slug}/{app_slug}/collections

Bulk-creates collections. Successful entities are returned in data; per-item failures in errors.

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: POST
  • Path: /api/v2/\{team_slug\}/\{app_slug\}/collections
  • Summary: Create collections
  • Description: Bulk-creates collections. Successful entities are returned in data; per-item failures in errors.
  • OpenAPI contract: management-api
  • Operation ID: createCollections
Parameters2 parameters
NameInRequiredTypeDescription
Not documented in the OpenAPI contract.Not documented in the OpenAPI contract.NoanyNot documented in the OpenAPI contract.
Not documented in the OpenAPI contract.Not documented in the OpenAPI contract.NoanyNot documented in the OpenAPI contract.
Request bodyNo documented body
  • Required: Yes
  • Description: Not documented in the OpenAPI contract.
  • Content: application/json (object)

Create Collections Request

PropertyTypeRequiredDetails
collectionsobject[]YesminItems: 1, maxItems: 20

Create Collection Item

PropertyTypeRequiredDetails
titlestringYes-
slugstringYes-
statusenum("active", "inactive", "draft")Yes-
parent_idstring (uuid)Noformat: uuid

Generated example (synthetic):

{
  "collections": [
    {
      "title": "string",
      "slug": "string",
      "status": "active",
      "parent_id": "00000000-0000-0000-0000-000000000000"
    }
  ]
}
Responses5 statuses
StatusDescriptionContent
201Created (partial success possible)application/json (object)
400Request-level failureapplication/json (object)
401Request-level failureapplication/json (object)
403Request-level failureapplication/json (object)
500Request-level failureapplication/json (object)

201 - object

Collections Bulk

PropertyTypeRequiredDetails
dataobject[]Yes-
errorsobject[]Yes-
Collection
PropertyTypeRequiredDetails
idstring (uuid)Yesformat: uuid
titlestringYes-
slugstringYes-
statusenum("active", "inactive", "draft")Yes-
parent_idstringNo-
translationsobjectNo-
redirectsobject[]No-
childrenobject[]No-
productsobject[]No-
created_atstring (date-time)Yesformat: date-time
updated_atstring (date-time)Noformat: date-time
uristringNo-
Collection Translation
PropertyTypeRequiredDetails
titleobject[]No-
slugobject[]No-
Redirects
PropertyTypeRequiredDetails
idstring (uuid)Noformat: uuid
item_idstringNo-
typeenum("category", "collection", "page", "product", "product_bundle")No-
old_slugstringNo-
new_slugstringNo-
localestringNo-
Collection Product Entry
PropertyTypeRequiredDetails
product_idstring (uuid)Yesformat: uuid
sort_orderintegerYes-
Collection Error
PropertyTypeRequiredDetails
idstringNo-
slugstringNo-
messagestringYes-
{
  "data": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "title": "string",
      "slug": "string",
      "status": "active",
      "parent_id": "string",
      "translations": {
        "title": [],
        "slug": []
      },
      "redirects": [
        {
          "id": null,
          "item_id": null,
          "type": null,
          "old_slug": null,
          "new_slug": null,
          "locale": null
        }
      ],
      "children": [
        {
          "id": null,
          "title": null,
          "slug": null,
          "status": null,
          "parent_id": null,
          "translations": null,
          "redirects": null,
          "children": null,
          "products": null,
          "created_at": null,
          "updated_at": null,
          "uri": null
        }
      ],
      "products": [
        {
          "product_id": null,
          "sort_order": null
        }
      ],
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "uri": "string"
    }
  ],
  "errors": [
    {
      "id": "string",
      "slug": "string",
      "message": "string"
    }
  ]
}

400 - object

Error

PropertyTypeRequiredDetails
errorobjectYes-
Error Body
PropertyTypeRequiredDetails
messagestringYes-
detailsstring[]Yes-

Generated example (synthetic):

{
  "error": {
    "message": "string",
    "details": [
      "string"
    ]
  }
}

401 - object

Error

PropertyTypeRequiredDetails
errorobjectYes-
Error Body
PropertyTypeRequiredDetails
messagestringYes-
detailsstring[]Yes-

Generated example (synthetic):

{
  "error": {
    "message": "string",
    "details": [
      "string"
    ]
  }
}

403 - object

Error

PropertyTypeRequiredDetails
errorobjectYes-
Error Body
PropertyTypeRequiredDetails
messagestringYes-
detailsstring[]Yes-

Generated example (synthetic):

{
  "error": {
    "message": "string",
    "details": [
      "string"
    ]
  }
}

500 - object

Error

PropertyTypeRequiredDetails
errorobjectYes-
Error Body
PropertyTypeRequiredDetails
messagestringYes-
detailsstring[]Yes-

Generated example (synthetic):

{
  "error": {
    "message": "string",
    "details": [
      "string"
    ]
  }
}

Contract identity

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

  • API family: Management API
  • Method: POST
  • Path: /api/v2/\{team_slug\}/\{app_slug\}/collections
  • Operation ID: createCollections
  • OpenAPI tag: Collections V2
  • OpenAPI summary: Create collections

Create collections

# Create collections Bulk-creates collections. Successful entities are returned in data; per-item failures in errors.
POST /api/v2/{team_slug}/{app_slug}/collections
Purpose

Bulk-creates collections.

Required inputs

None documented

Primary response

201 ยท Created (partial success possible)

Operation key

management-api:POST:/api/v2/{team_slug}/{app_slug}/collections

## 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: `POST` - Path: `/api/v2/{team_slug}/{app_slug}/collections` - Summary: Create collections - Description: Bulk-creates collections. Successful entities are returned in data; per-item failures in errors. - OpenAPI contract: management-api - Operation ID: createCollections - Stable operation key: `management-api:POST:/api/v2/{team_slug}/{app_slug}/collections` ## Parameters | Name | In | Required | Type | Description | | --- | --- | --- | --- | --- | | Not documented in the OpenAPI contract. | Not documented in the OpenAPI contract. | No | any | Not documented in the OpenAPI contract. | | Not documented in the OpenAPI contract. | Not documented in the OpenAPI contract. | No | any | Not documented in the OpenAPI contract. | ## Request body - Required: Yes - Description: Not documented in the OpenAPI contract. - Content: application/json (object) ### Create Collections Request | Property | Type | Required | Details | | --- | --- | --- | --- | | `collections` | object[] | Yes | minItems: 1, maxItems: 20 | #### Create Collection Item | Property | Type | Required | Details | | --- | --- | --- | --- | | `title` | string | Yes | - | | `slug` | string | Yes | - | | `status` | enum("active", "inactive", "draft") | Yes | - | | `parent_id` | string (uuid) | No | format: uuid | **Generated example (synthetic):** ```json { "collections": [ { "title": "string", "slug": "string", "status": "active", "parent_id": "00000000-0000-0000-0000-000000000000" } ] } ``` ## Responses | Status | Description | Content | | --- | --- | --- | | 201 | Created (partial success possible) | application/json (object) | | 400 | Request-level failure | application/json (object) | | 401 | Request-level failure | application/json (object) | | 403 | Request-level failure | application/json (object) | | 500 | Request-level failure | application/json (object) | ### 201 - object #### Collections Bulk | Property | Type | Required | Details | | --- | --- | --- | --- | | `data` | object[] | Yes | - | | `errors` | object[] | Yes | - | ##### Collection | Property | Type | Required | Details | | --- | --- | --- | --- | | `id` | string (uuid) | Yes | format: uuid | | `title` | string | Yes | - | | `slug` | string | Yes | - | | `status` | enum("active", "inactive", "draft") | Yes | - | | `parent_id` | string | No | - | | `translations` | object | No | - | | `redirects` | object[] | No | - | | `children` | object[] | No | - | | `products` | object[] | No | - | | `created_at` | string (date-time) | Yes | format: date-time | | `updated_at` | string (date-time) | No | format: date-time | | `uri` | string | No | - | ##### Collection Translation | Property | Type | Required | Details | | --- | --- | --- | --- | | `title` | object[] | No | - | | `slug` | object[] | No | - | ##### Redirects | Property | Type | Required | Details | | --- | --- | --- | --- | | `id` | string (uuid) | No | format: uuid | | `item_id` | string | No | - | | `type` | enum("category", "collection", "page", "product", "product_bundle") | No | - | | `old_slug` | string | No | - | | `new_slug` | string | No | - | | `locale` | string | No | - | ##### Collection Product Entry | Property | Type | Required | Details | | --- | --- | --- | --- | | `product_id` | string (uuid) | Yes | format: uuid | | `sort_order` | integer | Yes | - | ##### Collection Error | Property | Type | Required | Details | | --- | --- | --- | --- | | `id` | string | No | - | | `slug` | string | No | - | | `message` | string | Yes | - |
Generated example (synthetic) ```json { "data": [ { "id": "00000000-0000-0000-0000-000000000000", "title": "string", "slug": "string", "status": "active", "parent_id": "string", "translations": { "title": [], "slug": [] }, "redirects": [ { "id": null, "item_id": null, "type": null, "old_slug": null, "new_slug": null, "locale": null } ], "children": [ { "id": null, "title": null, "slug": null, "status": null, "parent_id": null, "translations": null, "redirects": null, "children": null, "products": null, "created_at": null, "updated_at": null, "uri": null } ], "products": [ { "product_id": null, "sort_order": null } ], "created_at": "2024-01-01T00:00:00Z", "updated_at": "2024-01-01T00:00:00Z", "uri": "string" } ], "errors": [ { "id": "string", "slug": "string", "message": "string" } ] } ```
### 400 - object #### Error | Property | Type | Required | Details | | --- | --- | --- | --- | | `error` | object | Yes | - | ##### Error Body | Property | Type | Required | Details | | --- | --- | --- | --- | | `message` | string | Yes | - | | `details` | string[] | Yes | - | **Generated example (synthetic):** ```json { "error": { "message": "string", "details": [ "string" ] } } ``` ### 401 - object #### Error | Property | Type | Required | Details | | --- | --- | --- | --- | | `error` | object | Yes | - | ##### Error Body | Property | Type | Required | Details | | --- | --- | --- | --- | | `message` | string | Yes | - | | `details` | string[] | Yes | - | **Generated example (synthetic):** ```json { "error": { "message": "string", "details": [ "string" ] } } ``` ### 403 - object #### Error | Property | Type | Required | Details | | --- | --- | --- | --- | | `error` | object | Yes | - | ##### Error Body | Property | Type | Required | Details | | --- | --- | --- | --- | | `message` | string | Yes | - | | `details` | string[] | Yes | - | **Generated example (synthetic):** ```json { "error": { "message": "string", "details": [ "string" ] } } ``` ### 500 - object #### Error | Property | Type | Required | Details | | --- | --- | --- | --- | | `error` | object | Yes | - | ##### Error Body | Property | Type | Required | Details | | --- | --- | --- | --- | | `message` | string | Yes | - | | `details` | string[] | Yes | - | **Generated example (synthetic):** ```json { "error": { "message": "string", "details": [ "string" ] } } ``` ## Contract identity Use these fields to confirm you are implementing the intended endpoint contract. - API family: Management API - Method: `POST` - Path: `/api/v2/{team_slug}/{app_slug}/collections` - Operation ID: createCollections - Stable operation key: `management-api:POST:/api/v2/{team_slug}/{app_slug}/collections` - OpenAPI tag: Collections V2 - OpenAPI summary: Create collections