Integration API (1.0.0)

Download OpenAPI specification:

Connectors, connections, and channel export/import.

Category Mappings

List category mappings

Get all category mappings for a given connection and channel. Both connection_id and channel_code are required query parameters.

Authorizations:
BearerAuth
query Parameters
connection_id
required
string

Connection ID

channel_code
required
string

Channel code

page
integer
Default: 1

Page number

page_size
integer
Default: 20

Items per page

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Create a category mapping

Map an internal category to an external channel category for a connection

Authorizations:
BearerAuth
Request Body schema: application/json
required

Category mapping details

category_code
required
string
category_id
required
string
category_path
required
string
channel_code
required
string
connection_id
required
string
external_collection_id
required
string
external_handle
required
string

Responses

Request samples

Content type
application/json
{
  • "category_code": "string",
  • "category_id": "string",
  • "category_path": "string",
  • "channel_code": "string",
  • "connection_id": "string",
  • "external_collection_id": "string",
  • "external_handle": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Get a category mapping

Retrieve a single category mapping by ID

Authorizations:
BearerAuth
path Parameters
id
required
string

Category mapping ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Delete a category mapping

Permanently delete a category mapping

Authorizations:
BearerAuth
path Parameters
id
required
string

Category mapping ID

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ],
  • "message": "string",
  • "success": true
}

Update a category mapping

Update the external category identifier or other fields of an existing category mapping

Authorizations:
BearerAuth
path Parameters
id
required
string

Category mapping ID

Request Body schema: application/json
required

Updated mapping fields

external_collection_id
string
external_handle
string

Responses

Request samples

Content type
application/json
{
  • "external_collection_id": "string",
  • "external_handle": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Get channel category mappings

Retrieve all category mappings for a connection, scoped to a specific channel code. Used to populate the channel category tree.

Authorizations:
BearerAuth
path Parameters
id
required
string

Connection ID

query Parameters
channel_code
required
string

Channel code

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Connections

List connections

Get a paginated list of tenant connection instances

Authorizations:
BearerAuth
query Parameters
page
integer
Default: 1

Page number

page_size
integer
Default: 20

Page size

status
string
Enum: "active" "inactive"

Filter by status

search
string

Search term

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "pagination": {
    },
  • "success": true
}

Create a connection

Create a new tenant connection instance from a connector definition

Authorizations:
BearerAuth
Request Body schema: application/json
required

Connection request

code
required
string
connection_type
required
string
connector_id
required
string
object
endpoint_url
string
name
required
string

Responses

Request samples

Content type
application/json
{
  • "code": "shopify-us",
  • "connection_type": "api",
  • "connector_id": "0193a5b6-e7c0-7df0-b4b1-c0a1f5e3a8d2",
  • "credentials": { },
  • "name": "Shopify US Store"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Get a connection

Get a single tenant connection instance by ID

Authorizations:
BearerAuth
path Parameters
id
required
string

Connection ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Delete a connection

Soft-delete a tenant connection instance

Authorizations:
BearerAuth
path Parameters
id
required
string

Connection ID

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ],
  • "message": "string",
  • "success": true
}

Update a connection

Update an existing tenant connection instance

Authorizations:
BearerAuth
path Parameters
id
required
string

Connection ID

Request Body schema: application/json
required

Connection update request

concurrency_limit
integer
object
endpoint_url
string
name
string
rate_limit_per_sec
integer

Responses

Request samples

