---
title: "Create Datasource"
method: POST
path: "/datasources"
---

# Create Datasource

`POST /datasources`

## Headers

- `Authorization` string, nullable
- `X-User-Id` string, nullable
- `X-Posthog-Session-Id` string

## Cookies

- `session_id` string, nullable

## Request body

- CreateDatasourceSchema
  - `name` string, required
  - `config` union, required
    - DiscriminatoryUnionLiteralSHOPIFYShopifyDatasourceConfig
      - `type` 'shopify', required
      - `config` ShopifyDatasourceConfig, required
        - `shop_name` string, required
        - `api_password` string, nullable
        - `client_id` string, nullable
        - `client_secret` string, nullable
        - `code` string, nullable
        - `access_token` string, nullable
        - `exclude_tags` string[], nullable
        - `exclude_channels` string[], nullable
        - `include_shipping_country_codes` string[], nullable
        - `order_delay_seconds` integer, nullable
    - DiscriminatoryUnionLiteralAMAZONAmazonSellingPartnerDatasourceConfig
      - `type` 'amazon', required
      - `config` AmazonSellingPartnerDatasourceConfig, required
        - `region` 'NA' | 'EU' | 'FE' | 'SANDBOX', required
        - `refresh_token` string, required
        - `access_token` string, required
        - `product_id_option` 'asin' | 'sku' | 'order_item_id'
        - `marketplace_id` string, nullable
        - `include_pending_orders` boolean
    - DiscriminatoryUnionLiteralRECHARGERechargeDatasourceConfig
      - `type` 'recharge', required
      - `config` RechargeDatasourceConfig, required
        - `api_key` string, required
    - DiscriminatoryUnionLiteralWOOCOMMERCEWoocommerceDatasourceConfig
      - `type` 'woocommerce', required
      - `config` WoocommerceDatasourceConfig, required
        - `url` string, required
        - `consumer_key` string, required
        - `consumer_secret` string, required
        - `meta_data_filter` MetaDataFilter
          - `key` string, required
          - `value` string, required
        - `track_unpaid_orders` boolean
        - `v5_7_or_lower` boolean
        - `rate_limit_seconds` integer, nullable
    - DiscriminatoryUnionLiteralBIGCOMMERCEBigcommerceDatasourceConfig
      - `type` 'bigcommerce', required
      - `config` BigcommerceDatasourceConfig, required
        - `store_hash` string, required
        - `access_token` string, required
        - `channel_names` string[]
        - `fetch_mpn_from_catalog` boolean
    - DiscriminatoryUnionLiteralFIRMHOUSEFirmhouseDatasourceConfig
      - `type` 'firmhouse', required
      - `config` FirmhouseDatasourceConfig, required
        - `token` string
        - `subscription_value_option` 'recurring_plan_and_products' | 'recurring_plan_only' | 'minimum_commitment' | 'first_invoice'
        - `product_id_option` 'shopify' | 'firmhouse'
        - `track_placed_order` boolean
        - `track_shipments` boolean
    - DiscriminatoryUnionLiteralMAGENTO2Magento2DatasourceConfig
      - `type` 'magento2', required
      - `config` Magento2DatasourceConfig, required
        - `api_url` string, required
        - `storefront_domain` string
        - `token` string, required
        - `store_view_name` string
        - `statuses_to_track` string[]
        - `custom_properties` string[]
        - `custom_product_id_attribute` string
        - `sales_channel_type_by_store_id` object
        - `placed_order_event_id` 'order_id' | 'quote_id'
    - DiscriminatoryUnionLiteralSKIOSkioDatasourceConfig
      - `type` 'skio', required
      - `config` SkioDatasourceConfig, required
        - `token` string, required
        - `shopify_shop_name` string, required
    - DiscriminatoryUnionLiteralFUNNELISHFunnelishDatasourceConfig
      - `type` 'funnelish', required
      - `config` FunnelishDatasourceConfig, required
        - `track_as_placed_order` boolean
    - DiscriminatoryUnionLiteralWEBHOOKWebhookDatasourceConfig
      - `type` 'webhook', required
      - `config` WebhookDatasourceConfig, required
    - DiscriminatoryUnionLiteralDUMMYDummmyDatasourceConfig
      - `type` 'dummy', required
      - `config` DummmyDatasourceConfig, required
        - `raise_authentication_error` boolean
  - `start_date` string, date, nullable
  - `active` boolean

## Response `200`

Successful Response

