Skip to main content
POST
/
api
/
products
/
export-async
Export Products Async
curl --request POST \
  --url https://api.merchantops.ai/api/products/export-async \
  --header 'Content-Type: application/json' \
  --data '
{
  "product_keys": [
    "<string>"
  ],
  "column_mappings": [
    {
      "column_name": "<string>",
      "source_field": "<string>",
      "sub_field": "<string>",
      "use_label": false
    }
  ],
  "export_format": "xlsx",
  "export_mode": "attribute_rows",
  "filter_by_label": false,
  "filter_latest_version": false,
  "label_keys": [
    "<string>"
  ],
  "source_filter": [
    "<string>"
  ]
}
'
{
  "job_id": "<string>",
  "message": "<string>",
  "total": 123
}

Headers

authorization
string | null
X-Organization-ID
string | null

Cookies

stytch_session
string | null

Body

application/json

Request model for exporting products to Excel.

product_keys
string[]
required

List of product keys to export

column_mappings
ColumnMappingConfig · object[] | null

Column mapping configuration (required for column_based mode)

export_format
enum<string>
default:xlsx

File format: 'xlsx' for Excel, 'csv' for CSV

Available options:
xlsx,
csv
export_mode
enum<string>
default:attribute_rows

Export format: 'column_based' uses custom column mappings, 'attribute_rows' creates one row per property

Available options:
column_based,
attribute_rows
filter_by_label
boolean
default:false

If true, filter products by specific labels

filter_latest_version
boolean
default:false

If true, only export the latest version of each product

label_keys
string[] | null

Label keys to filter by (used when filter_by_label=true)

source_filter
string[] | null

Filter products by source (e.g., ['merchant_input', 'scraper'])

Response

Successful Response

Response for a queued large bulk operation (export / delete).

job_id
string
required

Job ID for tracking progress

message
string
required

Status message

total
integer
required

Number of product keys queued for processing