Content type
application/json
{
  • "concurrency_limit": 2,
  • "credentials": { },
  • "name": "Shopify US Store (Updated)",
  • "rate_limit_per_sec": 10
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Change connection status

Activate or deactivate a connection

Authorizations:
BearerAuth
path Parameters
id
required
string

Connection ID

Request Body schema: application/json
required

Status request

status
required
string
Enum: "active" "inactive"

Responses

Request samples

Content type
application/json
{
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Connector Catalog

List connector definitions

Get a paginated list of available connector types in the platform catalog

Authorizations:
BearerAuth
query Parameters
page
integer
Default: 1

Page number

page_size
integer
Default: 20

Page size

connector_type
string
Enum: "api" "ftp" "sftp" "storage" "marketplace"

Filter by connector type

is_active
boolean

Filter by active status

search
string

Search by name or code

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "pagination": {
    },
  • "success": true
}

Create a connector definition

Create a new connector type in the platform catalog (e.g., Shopify, Amazon)

Authorizations:
BearerAuth
Request Body schema: application/json
required

Connector definition request

auth_type
required
string
code
required
string
object
connector_type
required
string
description
string
logo_url
string
name
required
string
supported_content_types
Array of strings

Responses

Request samples

Content type
application/json
{
  • "auth_type": "oauth2",
  • "code": "shopify",
  • "config_schema": { },
  • "connector_type": "api",
  • "description": "Shopify e-commerce platform connector",
  • "name": "Shopify",
  • "supported_content_types": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Get a connector definition

Get a single connector type from the platform catalog by ID

Authorizations:
BearerAuth
path Parameters
id
required
string

Connector ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Update a connector definition

Update an existing connector type in the platform catalog

Authorizations:
BearerAuth
path Parameters
id
required
string

Connector ID

Request Body schema: application/json
required

Connector update request

object
description
string
logo_url
string
name
string

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Change connector status

Activate or deactivate a connector

Authorizations:
BearerAuth
path Parameters
id
required
string

Connector ID

Request Body schema: application/json
required

Status request

status
required
string
Enum: "active" "inactive"

Responses

Request samples

Content type
application/json
{
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Connector Schemas

Get connector attributes

Get the list of attributes from the default schema for a connector

Authorizations:
BearerAuth
path Parameters
connectorId
required
string

Connector ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

List connector schemas

Get a paginated list of connector schemas for a connector

Authorizations:
BearerAuth
path Parameters
connectorId
required
string

Connector ID

query Parameters
page
integer
Default: 1

Page number

page_size
integer
Default: 20

Page size

status
string
Enum: "draft" "active" "deprecated"

Filter by status

search
string

Search term

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "pagination": {
    },
  • "success": true
}

Create a connector schema

Create a new connector schema defining expected data structure

Authorizations:
BearerAuth
path Parameters
connectorId
required
string

Connector ID

Request Body schema: application/json
required

Connector schema request

description
string
is_default
boolean
name
required
string
object
version
string

Responses

Request samples

Content type
application/json
{
  • "description": "Standard Shopify product data structure",
  • "is_default": true,
  • "name": "Shopify Product Schema",
  • "schema_definition": { },
  • "version": "1.0"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Get a connector schema

Get a single connector schema by ID

Authorizations:
BearerAuth
path Parameters
connectorId
required
string

Connector ID

id
required
string

Connector Schema ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Delete a connector schema

Soft-delete a connector schema

Authorizations:
BearerAuth
path Parameters
connectorId
required
string

Connector ID

id
required
string

Connector Schema ID

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ],
  • "message": "string",
  • "success": true
}

Update a connector schema

Update an existing connector schema

Authorizations:
BearerAuth
path Parameters
connectorId
required
string

Connector ID

id
required
string

Connector Schema ID

Request Body schema: application/json
required

Connector schema update request

description
string
is_default
boolean
name
string
object
version
string

Responses

Request samples

Content type
application/json
{
  • "description": "Updated Shopify product schema",
  • "is_default": true,
  • "name": "Shopify Product Schema v2",
  • "schema_definition": { },
  • "version": "2.0"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Get schema attributes

Get the list of attributes for a connector schema

Authorizations:
BearerAuth
path Parameters
connectorId
required
string

Connector ID

id
required
string

Connector Schema ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Save schema attributes

Save (replace) the attributes for a connector schema

Authorizations:
BearerAuth
path Parameters
connectorId
required
string

Connector ID

id
required
string

Connector Schema ID

Request Body schema: application/json
required

Schema attributes request

Array of objects (SchemaAttributeRequest)

Responses

Request samples

Content type
application/json
{
  • "attributes": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Change connector schema status

Set the status of a connector schema (active or deprecated)

Authorizations:
BearerAuth
path Parameters
connectorId
required
string

Connector ID

id
required
string

Connector Schema ID

Request Body schema: application/json
required

Status request

status
required
string
Enum: "active" "deprecated"

Responses

Request samples

Content type
application/json
{
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Export Jobs

List export jobs

Get a paginated list of export jobs with optional status and profile filters

Authorizations:
BearerAuth
query Parameters
page
integer
Default: 1

Page number

page_size
integer
Default: 20

Items per page

export_profile_id
string

Filter by export profile ID

status
string
Enum: "queued" "running" "completed" "failed" "cancelled"

Filter by status

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Create an export job

Enqueue a new export job for a given profile. Use execution_mode=full for a complete sync or delta for an incremental sync. Use product_ids for selective publishing.

Authorizations:
BearerAuth
Request Body schema: application/json
required

Export job details

connection_id
string
execution_mode
string
export_profile_id
required
string
product_ids
Array of strings
publish_type
string
trigger_type
string

Responses

Request samples

Content type
application/json
{
  • "connection_id": "string",
  • "execution_mode": "string",
  • "export_profile_id": "string",
  • "product_ids": [
    ],
  • "publish_type": "string",
  • "trigger_type": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Get an export job

Retrieve a single export job by ID, including progress counters

Authorizations:
BearerAuth
path Parameters
id
required
string

Export job ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Cancel an export job

Cancel a queued or running export job

Authorizations:
BearerAuth
path Parameters
id
required
string

Export job ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Complete an export job

Mark a running export job as completed, optionally recording the published feed URL

Authorizations:
BearerAuth
path Parameters
id
required
string

Export job ID

Request Body schema: application/json

Optional published feed URL

published_feed_url
string

Responses

Request samples

Content type
application/json
{
  • "published_feed_url": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

List export job items

Get a paginated list of processed items for an export job, with optional status filter

Authorizations:
BearerAuth
path Parameters
id
required
string

Export job ID

query Parameters
page
integer
Default: 1

Page number

page_size
integer
Default: 20

Items per page

status
Array of strings

Filter by status

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Start an export job

Transition a queued export job to running status

Authorizations:
BearerAuth
path Parameters
id
required
string

Export job ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Export Profiles

List export profiles

Get a paginated list of export profiles with optional filters

Authorizations:
BearerAuth
query Parameters
page
integer >= 1
Default: 1

Page number

page_size
integer [ 1 .. 100 ]
Default: 20

Items per page

channel_code
string

Filter by channel code

status
string
Enum: "active" "inactive"

Filter by status

search
string

Search by name or code

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Create an export profile

Create a new export profile that defines which channel, locales, and filters to use when exporting product data

Authorizations:
BearerAuth
Request Body schema: application/json
required

Export profile details

batch_size
integer
channel_code
string
code
required
string
connection_id
string
connector_id
string
connector_schema_id
string
object
locale_codes
Array of strings
name
required
string
with_media
boolean

Responses

Request samples

Content type
application/json
{
  • "batch_size": 0,
  • "channel_code": "string",
  • "code": "string",
  • "connection_id": "string",
  • "connector_id": "string",
  • "connector_schema_id": "string",
  • "filters": { },
  • "locale_codes": [
    ],
  • "name": "string",
  • "with_media": true
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Get an export profile

Retrieve a single export profile by ID

Authorizations:
BearerAuth
path Parameters
id
required
string

Export profile ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Delete an export profile

Soft-delete an export profile by ID

Authorizations:
BearerAuth
path Parameters
id
required
string

Export profile ID

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ],
  • "message": "string",
  • "success": true
}

Update an export profile

Update an existing export profile's name, channel, locales, filters, or batch settings

Authorizations:
BearerAuth
path Parameters
id
required
string

Export profile ID

Request Body schema: application/json
required

Fields to update

batch_size
integer
channel_code
string
object
locale_codes
Array of strings
name
string
with_media
boolean

Responses

Request samples

Content type
application/json
{
  • "batch_size": 0,
  • "channel_code": "string",
  • "filters": { },
  • "locale_codes": [
    ],
  • "name": "string",
  • "with_media": true
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Change export profile status

Activate or deactivate an export profile

Authorizations:
BearerAuth
path Parameters
id
required
string

Export profile ID

Request Body schema: application/json
required

Target status

status
required
string
Enum: "active" "inactive"

Responses

Request samples

Content type
application/json
{
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Export Targets

List export targets

Get a paginated list of delivery targets for an export profile

Authorizations:
BearerAuth
path Parameters
id
required
string

Export profile ID

query Parameters
page
integer
Default: 1

Page number

page_size
integer
Default: 20

Items per page

delivery_type
string
Enum: "channel_push" "file_download"

Filter by delivery type

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Create an export target

Add a delivery target (channel push or file download) to an export profile

Authorizations:
BearerAuth
path Parameters
id
required
string

Export profile ID

Request Body schema: application/json
required

Export target details

object
connection_id
string
delivery_type
required
string
output_format
required
string

Responses

Request samples

Content type
application/json
{
  • "config": { },
  • "connection_id": "string",
  • "delivery_type": "string",
  • "output_format": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Get an export target

Retrieve a single export target by ID

Authorizations:
BearerAuth
path Parameters
id
required
string

Export profile ID

targetId
required
string

Export target ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Delete an export target

Soft-delete an export target by ID

Authorizations:
BearerAuth
path Parameters
id
required
string

Export profile ID

targetId
required
string

Export target ID

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ],
  • "message": "string",
  • "success": true
}

Update an export target

Update delivery type, output format, or configuration of an export target

Authorizations:
BearerAuth
path Parameters
id
required
string

Export profile ID

targetId
required
string

Export target ID

Request Body schema: application/json
required

Fields to update

object
connection_id
string
delivery_type
string
output_format
string

Responses

Request samples

Content type
application/json
{
  • "config": { },
  • "connection_id": "string",
  • "delivery_type": "string",
  • "output_format": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Attribute Mappings

List attribute mappings

Get a paginated list of attribute mappings for an export profile

Authorizations:
BearerAuth
path Parameters
profileId
required
string

Export Profile ID

query Parameters
page
integer
Default: 1

Page number

page_size
integer
Default: 20

Page size

search
string

Search term

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "pagination": {
    },
  • "success": true
}

Create an attribute mapping

Create a new attribute mapping for an export profile

Authorizations:
BearerAuth
path Parameters
profileId
required
string

Export Profile ID

Request Body schema: application/json
required

Attribute mapping request

default_value
string
is_required
boolean
mapping_scope
string
mapping_type
required
string
object
sort_order
integer
source_attribute_code
required
string
target_attribute_code
required
string
transformation_rule_id
string

Responses

Request samples

Content type
application/json
{
  • "default_value": "N/A",
  • "is_required": true,
  • "mapping_scope": "product",
  • "mapping_type": "direct",
  • "metadata": { },
  • "sort_order": 1,
  • "source_attribute_code": "description",
  • "target_attribute_code": "body_html",
  • "transformation_rule_id": "0193a5b6-e7c0-7df0-b4b1-c0a1f5e3a8e0"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Bulk save attribute mappings

Smart diff-based bulk upsert of attribute mappings for an export profile

Authorizations:
BearerAuth
path Parameters
profileId
required
string

Export Profile ID

Request Body schema: application/json
required

Attribute mappings to save

Array of objects (CreateAttributeMappingRequest)

Responses

Request samples

Content type
application/json
{
  • "mappings": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "pagination": {
    },
  • "success": true
}

Get an attribute mapping

Get a single attribute mapping by ID

Authorizations:
BearerAuth
path Parameters
profileId
required
string

Export Profile ID

id
required
string

Attribute Mapping ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Delete an attribute mapping

Soft-delete an attribute mapping

Authorizations:
BearerAuth
path Parameters
profileId
required
string

Export Profile ID

id
required
string

Attribute Mapping ID

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ],
  • "message": "string",
  • "success": true
}

Update an attribute mapping

Update an existing attribute mapping

Authorizations:
BearerAuth
path Parameters
profileId
required
string

Export Profile ID

id
required
string

Attribute Mapping ID

Request Body schema: application/json
required

Attribute mapping update request

default_value
string
is_required
boolean
mapping_scope
string
mapping_type
string
object
sort_order
integer
source_attribute_code
string
target_attribute_code
string
transformation_rule_id
string

Responses

Request samples

Content type
application/json
{
  • "default_value": "N/A",
  • "is_required": true,
  • "mapping_scope": "product",
  • "mapping_type": "direct",
  • "metadata": { },
  • "sort_order": 2,
  • "source_attribute_code": "short_description",
  • "target_attribute_code": "body_html",
  • "transformation_rule_id": "0193a5b6-e7c0-7df0-b4b1-c0a1f5e3a8e0"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Validation Rules

List validation rules

Get a paginated list of validation rules for an export profile

Authorizations:
BearerAuth
path Parameters
profileId
required
string

Export Profile ID

query Parameters
page
integer
Default: 1

Page number

page_size
integer
Default: 20

Page size

search
string

Search term

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "pagination": {
    },
  • "success": true
}

Create a validation rule

Create a new data validation rule for an export profile

Authorizations:
BearerAuth
path Parameters
profileId
required
string

Export Profile ID

Request Body schema: application/json
required

Validation rule request

channel_attribute
required
string
error_message
required
string
execution_order
integer
severity
string
stop_on_failure
boolean
object
validation_type
required
string

Responses

Request samples

Content type
application/json
{
  • "channel_attribute": "title",
  • "error_message": "Title is required for Shopify products",
  • "execution_order": 1,
  • "severity": "error",
  • "stop_on_failure": true,
  • "validation_logic": { },
  • "validation_type": "required"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Get a validation rule

Get a single validation rule by ID

Authorizations:
BearerAuth
path Parameters
profileId
required
string

Export Profile ID

id
required
string

Validation Rule ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Delete a validation rule

Soft-delete a validation rule

Authorizations:
BearerAuth
path Parameters
profileId
required
string

Export Profile ID

id
required
string

Validation Rule ID

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ],
  • "message": "string",
  • "success": true
}

Update a validation rule

Update an existing validation rule

Authorizations:
BearerAuth
path Parameters
profileId
required
string

Export Profile ID

id
required
string

Validation Rule ID

Request Body schema: application/json
required

Validation rule update request

channel_attribute
string
error_message
string
execution_order
integer
severity
string
stop_on_failure
boolean
object
validation_type
string

Responses

Request samples

Content type
application/json
{
  • "channel_attribute": "title",
  • "error_message": "Title must be less than 255 characters",
  • "execution_order": 2,
  • "severity": "warning",
  • "stop_on_failure": false,
  • "validation_logic": { },
  • "validation_type": "format"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Change validation rule status

Activate or deactivate a validation rule

Authorizations:
BearerAuth
path Parameters
profileId
required
string

Export Profile ID

id
required
string

Validation Rule ID

Request Body schema: application/json
required

Status request

status
required
string
Enum: "active" "inactive"

Responses

Request samples

Content type
application/json
{
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Import Profiles

List import profiles

Get a paginated list of import profiles

Authorizations:
BearerAuth
query Parameters
page
integer
Default: 1

Page number

page_size
integer
Default: 20

Page size

source_id
string

Filter by source connection ID

entity_type
string

Filter by entity type

status
string
Enum: "active" "inactive"

Filter by status

search
string

Search term

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "pagination": {
    },
  • "success": true
}

Create an import profile

Create a new import profile for data ingestion

Authorizations:
BearerAuth
Request Body schema: application/json
required

Import profile request

batch_size
integer
channel_code
string
code
required
string
comparison_attribute
required
string
entity_type
required
string
object
object
object
import_mode
required
string
input_format
required
string
locale_codes
Array of strings
name
required
string
source_id
string
with_media
boolean

Responses

Request samples

Content type
application/json
{
  • "batch_size": 100,
  • "channel_code": "ecommerce",
  • "code": "product-csv-import",
  • "comparison_attribute": "sku",
  • "entity_type": "products",
  • "error_handling": { },
  • "file_config": { },
  • "filters": { },
  • "import_mode": "create_and_update",
  • "input_format": "csv",
  • "locale_codes": [
    ],
  • "name": "Product CSV Import",
  • "source_id": "0193a5b6-e7c0-7df0-b4b1-c0a1f5e3a8d2",
  • "with_media": false
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Get an import profile

Get a single import profile by ID

Authorizations:
BearerAuth
path Parameters
id
required
string

Import profile ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Delete an import profile

Soft-delete an import profile

Authorizations:
BearerAuth
path Parameters
id
required
string

Import profile ID

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ],
  • "message": "string",
  • "success": true
}

Update an import profile

Update an existing import profile

Authorizations:
BearerAuth
path Parameters
id
required
string

Import profile ID

Request Body schema: application/json
required

Update request

batch_size
integer
channel_code
string
comparison_attribute
string
object
object
object
import_mode
string
input_format
string
locale_codes
Array of strings
name
string
with_media
boolean

Responses

Request samples

Content type
application/json
{
  • "batch_size": 200,
  • "channel_code": "ecommerce",
  • "comparison_attribute": "sku",
  • "error_handling": { },
  • "file_config": { },
  • "filters": { },
  • "import_mode": "update_only",
  • "input_format": "xlsx",
  • "locale_codes": [
    ],
  • "name": "Product CSV Import (Updated)",
  • "with_media": true
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Duplicate an import profile

Create a deep copy of the import profile and all its column mappings.

Authorizations:
BearerAuth
path Parameters
id
required
string

Import profile ID to duplicate

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Change import profile status

Activate or deactivate an import profile

Authorizations:
BearerAuth
path Parameters
id
required
string

Import profile ID

Request Body schema: application/json
required

Status request

status
required
string
Enum: "active" "inactive"

Responses

Request samples

Content type
application/json
{
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Import

Auto-detect import column mappings

Fuzzy-match CSV column headers against PIM attribute codes and return mapping suggestions.

Authorizations:
BearerAuth
path Parameters
id
required
string

Import profile ID

Request Body schema: application/json
required

Headers to auto-map

headers
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "headers": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Trigger an import job for a pre-uploaded file

Accepts the S3 file key of a previously uploaded file and creates an import job

Authorizations:
BearerAuth
path Parameters
id
required
string

Import profile ID

Request Body schema: application/json
required

File key and metadata

file_key
required
string
original_name
required
string

Responses

Request samples

Content type
application/json
{
  • "file_key": "imports/tenant/profile/uuid.csv",
  • "original_name": "products.csv"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Preview imported file content

Parse the first N rows of an uploaded CSV/XLSX and return headers + rows.

Authorizations:
BearerAuth
path Parameters
id
required
string

Import profile ID

Request Body schema: multipart/form-data
file
string <binary>

CSV or XLSX file

s3_key
string

Previously uploaded S3 key

limit
integer

Max rows to return (default 10, max 100)

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Download import template CSV

Generate and stream a CSV template with correct headers for this import profile.

Authorizations:
BearerAuth
path Parameters
id
required
string

Import profile ID

Responses

Get a presigned URL for direct S3 upload

Returns a presigned PUT URL so the client can upload the CSV/XLSX file directly to S3

Authorizations:
BearerAuth
path Parameters
id
required
string

Import profile ID

Request Body schema: application/json
required

File metadata

content_type
required
string
file_name
required
string

Responses

Request samples

Content type
application/json
{
  • "content_type": "text/csv",
  • "file_name": "products.csv"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Import Profile Mappings

List mappings

Get a paginated list of mappings for an import profile

Authorizations:
BearerAuth
path Parameters
id
required
string

Import profile ID

query Parameters
page
integer
Default: 1

Page number

page_size
integer
Default: 50

Page size

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "pagination": {
    },
  • "success": true
}

Create a mapping

Create a new column-to-attribute mapping for an import profile

Authorizations:
BearerAuth
path Parameters
id
required
string

Import profile ID

Request Body schema: application/json
required

Mapping request

attribute_type
required
string
channel_code
string
default_value
string
is_identifier
boolean
is_required
boolean
locale_code
string
pim_attribute
required
string
sort_order
integer
source_column
required
string
transformation
string

Responses

Request samples

Content type
application/json
{
  • "attribute_type": "text",
  • "channel_code": "string",
  • "default_value": "string",
  • "is_identifier": false,
  • "is_required": true,
  • "locale_code": "string",
  • "pim_attribute": "name",
  • "sort_order": 1,
  • "source_column": "product_name",
  • "transformation": "trim"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Bulk upsert mappings

Replace all mappings for an import profile with the provided set

Authorizations:
BearerAuth
path Parameters
id
required
string

Import profile ID

Request Body schema: application/json
required

Bulk mapping request

Array of objects (ImportProfileMappingEntry)

Responses

Request samples

Content type
application/json
{
  • "mappings": [
    ]
}

Response samples

Content type
application/json
{
  • "data": null,
  • "success": true
}

Delete a mapping

Delete a single import profile mapping

Authorizations:
BearerAuth
path Parameters
id
required
string

Import profile ID

mappingId
required
string

Mapping ID

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ],
  • "message": "string",
  • "success": true
}

Update a mapping

Update an existing import profile mapping

Authorizations:
BearerAuth
path Parameters
id
required
string

Import profile ID

mappingId
required
string

Mapping ID

Request Body schema: application/json
required

Update request

attribute_type
string
channel_code
string
default_value
string
is_identifier
boolean
is_required
boolean
locale_code
string
pim_attribute
string
sort_order
integer
source_column
string
transformation
string

Responses

Request samples

Content type
application/json
{
  • "attribute_type": "string",
  • "channel_code": "string",
  • "default_value": "string",
  • "is_identifier": true,
  • "is_required": true,
  • "locale_code": "string",
  • "pim_attribute": "string",
  • "sort_order": 0,
  • "source_column": "string",
  • "transformation": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Quick Publish

Quick publish products

Immediately enqueue an export job for a set of specific products on a given connection, bypassing the scheduled export pipeline

Authorizations:
BearerAuth
Request Body schema: application/json
required

Quick publish request with connection ID and product IDs

connection_id
string
export_profile_id
required
string
product_ids
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "connection_id": "string",
  • "export_profile_id": "string",
  • "product_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

List products for quick publish

Retrieve a paginated list of products that can be selected for quick publishing, with optional search and modification date filter

Authorizations:
BearerAuth
query Parameters
page
integer
Default: 1

Page number

page_size
integer
Default: 10

Items per page

search
string

Search term to filter products by name or SKU

modified_since
string

ISO 8601 timestamp; return only products modified after this date

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Shopify OAuth

Initiate Shopify OAuth flow

Redirects the user to Shopify's OAuth authorization page. Requires connection_id and tenant_id as query parameters.

query Parameters
connection_id
required
string

Connection ID

tenant_id
required
string

Tenant ID

Responses

Handle Shopify OAuth callback

Handles the OAuth callback from Shopify, exchanges the authorization code for an access token, and stores it on the connection credentials.

query Parameters
code
required
string

Authorization code from Shopify

state
required
string

State parameter (connection_id:tenant_id)

shop
required
string

Shopify shop domain

hmac
string

HMAC signature for request verification

Responses

Snapshots

List snapshots

Get a paginated list of snapshots, optionally filtered by profile and status

Authorizations:
BearerAuth
query Parameters
page
integer
Default: 1

Page number

page_size
integer
Default: 20

Items per page

export_profile_id
string

Filter by export profile ID

status
string
Enum: "pending" "ready" "stale"

Filter by status

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Create a snapshot

Capture a point-in-time snapshot of the product catalog for a given export profile

Authorizations:
BearerAuth
Request Body schema: application/json
required

Snapshot details

execution_mode
string
export_profile_id
required
string
job_id
required
string
previous_snapshot_id
string

Responses

Request samples

Content type
application/json
{
  • "execution_mode": "string",
  • "export_profile_id": "string",
  • "job_id": "string",
  • "previous_snapshot_id": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Get a snapshot

Retrieve a single snapshot by ID

Authorizations:
BearerAuth
path Parameters
id
required
string

Snapshot ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

List snapshot items

Get a paginated list of items within a snapshot. Use has_changed=true to return only items that changed since the previous snapshot.

Authorizations:
BearerAuth
path Parameters
snapshotId
required
string

Snapshot ID

query Parameters
page
integer
Default: 1

Page number

page_size
integer
Default: 20

Items per page

has_changed
boolean

Filter to items that changed since the previous snapshot

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Transformation Rules

List transformation rules

Get a paginated list of transformation rules

Authorizations:
BearerAuth
query Parameters
page
integer
Default: 1

Page number

page_size
integer
Default: 20

Page size

rule_type
string

Filter by rule type

is_active
boolean

Filter by active status

search
string

Search term

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "pagination": {
    },
  • "success": true
}

Create a transformation rule

Create a new data transformation rule

Authorizations:
BearerAuth
Request Body schema: application/json
required

Transformation rule request

description
string
name
required
string
object
object
rule_type
required
string
source_attributes
Array of strings

Responses

Request samples

Content type
application/json
{
  • "description": "Converts weight from kilograms to pounds",
  • "name": "KG to LB Converter",
  • "parameters": { },
  • "rule_definition": { },
  • "rule_type": "calculate",
  • "source_attributes": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Get a transformation rule

Get a single transformation rule by ID

Authorizations:
BearerAuth
path Parameters
id
required
string

Transformation Rule ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Delete a transformation rule

Soft-delete a transformation rule

Authorizations:
BearerAuth
path Parameters
id
required
string

Transformation Rule ID

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ],
  • "message": "string",
  • "success": true
}

Update a transformation rule

Update an existing transformation rule

Authorizations:
BearerAuth
path Parameters
id
required
string

Transformation Rule ID

Request Body schema: application/json
required

Transformation rule update request

description
string
name
string
object
object
rule_type
string
source_attributes
Array of strings

Responses

Request samples

Content type
application/json
{
  • "description": "Updated weight conversion rule",
  • "name": "KG to LB Converter (Updated)",
  • "parameters": { },
  • "rule_definition": { },
  • "rule_type": "calculate",
  • "source_attributes": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Change transformation rule status

Activate or deactivate a transformation rule

Authorizations:
BearerAuth
path Parameters
id
required
string

Transformation Rule ID

Request Body schema: application/json
required

Status request

status
required
string
Enum: "active" "inactive"

Responses

Request samples

Content type
application/json
{
  • "status": "active"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Webhooks

List webhooks

Get a paginated list of webhooks

Authorizations:
BearerAuth
query Parameters
page
integer
Default: 1

Page number

page_size
integer
Default: 20

Page size

import_profile_id
string

Filter by import profile ID

status
string
Enum: "active" "inactive"

Filter by status

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "pagination": {
    },
  • "success": true
}

Create a webhook

Create a new webhook endpoint for push-based data import

Authorizations:
BearerAuth
Request Body schema: application/json
required

Webhook request

entity_type
required
string
import_profile_id
required
string
name
required
string
path
required
string

Responses

Request samples

Content type
application/json
{
  • "entity_type": "products",
  • "import_profile_id": "0193a5b6-e7c0-7df0-b4b1-c0a1f5e3a8d4",
  • "name": "SAP Product Webhook",
  • "path": "sap-products"
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Get a webhook

Get a single webhook by ID

Authorizations:
BearerAuth
path Parameters
id
required
string

Webhook ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}

Delete a webhook

Soft-delete a webhook endpoint

Authorizations:
BearerAuth
path Parameters
id
required
string

Webhook ID

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ],
  • "message": "string",
  • "success": true
}

Regenerate webhook secret

Generate a new HMAC secret for a webhook

Authorizations:
BearerAuth
path Parameters
id
required
string

Webhook ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "success": true
}