- CreateDatasourceResponseSchema
  - `status` 'error' | 'ok', required
  - `datasource` DatasourceSchema
    - `id` integer, required
    - `name` string, required
    - `config` union, required
      - DiscriminatoryUnionLiteralSHOPIFYShopifyDatasourceConfig
        - `type` 'shopify', required
        - `config` ShopifyDatasourceConfig, required
          - `shop_name` string, required
          - `api_password` string, nullable
          - `client_id` string, nullable
          - `client_secret` string, nullable
          - `code` string, nullable
          - `access_token` string, nullable
          - `exclude_tags` string[], nullable
          - `exclude_channels` string[], nullable
          - `include_shipping_country_codes` string[], nullable
          - `order_delay_seconds` integer, nullable
      - DiscriminatoryUnionLiteralAMAZONAmazonSellingPartnerDatasourceConfig
        - `type` 'amazon', required
        - `config` AmazonSellingPartnerDatasourceConfig, required
          - `region` 'NA' | 'EU' | 'FE' | 'SANDBOX', required
          - `refresh_token` string, required
          - `access_token` string, required
          - `product_id_option` 'asin' | 'sku' | 'order_item_id'
          - `marketplace_id` string, nullable
          - `include_pending_orders` boolean
      - DiscriminatoryUnionLiteralRECHARGERechargeDatasourceConfig
        - `type` 'recharge', required
        - `config` RechargeDatasourceConfig, required
          - `api_key` string, required
      - DiscriminatoryUnionLiteralWOOCOMMERCEWoocommerceDatasourceConfig
        - `type` 'woocommerce', required
        - `config` WoocommerceDatasourceConfig, required
          - `url` string, required
          - `consumer_key` string, required
          - `consumer_secret` string, required
          - `meta_data_filter` MetaDataFilter
            - `key` string, required
            - `value` string, required
          - `track_unpaid_orders` boolean
          - `v5_7_or_lower` boolean
          - `rate_limit_seconds` integer, nullable
      - DiscriminatoryUnionLiteralBIGCOMMERCEBigcommerceDatasourceConfig
        - `type` 'bigcommerce', required
        - `config` BigcommerceDatasourceConfig, required
          - `store_hash` string, required
          - `access_token` string, required
          - `channel_names` string[]
          - `fetch_mpn_from_catalog` boolean
      - DiscriminatoryUnionLiteralFIRMHOUSEFirmhouseDatasourceConfig
        - `type` 'firmhouse', required
        - `config` FirmhouseDatasourceConfig, required
          - `token` string
          - `subscription_value_option` 'recurring_plan_and_products' | 'recurring_plan_only' | 'minimum_commitment' | 'first_invoice'
          - `product_id_option` 'shopify' | 'firmhouse'
          - `track_placed_order` boolean
          - `track_shipments` boolean
      - DiscriminatoryUnionLiteralMAGENTO2Magento2DatasourceConfig
        - `type` 'magento2', required
        - `config` Magento2DatasourceConfig, required
          - `api_url` string, required
          - `storefront_domain` string
          - `token` string, required
          - `store_view_name` string
          - `statuses_to_track` string[]
          - `custom_properties` string[]
          - `custom_product_id_attribute` string
          - `sales_channel_type_by_store_id` object
          - `placed_order_event_id` 'order_id' | 'quote_id'
      - DiscriminatoryUnionLiteralSKIOSkioDatasourceConfig
        - `type` 'skio', required
        - `config` SkioDatasourceConfig, required
          - `token` string, required
          - `shopify_shop_name` string, required
      - DiscriminatoryUnionLiteralFUNNELISHFunnelishDatasourceConfig
        - `type` 'funnelish', required
        - `config` FunnelishDatasourceConfig, required
          - `track_as_placed_order` boolean
      - DiscriminatoryUnionLiteralWEBHOOKWebhookDatasourceConfig
        - `type` 'webhook', required
        - `config` WebhookDatasourceConfig, required
      - DiscriminatoryUnionLiteralDUMMYDummmyDatasourceConfig
        - `type` 'dummy', required
        - `config` DummmyDatasourceConfig, required
          - `raise_authentication_error` boolean
    - `start_date` string, date, nullable
    - `status` 'starting' | 'running' | 'healthy' | 'unhealthy', required
    - `active` boolean, required
    - `current_sync_progress` number, nullable
    - `webhook_id` string, nullable
    - `creator` AccountSchema
      - `id` integer, required
      - `email` string, required
      - `first_name` string, nullable
      - `last_name` string, nullable
      - `profile_picture_url` string, nullable
    - `created_at` string, date-time, nullable
    - `last_failure` DatasourceFailure
      - `type` 'authentication_error' | 'unknown_error' | 'response_error' | 'connection_error', required
      - `description` string, nullable
      - `status_code` integer, nullable
      - `message` string, required
    - `product_metadata_job_id` integer, nullable
    - `product_metadata_job_last_run` string, date-time, nullable
    - `webhook_token` string, nullable, required
  - `detail` string, nullable
  - `message` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/runconverge/apis/fastapi.md) · [All operations](https://skmtc.dev/runconverge/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/runconverge/fastapi/revisions/1452e350bd1d/schema)
