---
title: "Create Source"
method: POST
path: "/companies/{company_id}/sources"
tags: ["sources"]
---

# Create Source

`POST /companies/{company_id}/sources`

## Request

- Base URL: `https://app.zalster.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.zalster.com/companies/{company_id}/sources`
- Auth: none declared

## Path parameters

- `company_id` string, uuid, required: Company id

## Request body

- union
  - FeedSourceCreate: A feed source (decision 201): a CSV or XML file, fetched or uploaded.
    - `name` string, required
    - `kind` 'feed'
    - `settings` FeedSettingsIn, required: What a feed source needs: its file, and how to read it.
      - `delivery` 'url' | 'upload', required: How a feed source's file arrives: fetched from an address, or uploaded.
      - `url` string, nullable
      - `format` 'csv' | 'xml', required: A feed has exactly one format. It is never both.
      - `delimiter` string, nullable
      - `encoding` string, nullable
      - `item_path` string, nullable
      - `credential_secret_ref` string, nullable
    - `currency` string
    - `locale` string
    - `missing_item_policy` 'deactivate' | 'keep': What to do with products absent from the latest full import.
  - ShopifySourceCreate: A Shopify shop as a source: made as a draft, read every six hours, its preset mapping active. Its ``shop_domain`` names one of the company's shop connections (design 15.0): connect the shop on Connectors first.
    - `name` string, required
    - `currency` string, nullable
    - `locale` string, nullable
    - `missing_item_policy` 'deactivate' | 'keep': What to do with products absent from the latest full import.
    - `kind` 'shopify', required
    - `settings` ShopifySettingsIn, required: A Shopify source's settings (design 14.0).
      - `shop_domain` string, required
      - `include_unlisted` boolean
      - `only_online_store` boolean
  - WooCommerceSourceCreate: A WooCommerce store as a source: made as a draft, read every six hours, its preset mapping active. Its ``store_url`` names one of the company's shop connections (design 15.0): connect the store on Connectors first.
    - `name` string, required
    - `currency` string, nullable
    - `locale` string, nullable
    - `missing_item_policy` 'deactivate' | 'keep': What to do with products absent from the latest full import.
    - `kind` 'woocommerce', required
    - `settings` WooCommerceSettingsIn, required: A WooCommerce source's settings (design 14.0).
      - `store_url` string, required
      - `include_hidden` boolean
  - MetaSourceCreate: A Meta catalog as a source (design 15.0), read through the company's Meta login: a draft read every six hours, its preset mapping active. The settings are a catalog's from ``GET …/connectors/meta/catalogs``.
    - `name` string, required
    - `currency` string, nullable
    - `locale` string, nullable
    - `missing_item_policy` 'deactivate' | 'keep': What to do with products absent from the latest full import.
    - `kind` 'meta', required
    - `settings` MetaCatalogSettings, required: A Meta catalog (Commerce Manager) read through the company's Meta login.
      - `catalog_id` string, required
      - `catalog_name` string, nullable
      - `business_id` string, nullable
      - `feed_id` string, nullable
      - `only_approved` boolean
  - TikTokSourceCreate: A TikTok catalog as a source (design 15.0), read through the company's TikTok login.
    - `name` string, required
    - `currency` string, nullable
    - `locale` string, nullable
    - `missing_item_policy` 'deactivate' | 'keep': What to do with products absent from the latest full import.
    - `kind` 'tiktok', required
    - `settings` TikTokCatalogSettings, required: A TikTok catalog — it belongs to a Business Center — read through the company's TikTok login.
      - `bc_id` string, required
      - `catalog_id` string, required
      - `catalog_name` string, nullable
      - `only_available` boolean
  - SnapchatSourceCreate: A Snapchat catalog as a source (design 15.0), read through the company's Snapchat login.
    - `name` string, required
    - `currency` string, nullable
    - `locale` string, nullable
    - `missing_item_policy` 'deactivate' | 'keep': What to do with products absent from the latest full import.
    - `kind` 'snapchat', required
    - `settings` SnapchatCatalogSettings, required: A Snapchat catalog, in one of the organizations the company's Snapchat login belongs to.
      - `organization_id` string, required
      - `catalog_id` string, required
      - `catalog_name` string, nullable
      - `product_set_id` string, nullable
  - GoogleSourceCreate: A Google Merchant Center account's products as a source (design 15.0), read through the company's Google login.
    - `name` string, required
    - `currency` string, nullable
    - `locale` string, nullable
    - `missing_item_policy` 'deactivate' | 'keep': What to do with products absent from the latest full import.
    - `kind` 'google', required
    - `settings` GoogleMerchantSettings, required: A Google Merchant Center account's products — the catalog Google Ads' Shopping and Performance Max campaigns advertise — read through the company's Google login.
      - `account_id` string, required
      - `account_name` string, nullable
      - `data_source_id` string, nullable
      - `feed_label` string, nullable
      - `content_language` string, nullable

## Response `201`

Successful Response

- SourceOut
  - `id` string, uuid, required
  - `name` string, required
  - `kind` string, required
  - `settings` object, required
  - `currency` string, required
  - `locale` string, required
  - `category_source` string, nullable
  - `missing_item_policy` string, required
  - `status` string, required
  - `active_mapping_version_id` string, uuid, nullable, required
  - `schedule_minutes` integer, nullable
  - `import_scope` object, nullable
  - `products` integer
  - `products_active` integer
  - `connection` ConnectionOut: A platform source's connection (design 15.0 §5): how the company's connection it reads through stands — a shop's, found by the source's address, or the company's login to a catalog's platform. Never its credentials.
    - `connector` string, required
    - `status` 'not_connected' | 'pending' | 'connected' | 'error' | 'disconnected', required
    - `status_reason` string, nullable
    - `shop_id` string, uuid, nullable
    - `address` string, nullable
    - `name` string, nullable
    - `method` 'oauth' | 'approval' | 'keys', nullable
    - `connected_at` string, date-time, nullable
    - `expires_at` string, date-time, nullable
    - `missing` string[]
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/zalster/apis/zalster-feed-processor.md) - [All operations](https://skmtc.dev/zalster/apis/zalster-feed-processor/llms.txt) - [OpenAPI document](https://skmtc.dev/zalster/apis/zalster-feed-processor/revisions/d0b9dc66ad36?raw)
