{"sourceDefinitionId": "9da77001-af33-4bcd-be46-6252bf9342b9", "name": "Shopify", "dockerRepository": "airbyte/source-shopify", "dockerImageTag": "3.2.0-preview.49b6b54", "documentationUrl": "https://docs.airbyte.com/integrations/sources/shopify", "icon": "shopify.svg", "iconUrl": "https://connectors.airbyte.com/files/metadata/airbyte/source-shopify/latest/icon.svg", "sourceType": "api", "spec": {"connectionSpecification": {"$schema": "https://json-schema.org/draft-07/schema#", "title": "Shopify Source CDK Specifications", "type": "object", "required": ["shop"], "additionalProperties": true, "properties": {"shop": {"type": "string", "title": "Shopify Store", "description": "The name of your Shopify store found in the URL. For example, if your URL was https://NAME.myshopify.com, then the name would be 'NAME' or 'NAME.myshopify.com'.", "pattern": "^(?!https://)(?!https://).*", "examples": ["my-store", "my-store.myshopify.com"], "order": 1}, "credentials": {"title": "Shopify Authorization Method", "description": "The authorization method to use to retrieve data from Shopify", "type": "object", "order": 2, "oneOf": [{"type": "object", "title": "OAuth2.0", "description": "OAuth2.0", "required": ["auth_method"], "properties": {"auth_method": {"type": "string", "const": "oauth2.0", "order": 0}, "client_id": {"type": "string", "title": "Client ID", "description": "The Client ID of the Shopify developer application.", "airbyte_secret": true, "order": 1}, "client_secret": {"type": "string", "title": "Client Secret", "description": "The Client Secret of the Shopify developer application.", "airbyte_secret": true, "order": 2}, "access_token": {"type": "string", "title": "Access Token", "description": "The Access Token for making authenticated requests.", "airbyte_secret": true, "order": 3}}}, {"title": "API Password", "description": "API Password Auth", "type": "object", "required": ["auth_method", "api_password"], "properties": {"auth_method": {"type": "string", "const": "api_password", "order": 0}, "api_password": {"type": "string", "title": "API Password", "description": "The API Password for your private application in the `Shopify` store.", "airbyte_secret": true, "order": 1}}}]}, "start_date": {"type": "string", "title": "Replication Start Date", "description": "The date you would like to replicate data from. Format: YYYY-MM-DD. Any data before this date will not be replicated.", "default": "2020-01-01", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", "format": "date", "order": 3}, "bulk_window_in_days": {"type": "integer", "title": "GraphQL BULK Date Range in Days", "description": "Defines what would be a date range per single BULK Job", "default": 30}, "fetch_transactions_user_id": {"type": "boolean", "title": "Add `user_id` to Transactions (slower)", "description": "Defines which API type (REST/BULK) to use to fetch `Transactions` data. If you are a `Shopify Plus` user, leave the default value to speed up the fetch.", "default": false}, "job_product_variants_include_pres_prices": {"type": "boolean", "title": "Add `Presentment prices` to Product Variants", "description": "If enabled, the `Product Variants` stream attempts to include `Presentment prices` field (may affect the performance).", "default": true}, "job_termination_threshold": {"type": "integer", "title": "BULK Job termination threshold", "description": "The max time in seconds, after which the single BULK Job should be `CANCELED` and retried. The bigger the value the longer the BULK Job is allowed to run.", "default": 7200, "minimum": 3600, "maximum": 21600}, "job_checkpoint_interval": {"type": "integer", "title": "BULK Job checkpoint (rows collected)", "description": "The threshold, after which the single BULK Job should be checkpointed (min: 15k, max: 1M)", "default": 100000, "minimum": 15000, "maximum": 1000000}}}, "documentationUrl": "https://docs.airbyte.com/integrations/sources/shopify", "supportsNormalization": false, "supportsDBT": false, "advanced_auth": {"auth_flow_type": "oauth2.0", "predicate_key": ["credentials", "auth_method"], "predicate_value": "oauth2.0", "oauth_config_specification": {"complete_oauth_output_specification": {"type": "object", "additionalProperties": false, "properties": {"shop": {"type": "string", "path_in_connector_config": ["shop"]}, "access_token": {"type": "string", "path_in_connector_config": ["credentials", "access_token"]}}}, "complete_oauth_server_input_specification": {"type": "object", "additionalProperties": false, "properties": {"client_id": {"type": "string"}, "client_secret": {"type": "string"}}}, "complete_oauth_server_output_specification": {"type": "object", "additionalProperties": false, "properties": {"client_id": {"type": "string", "path_in_connector_config": ["credentials", "client_id"]}, "client_secret": {"type": "string", "path_in_connector_config": ["credentials", "client_secret"]}}}}}}, "tombstone": false, "public": true, "custom": false, "releaseStage": "generally_available", "supportLevel": "certified", "allowedHosts": {"hosts": ["${shop}.myshopify.com", "shopify.com"]}, "suggestedStreams": {"streams": ["customers", "customer_journey_summary", "order_agreements", "order_refunds", "transactions_graphql", "product_variants", "abandoned_checkouts", "discount_codes", "inventory_items", "locations", "shop", "price_rules", "inventory_levels", "custom_collections", "fulfillments", "product_images", "collects", "tender_transactions", "smart_collections", "draft_orders", "metafield_customers", "metafield_products", "metafield_orders", "customer_address", "fulfillment_orders", "metafield_shops", "countries", "metafield_product_variants", "metafield_smart_collections", "metafield_product_images", "metafield_draft_orders", "metafield_locations"]}, "maxSecondsBetweenMessages": 21600, "erdUrl": "https://dbdocs.io/airbyteio/source-shopify?view=relationships", "releases": {"rolloutConfiguration": {"enableProgressiveRollout": false, "initialPercentage": 0, "maxPercentage": 50, "advanceDelayMinutes": 10}, "breakingChanges": {"1.0.0": {"upgradeDeadline": "2023-09-17", "message": "This upgrade brings changes to certain streams after migration to Shopify API version `2023-07`, more details in this PR: https://github.com/airbytehq/airbyte/pull/29361.", "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/shopify-migrations#1.0.0"}, "2.0.0": {"upgradeDeadline": "2024-03-18", "message": "This upgrade brings perfomance impovements and stream schema changes. Details are available here: https://github.com/airbytehq/airbyte/pull/32345#issue-1985556333.", "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/shopify-migrations#2.0.0", "scopedImpact": [{"scopeType": "stream", "impactedScopes": ["collections", "customer_address", "discount_codes", "fulfillment_orders", "fulfillments", "inventory_items", "inventory_levels", "metafield_collections", "metafield_customers", "metafield_draft_orders", "metafield_locations", "metafield_orders", "metafield_product_images", "metafield_product_variants", "order_refunds", "product_images", "product_variants", "transactions"]}]}, "2.1.0": {"upgradeDeadline": "2024-06-10", "message": "This upgrade changes the `Products`, `Product Images` and `Product Variants` streams to use `Shopify GraphQL BULK`. More details here: https://github.com/airbytehq/airbyte/pull/37767.", "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/shopify-migrations#2.1.0", "scopedImpact": [{"scopeType": "stream", "impactedScopes": ["product_variants"]}]}, "2.2.0": {"upgradeDeadline": "2024-06-11", "message": "The countries object from the admin REST API now always return a number", "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/shopify-migrations#2.2.0", "scopedImpact": [{"scopeType": "stream", "impactedScopes": ["countries"]}]}, "2.6.1": {"upgradeDeadline": "2025-01-16", "message": "The `ProductsGraphQL` and the `CustomerSavedSearch` streams have been deprecated by Shopify and removed from Airbyte. Please use the `Products` stream instead. As of 2025-01-16, Shopify no longer provides data for the affected streams. More details here: https://github.com/airbytehq/airbyte/pull/51037.", "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/shopify-migrations#2.6.1", "scopedImpact": [{"scopeType": "stream", "impactedScopes": ["products_graph_ql", "customer_saved_search"]}]}, "3.0.0": {"upgradeDeadline": "2025-04-01", "message": "After upgrading to Source Shopify v3.0.0 latest v2025-01 API version will be used by the source. Due to API upgrade streams `Countries` and `Product Variants` contain schema changes that require Refreshing Source Schema and Clearing affected streams. Streams `Articles`, `Blogs` and `Pages` change value for field `admin_graphql_api_id`, if you rely on this value please Clear and Resync affected streams. See more details on https://docs.airbyte.com/integrations/sources/shopify-migrations.", "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/shopify-migrations#3.0.0", "scopedImpact": [{"scopeType": "stream", "impactedScopes": ["countries", "product_variants", "articles", "blogs", "pages"]}]}}, "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/shopify-migrations"}, "ab_internal": {"sl": 300, "ql": 400, "isEnterprise": false, "requireVersionIncrementsInPullRequests": true}, "generated": {"git": {"commit_sha": "4a759c05b913be7d1e752668b2e9e967ae8efb35", "commit_timestamp": "2026-02-03T15:41:03-08:00", "commit_author": "Aaron (\"AJ\") Steers", "commit_author_email": "aj@airbyte.io"}, "source_file_info": {"metadata_file_path": "metadata/airbyte/source-shopify/3.2.0-preview.49b6b54/metadata.yaml", "metadata_bucket_name": "prod-airbyte-cloud-connector-metadata-service", "metadata_last_modified": "2026-02-04T00:55:15.891000+00:00", "registry_entry_generated_at": "2026-02-04T00:56:24.271992"}, "sbomUrl": "https://connectors.airbyte.com/files/sbom/airbyte/source-shopify/3.2.0-preview.49b6b54.spdx.json"}, "packageInfo": {"cdk_version": "python:6.61.6"}, "language": "python", "supportsFileTransfer": false, "supportsDataActivation": false, "connectorBuildOptions": {"baseImage": "docker.io/airbyte/python-connector-base:4.0.2@sha256:9fdb1888c4264cf6fee473649ecb593f56f58e5d0096a87ee0b231777e2e3e73"}, "githubIssueLabel": "source-shopify", "externalDocumentationUrls": [{"title": "Shopify Admin API", "type": "api_reference", "url": "https://shopify.dev/docs/api/admin-rest"}, {"title": "Developer changelog", "type": "api_release_history", "url": "https://shopify.dev/changelog"}, {"title": "Shopify API changelog", "type": "api_release_history", "url": "https://shopify.dev/docs/api/release-notes"}, {"title": "Shopify authentication", "type": "authentication_guide", "url": "https://shopify.dev/docs/apps/auth"}, {"title": "Shopify Admin API OpenAPI specification", "type": "openapi_spec", "url": "https://shopify.dev/docs/api/admin-rest"}, {"title": "Shopify rate limits", "type": "rate_limits", "url": "https://shopify.dev/docs/api/usage/rate-limits"}, {"title": "Shopify Status", "type": "status_page", "url": "https://www.shopifystatus.com/"}], "connectorTestSuitesOptions": [{"suite": "liveTests", "testConnections": [{"id": "1de7c985-bcce-425a-a762-57389cea3900", "name": "shopify_config_dev_null"}, {"id": "1f3550b3-740a-4841-8337-0e28a7b23458", "name": "shopify_config_old_dev_null"}, {"id": "5f1d6da1-87bc-46b4-8de7-1b3fe1a2be90", "name": "shopify_config_transactions_with_user_id_dev_null"}, {"id": "a08529a9-618c-4bfc-884f-f5dccba1c1ab", "name": "shopify_config_oauth_dev_null"}]}, {"suite": "unitTests"}, {"suite": "acceptanceTests", "testSecrets": [{"fileName": "config_transactions_with_user_id.json", "name": "SECRET_SOURCE-SHOPIFY-TRANSACTIONS-WITH-USER-ID__CREDS", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}, {"fileName": "config_oauth.json", "name": "SECRET_SOURCE-SHOPIFY_OAUTH__CREDS", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}, {"fileName": "config_old.json", "name": "SECRET_SOURCE-SHOPIFY_OLD_CREDS", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}, {"fileName": "config.json", "name": "SECRET_SOURCE-SHOPIFY__CREDS", "secretStore": {"alias": "airbyte-connector-testing-secret-store", "type": "GSM"}}]}], "remoteRegistries": {"pypi": {"enabled": true, "packageName": "airbyte-source-shopify"}}, "license": "ELv2", "tags": ["language:python", "cdk:python"]}