Skip to main content

Shopify (GraphQL)

This connector captures data from Shopify's GraphQL Admin API into Flow collections.

It is available for use in the Flow web application. For local development or open-source workflows, ghcr.io/estuary/source-shopify-native:dev provides the latest version of the connector as a Docker image. You can also follow the link in your browser to see past image versions.

Supported data resources

The following data resources are supported through the Shopify API:

By default, each resource is mapped to a Flow collection through a separate binding.

Prerequisites

  • Store ID of your Shopify account. This is the prefix of your admin URL. For example, https://{store_id}.myshopify.com/admin

You can authenticate your account either via OAuth or with a Shopify access token.

Access Token Permissions

If authenticating with an access token, ensure the following permissions are granted:

  • read_checkouts
  • read_customers
  • read_fulfillments
  • read_inventory
  • read_locales
  • read_locations
  • read_orders
  • read_products
  • read_publications

Bulk Query Operation Limitations

This connector submits and process the results of bulk query operations to capture data. Shopify only allows a single bulk query operation to run at a given time.To ensure the connector can successfully submit bulk queries, ensure no other applications are submitting bulk query operations for your Shopify store.

Configuration

You configure connectors either in the Flow web app, or by directly editing the catalog specification file. See connectors to learn more about using connectors. The values and specification sample below provide configuration details specific to the Shopify source connector.

Properties

Endpoint

The properties in the table below reflect manual authentication using the CLI. In the Flow web app, you'll sign in directly and won't need the access token.

PropertyTitleDescriptionTypeRequired/Default
/storeStore IDYour Shopify Store ID. Use the prefix of your admin URL e.g. https://{store_id}.myshopify.com/admin.stringRequired
/start_dateStart dateUTC date and time in the format 2025-01-16T00:00:00Z. Any data before this date will not be replicated.string30 days before the present date
/credentials/access_tokenAccess TokenShopify access token.stringRequired
/credentials/credentials_titleCredentialsName of the credentials setstringRequired
/advanced/window_sizeWindow sizeWindow size in days for incrementals streams. Typically left as the default unless more frequent checkpoints are desired.integer30

Bindings

PropertyTitleDescriptionTypeRequired/Default
/nameData resourceName of the data resource.stringRequired
/intervalIntervalInterval between data syncsstring

Sample

captures:
${PREFIX}/${CAPTURE_NAME}:
endpoint:
connector:
image: ghcr.io/estuary/source-shopify-native:dev
config:
advanced:
window_size: 30
credentials:
credentials_title: Private App Credentials
access_token: <secret>
start_date: "2025-01-16T12:00:00Z"
store: <store ID>
bindings:
- resource:
name: products
target: ${PREFIX}/products