Skip to main content
POST
Batch create/upsert vendors

Authorizations

Authorization
string
header
required

Workspace-scoped API key. Available scopes:

  • read:products: List and read products, including variants, references, and completeness.
  • write:products: Create, update, and upsert products and their attribute values.
  • delete:products: Delete products.
  • read:images: List and read images.
  • write:images: Create, update, and upsert images and their attribute values.
  • delete:images: Delete images.
  • read:vendors: List and read vendors.
  • write:vendors: Create, update, and upsert vendors and their attribute values.
  • delete:vendors: Delete vendors.
  • read:categories: List and read categories.
  • write:categories: Create, update, and upsert categories and their attribute values.
  • delete:categories: Delete categories.
  • read:sources: List and read data sources, including scraped content.
  • write:sources: Create data sources (triggers processing) and update their attribute values.
  • delete:sources: Delete data sources.
  • read:attributes: List and read attribute definitions.
  • write:attributes: Create and update attribute definitions.
  • read:views: List and read saved grid views (MCP surface).
  • write:views: Create and update grid views (MCP surface).
  • read:channels: Read the enabled channel catalog.
  • read:events: Read the workspace change feed and per-entity events.
  • read:jobs: List and poll asynchronous job status.

Body

application/json
items
object[]
required
Required array length: 1 - 100 elements
merge_key
string

Optional shared merge key — when present, items upsert instead of create.

Response

Per-item results, in input order, under a summary that makes "N of M failed" a single field read. Check every item — a 200 only means the batch was processed. Route retries on error.retriable, never on message text. Summaries from re-runs must not be summed (an idempotent retry reports updates for rows the first attempt created).

summary
object
required

Batch-level counts. has_errors is the cheap "anything to look at?" check; clean batches can skip the per-item scan. Do not sum summaries across idempotent re-runs of the same batch.

Example:
data
object[]
required