Batch Create Product Collections
curl --request POST \
--url https://{defaultHost}/v1/imports/product_collections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"import": {
"data": [
{
"name": "Test Collection",
"description": "A test product collection",
"slug": "test-collection"
}
]
}
}
'import requests
url = "https://{defaultHost}/v1/imports/product_collections"
payload = { "import": { "data": [
{
"name": "Test Collection",
"description": "A test product collection",
"slug": "test-collection"
}
] } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
import: {
data: [
{
name: 'Test Collection',
description: 'A test product collection',
slug: 'test-collection'
}
]
}
})
};
fetch('https://{defaultHost}/v1/imports/product_collections', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{defaultHost}/v1/imports/product_collections",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'import' => [
'data' => [
[
'name' => 'Test Collection',
'description' => 'A test product collection',
'slug' => 'test-collection'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{defaultHost}/v1/imports/product_collections"
payload := strings.NewReader("{\n \"import\": {\n \"data\": [\n {\n \"name\": \"Test Collection\",\n \"description\": \"A test product collection\",\n \"slug\": \"test-collection\"\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{defaultHost}/v1/imports/product_collections")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"import\": {\n \"data\": [\n {\n \"name\": \"Test Collection\",\n \"description\": \"A test product collection\",\n \"slug\": \"test-collection\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{defaultHost}/v1/imports/product_collections")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"import\": {\n \"data\": [\n {\n \"name\": \"Test Collection\",\n \"description\": \"A test product collection\",\n \"slug\": \"test-collection\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "46ab4f8a-7ab7-4a94-b4eb-2895a3e2c0b1",
"object": "import",
"import_type": "product_collection",
"live_mode": true,
"rows_imported": 0,
"rows_uploaded": 0,
"status": "pending",
"created_at": 1782485837,
"updated_at": 1782485837
}Imports
Batch Create Product Collections
Creates multiple product collections in batch.
POST
/
v1
/
imports
/
product_collections
Batch Create Product Collections
curl --request POST \
--url https://{defaultHost}/v1/imports/product_collections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"import": {
"data": [
{
"name": "Test Collection",
"description": "A test product collection",
"slug": "test-collection"
}
]
}
}
'import requests
url = "https://{defaultHost}/v1/imports/product_collections"
payload = { "import": { "data": [
{
"name": "Test Collection",
"description": "A test product collection",
"slug": "test-collection"
}
] } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
import: {
data: [
{
name: 'Test Collection',
description: 'A test product collection',
slug: 'test-collection'
}
]
}
})
};
fetch('https://{defaultHost}/v1/imports/product_collections', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{defaultHost}/v1/imports/product_collections",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'import' => [
'data' => [
[
'name' => 'Test Collection',
'description' => 'A test product collection',
'slug' => 'test-collection'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{defaultHost}/v1/imports/product_collections"
payload := strings.NewReader("{\n \"import\": {\n \"data\": [\n {\n \"name\": \"Test Collection\",\n \"description\": \"A test product collection\",\n \"slug\": \"test-collection\"\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{defaultHost}/v1/imports/product_collections")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"import\": {\n \"data\": [\n {\n \"name\": \"Test Collection\",\n \"description\": \"A test product collection\",\n \"slug\": \"test-collection\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{defaultHost}/v1/imports/product_collections")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"import\": {\n \"data\": [\n {\n \"name\": \"Test Collection\",\n \"description\": \"A test product collection\",\n \"slug\": \"test-collection\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "46ab4f8a-7ab7-4a94-b4eb-2895a3e2c0b1",
"object": "import",
"import_type": "product_collection",
"live_mode": true,
"rows_imported": 0,
"rows_uploaded": 0,
"status": "pending",
"created_at": 1782485837,
"updated_at": 1782485837
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Show child attributes
Show child attributes
Response
200 - application/json
Success
The UUID of the specific object.
A string describing the object type returned.
The type of record imported – one of customer, product, coupon, purchase, or subscription.
A list of associated import rows.
The number of rows successfully imported.
The status of the import – one of completed, invalid, pending, or processing.
Time at which the object was created. Measured in seconds since the Unix epoch.
Time at which the object was last updated. Measured in seconds since the Unix epoch.
Was this page helpful?
⌘I