# `channel.catalog.pull` Import the marketplace catalog (preview or import): products, variants, images, listings, stock and prices — a durable job. - **method + path**: `POST /v1/channel/{ext}/catalog/pull` - **TR label**: Pazaryeri kataloğu içe aktarıldı - **auth**: authenticated · scope gates: any of `admin`, `catalog:write` — “Katalog yazma yetkisi gerekli” - **agentPolicy**: `propose` — a live mutation — an Ajan token's call is recorded into its open proposal (202 `proposed: true`); a Geliştirici token executes it directly. - **effects**: `provider`, `db`, `r2` - **idempotency**: server — the platform derives the key - **wraps**: [`catalog.product.create`](/reference/commands/catalog.product.create), [`catalog.product.setVariants`](/reference/commands/catalog.product.setVariants), [`catalog.product.setMedia`](/reference/commands/catalog.product.setMedia), [`catalog.media.commit`](/reference/commands/catalog.media.commit), [`channel.listing.set`](/reference/commands/channel.listing.set), [`store.syncKv`](/reference/commands/store.syncKv) Machine-readable body schema: [/schemas/routes/channel.catalog.pull.json](/schemas/routes/channel.catalog.pull.json). ## Body ```json { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "mode": { "type": "string", "enum": [ "preview", "import" ] }, "filter": { "default": "approved", "type": "string", "enum": [ "approved", "unapproved", "all" ] }, "createMissing": { "default": true, "type": "boolean" }, "updateExisting": { "default": false, "type": "boolean" }, "importImages": { "default": true, "type": "boolean" }, "matchBy": { "default": "barcode", "type": "string", "enum": [ "barcode", "sku" ] } }, "required": [ "mode" ], "additionalProperties": false } ```