This is a Singer tap that produces JSON-formatted data following the Singer spec.
This tap:
- Pulls raw data from Shopify Graphql Admin API
- Extracts the following resources:
- Outputs the schema for each resource
- Incrementally pulls data based on the input state
| Stream Name | Replication Key | Key Properties |
|---|---|---|
| abandoned_checkouts | updatedAt | id |
| collections | updatedAt | id |
| customers | updatedAt | id |
| events | createdAt | id |
| inventory_items | updatedAt | id |
| inventory_levels | updatedAt | id |
| locations | createdAt | id |
| metafields_collections | updatedAt | id |
| metafields_customers | updatedAt | id |
| metafields_orders | updatedAt | id |
| metafields_products | updatedAt | id |
| order_refunds | updatedAt | id |
| orders | updatedAt | id |
| order_shipping_lines | updatedAt | id |
| fulfillment_orders | updatedAt | id |
| product_variants | updatedAt | id |
| products | updatedAt | id |
| transactions | createdAt | id |
Currently, locations graphql endpoint doesn't support querying on the updatedAt, therefore, createdAt is made the replication key.
-
Install
pip install tap-shopify
-
Create the config file
Create a JSON file called
config.json. Its contents should look like:{ "start_date": "2010-01-01", "api_key": "<Shopify API Key>", "shop": "test_shop", "request_timeout": 300 }The
start_datespecifies the date at which the tap will begin pulling data (for those resources that support this).The
api_keyis the API key for your Shopify shop generated via an OAuth flow.The
shopis your Shopify shop which will be the valuetest_shopin the stringhttps://test_shop.myshopify.comThe
request_timeoutis the timeout for the requests. Default: 300 seconds -
Run the Tap in Discovery Mode
tap-shopify -c config.json -d
See the Singer docs on discovery mode here.
-
Run the Tap in Sync Mode
tap-shopify -c config.json --catalog catalog-file.json
Copyright © 2025 Stitch