Skip to content

E-Commerce · Beta

Shopify
API integration

Ship E-Commerce features without building the integration. Full Shopify API access via Proxy, normalized data through Unified APIs, and 230+ MCP-ready tools for AI agents — all extensible to your exact use case.

Built for specific customer use cases. Issues are resolved quickly.

Talk to us
Shopify

Use Cases

Why integrate with Shopify

Common scenarios for SaaS companies building Shopify integrations for their customers.

01

Sync Shopify customer and order data into your SaaS product

If your product provides analytics, marketing automation, or customer support tools, pulling Shopify customers and orders through Truto's Unified E-Commerce API lets you offer a turnkey integration without building and maintaining direct API plumbing against Shopify's REST or GraphQL endpoints.

02

Build a unified customer view across e-commerce platforms

SaaS companies serving merchants on multiple platforms can normalize Shopify customer profiles, order histories, and product catalogs alongside other e-commerce providers using Truto's Unified E-Commerce API, giving their users a single pane of glass without platform-specific code.

03

Power product catalog sync for inventory and listing management

ERP and inventory management SaaS products need reliable access to Shopify products, variants, and SKUs. Offering Shopify as a native integration via Truto lets your users connect their store in minutes and keep product data flowing without manual CSV imports.

04

Enrich helpdesk tickets with real-time Shopify order context

Customer support platforms can use the Shopify integration to automatically surface a shopper's recent orders and profile when a ticket arrives, dramatically reducing resolution time and eliminating the need for agents to switch between tools.

05

Aggregate Shopify users for access management and team visibility

SaaS products that manage permissions, onboarding, or team workflows can pull Shopify staff and collaborator accounts via the Unified User Directory API to give merchants visibility into who has access to their store.

What You Can Build

Ship these features with Truto + Shopify

Concrete product features your team can ship faster by leveraging Truto’s Shopify integration instead of building from scratch.

01

One-click Shopify store connection

Let your end users authenticate their Shopify store through Truto's managed OAuth flow and start syncing customers, orders, and products in minutes with no credential management on your side.

02

Customer lifetime value dashboard

Pull Shopify customers and their associated orders to compute LTV, order frequency, and average order value — surfacing these metrics natively inside your product.

03

Real-time order feed for fulfillment or accounting workflows

Ingest Shopify orders with full line-item, discount, tax, and shipping detail to power downstream fulfillment routing, financial reconciliation, or revenue recognition features.

04

Unified product catalog browser

Display a merchant's full Shopify product catalog — including variants, pricing, and images — inside your app so users can reference or act on product data without leaving your UI.

05

Cross-platform customer deduplication

Combine Shopify customer records with data from other e-commerce integrations through Truto's Unified E-Commerce API to automatically detect and merge duplicate profiles across sales channels.

06

Store team directory and access audit

Use the Unified User Directory API to list Shopify staff accounts, giving your users a consolidated view of who has access to their store alongside users from other connected platforms.

SuperAI

Shopify AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_shopify_orders

List Shopify orders with optional filters by financial status, fulfillment status, date range, order IDs, and more. Returns each order with id, name, total_price, line_items, currency, created_at, customer, and financial_status. Max 250 per page. Only the last 60 days of orders are accessible by default; older orders require additional access.

get_single_shopify_order_by_id

Get a single Shopify order by id. Returns: id, admin_graphql_api_id, app_id, browser_ip, buyer_accepts_marketing, cancel_reason, cancelled_at, cart_token, checkout_id, checkout_token, client_details, closed_at, confirmation_number, confirmed, contact_email, created_at, currency, current_subtotal_price, current_subtotal_price_set, email, line_items, name, note, phone, tags, total_price,…

shopify_orders_bulk_delete

Delete an order by order ID. Orders interacting with an online gateway cannot be deleted. Returns an empty object on success.

shopify_orders_bulk_update

Update an existing order by order ID. Fields such as email, phone, note, tags, shipping address, note attributes and metafields are nested under an order key in the request body; only provided fields are changed.

shopify_orders_cancel

Cancel an order by order ID. Orders that have a fulfillment must have it cancelled first. Optionally issue a refund, restock line items, record a cancellation reason and email the customer. Returns the cancelled Order object. Required: order_id.

shopify_orders_close

Close an order by order ID, marking it as complete and archiving it. A closed order can be re-opened later. Takes no request body. Returns the closed Order object. Required: order_id.

shopify_orders_count

Count the orders in the Shopify store matching the supplied filters (status, payment status, fulfillment status and date ranges). Returns a count.

create_a_shopify_order

Create an order in the Shopify store. The order is nested under an order key in the request body with line_items (variant_id and quantity, or custom items with title and price), optional customer, addresses, transactions, statuses and inventory behaviour. By default no notification emails are sent and inventory is not adjusted.

shopify_orders_open

Re-open a previously closed order by order ID, restoring it to the open order list. Takes no request body. Returns the re-opened Order object. Required: order_id.

list_all_shopify_products

List Shopify products with optional filters by IDs, collection, handle, product type, or date range. Returns: id, title, handle, vendor, status, variants, images, options, created_at, updated_at. Max 250 per page. REST product listing is deprecated as of API version 2024-04.

get_single_shopify_product_by_id

Get a single Shopify product by id. Returns the full product object including id, title, body_html, vendor, product_type, status, variants, options, images, tags, created_at, and updated_at. Required: id.

shopify_products_bulk_delete

Delete a Shopify product by id, including all its variants and images. Returns an empty 204 response on success. Required: id. Deleting products via the REST API is deprecated as of 2024-04; use the new product model.

shopify_products_bulk_update

Update an existing Shopify product by id. Returns the updated product including id, title, body_html, vendor, handle, status, variants, created_at, and updated_at. Required: id. REST product CRUD is deprecated as of API version 2024-04.

shopify_products_count

Count all Shopify products in the store. Returns: count.

create_a_shopify_product

Create a new product in Shopify. Returns: id, title, body_html, vendor, product_type, created_at, handle, updated_at, published_at, template_suffix, published_scope, tags, status, admin_graphql_api_id, variants, options, images, image. Required: title. REST product creation is deprecated as of API version 2024-04.

list_all_shopify_customers

List Shopify customers with contact details, order history, and marketing consent. Returns: id, email, first_name, last_name, phone, state, note, verified_email, multipass_identifier, tax_exempt, tax_exemptions, tags, currency, created_at, updated_at, orders_count, total_spent, last_order_id, last_order_name, marketing_opt_in_level, addresses, default_address, email_marketing_consent,…

get_single_shopify_customer_by_id

Get a single Shopify customer by id. Returns the full customer object including id, email, first_name, last_name, phone, orders_count, total_spent, state, tags, currency, addresses, default_address, email_marketing_consent, sms_marketing_consent, and admin_graphql_api_id. Required: id.

shopify_customers_bulk_delete

Delete a Shopify customer by id. Returns an empty 204 response on success. A customer can't be deleted if they have existing orders. Required: id.

shopify_customers_bulk_update

Update a Shopify customer by id, modifying attributes such as name, email, phone, tags, addresses, tax settings, and marketing consent. Returns the updated customer object including id, email, first_name, last_name, orders_count, state, total_spent, addresses, email_marketing_consent, sms_marketing_consent, and default_address. Required: id.

shopify_customers_count

Count Shopify customers, optionally filtered by creation or update date range. Returns: count. Optional filters: created_at_min, created_at_max, updated_at_min, updated_at_max (date-time format).

create_a_shopify_customer

Create a new customer in Shopify. Returns the created customer object including id, email, first_name, last_name, phone, state, tags, orders_count, total_spent, currency, addresses, email_marketing_consent, sms_marketing_consent, created_at, and admin_graphql_api_id.

shopify_customers_create_account_activation_url

Generate a one-time-use account activation URL for a Shopify customer whose account is not yet enabled. Returns the account activation URL string, valid for 30 days. Required: customer_id. Generating a new URL invalidates any previous one; the endpoint returns an error if the customer's account is already enabled.

shopify_customers_list_orders

List all Shopify orders belonging to a specific customer. Returns: id, admin_graphql_api_id, app_id, browser_ip, buyer_accepts_marketing, cancel_reason, cancelled_at, cart_token, checkout_id, checkout_token, client_details, closed_at, confirmation_number, confirmed, contact_email, created_at, currency, current_subtotal_price, current_subtotal_price_set, current_total_additional_fees_set,…

shopify_customers_search

Search Shopify customers by a query string across fields such as email, name, phone, tags, and country. Returns matching customers with id, email, first_name, last_name, orders_count, total_spent, tags, addresses, and marketing consent details. Required: query.

shopify_customers_send_invite

Send an account invitation email to a Shopify customer. Returns: to, from, subject, custom_message, bcc. Required: customer_id.

list_all_shopify_users

List all Shopify staff users for the shop. Returns: id, first_name, last_name, email, account_owner, bio, url, im, screen_name, phone, receive_announcements, permissions, locale, user_type, admin_graphql_api_id, tfa_enabled??. Max 250 per page.

get_single_shopify_user_by_id

Get a single Shopify staff user by id. Returns: id, first_name, last_name, email, account_owner, bio, url, im, screen_name, phone, receive_announcements, permissions, locale, user_type, admin_graphql_api_id, tfa_enabled??. Required: id.

shopify_users_get_current

Get the currently logged-in Shopify user associated with the access token. Returns: id, first_name, last_name, email, account_owner, permissions, locale, user_type, admin_graphql_api_id, tfa_enabled?, phone, bio, im, receive_announcements, screen_name, url. Only works when the access token was created for a specific user of the shop.

list_all_shopify_me

Get the currently logged-in Shopify user. Returns: account_owner, bio, email, first_name, id, im, last_name, permissions, phone, receive_announcements, screen_name, url, locale, user_type.

shopify_blogs_bulk_delete

Delete a Shopify blog by id. Returns an empty 204 response on success. Required: id.

shopify_blogs_bulk_update

Update an existing Shopify blog by id. Returns the updated blog object including id, title, handle, commentable, created_at, updated_at, tags, and admin_graphql_api_id. Required: id.

shopify_blogs_count

Get the total count of all Shopify blogs for a shop. Returns: count.

create_a_shopify_blog

Create a new Shopify blog. Returns the created blog object including id, title, handle, commentable, created_at, and admin_graphql_api_id. Required: title.

list_all_shopify_blogs

List all Shopify blogs for a shop. Returns each blog with id, title, handle, commentable, created_at, updated_at, tags, and admin_graphql_api_id. Max 250 per page.

shopify_collections_list_products

List products belonging to a Shopify collection, sorted by the collection's sort order. Returns: id, title, body_html, vendor, product_type, created_at, handle, updated_at, published_at, template_suffix, published_scope, tags, status, admin_graphql_api_id, options, images, image. Required: collection_id.

get_single_shopify_collection_by_id

Get a single Shopify collection by id. Returns the full collection object including id, handle, title, body_html, sort_order, products_count, collection_type, published_scope, template_suffix, published_at, updated_at, admin_graphql_api_id, and image. Required: id.

shopify_product_images_bulk_delete

Delete a Shopify product image by id. Returns an empty 204 response on success. Required: product_id, id. Deleting product images is deprecated as of REST API 2025-01.

shopify_product_images_bulk_update

Update a Shopify product image's position, alt text, source, metafields, or variant associations. Returns: id, alt, position, product_id, created_at, updated_at, admin_graphql_api_id, width, height, src, variant_ids. Required: product_id, id. Updating product images is deprecated as of REST API 2025-01.

shopify_product_images_count

Receive a count of all Shopify product images for a specific product. Returns: count. Required: product_id.

create_a_shopify_product_image

Create a new Shopify product image for a specific product, optionally attaching it to product variants. Returns: id, alt, position, product_id, created_at, updated_at, admin_graphql_api_id, width, height, src, variant_ids. Required: product_id, image.

list_all_shopify_product_images

List all Shopify product images for a specific product. Returns: id, alt, position, product_id, created_at, updated_at, admin_graphql_api_id, width, height, src, variant_ids. Required: product_id.

create_a_shopify_product_variant

Create a new product variant for a Shopify product. Returns the created variant including id, product_id, title, price, sku, option values, and inventory details. Required: product_id. Variant CRUD is deprecated as of REST API 2024-04; use the InventoryLevel resource to manage inventory quantities.

list_all_shopify_product_variants

List all product variants for a Shopify product. Returns each variant with id, product_id, title, price, sku, option values, and inventory details. Required: product_id.

shopify_product_variants_count

Get the total count of product variants for a Shopify product. Returns: count. Required: product_id.

get_single_shopify_product_variant_by_id

Get a single Shopify product variant by id. Returns the full variant including id, product_id, title, price, sku, barcode, and inventory details. Required: id.

shopify_product_variants_bulk_update

Update an existing Shopify product variant by id. Returns the updated variant including id, product_id, title, price, sku, and inventory details. Required: id. Variant CRUD is deprecated as of REST API 2024-04; use the InventoryLevel resource to manage inventory quantities.

shopify_product_variants_bulk_delete

Delete a Shopify product variant by id. Returns an empty 204 response on success. Required: product_id, id. Deleting product variants is deprecated as of REST API 2024-04; use the GraphQL Admin API for new apps.

list_all_shopify_shop

Retrieve the Shopify shop's configuration — general business and store management settings and information about the store. Returns: id, name, email, domain, province, country, country_code, country_name, address1, address2, city, zip, phone, source, latitude, longitude, primary_locale, currency, customer_email, timezone, iana_timezone, shop_owner, money_format, money_with_currency_format,…

shopify_webhooks_bulk_delete

Delete a Shopify webhook subscription by id. Returns an empty 204 response on success. Required: id.

shopify_webhooks_bulk_update

Update a Shopify webhook subscription's attributes by id. Returns: id, address, topic, created_at, updated_at, format, fields, metafield_namespaces, api_version, private_metafield_namespaces, metafield_identifiers. Required: id.

shopify_webhooks_count

Count existing Shopify webhook subscriptions, optionally filtered by address or topic. Returns the count as an integer.

create_a_shopify_webhook

Create a new Shopify webhook subscription to receive notifications for shop events. Returns: id, address, topic, created_at, updated_at, format, fields, metafield_namespaces, api_version, private_metafield_namespaces, metafield_identifiers. Required: address, topic.

list_all_shopify_webhooks

List Shopify webhook subscriptions for a shop. Returns: id, address, topic, created_at, updated_at, format, fields, metafield_namespaces, api_version, private_metafield_namespaces, metafield_identifiers. Results can be filtered by address or topic.

list_all_shopify_locations

List Shopify locations for the store. Returns: id, name, address1, address2, city, zip, province, country, country_code, country_name, province_code, phone, active, legacy, created_at, updated_at, admin_graphql_api_id, localized_country_name, localized_province_name. Max 250 per page.

get_single_shopify_location_by_id

Get a single Shopify location by id. Returns: id, name, address1, address2, city, zip, province, country, country_code, country_name, province_code, phone, active, legacy, created_at, updated_at, admin_graphql_api_id, localized_country_name, localized_province_name. Required: id.

shopify_locations_list_inventory_levels

List inventory levels for a Shopify location. Returns: inventory_item_id, location_id, available, updated_at, admin_graphql_api_id. Required: location_id.

shopify_locations_count

Count all Shopify locations for the store. Returns: count.

list_all_shopify_inventory_items

List Shopify inventory items by their IDs. Returns each item's id, sku, cost, tracked, requires_shipping, created_at, updated_at, country_harmonized_system_codes, and admin_graphql_api_id. Required: ids (comma-separated, max 100). Max 250 per page.

get_single_shopify_inventory_item_by_id

Get a single Shopify inventory item by id. Returns the full inventory item including id, sku, cost, tracked, requires_shipping, created_at, updated_at, country_code_of_origin, harmonized_system_code, country_harmonized_system_codes, and admin_graphql_api_id. Required: id.

shopify_inventory_items_bulk_update

Update a Shopify inventory item by id, modifying writable fields such as SKU, cost, tracking, shipping, and country-of-origin attributes. Returns the updated inventory item including id, sku, cost, tracked, requires_shipping, country_code_of_origin, and harmonized_system_code. Required: id.

create_a_shopify_draft_order

Create a draft order in the Shopify store. The draft order is nested under a draft_order key in the request body with line_items (variant_id and quantity for existing products, or title and price for custom items), optional customer, addresses, order-level discount and shipping line. The draft can later be completed into an order or invoiced to the customer.

list_all_shopify_draft_orders

List draft orders in the Shopify store. Supports filtering by IDs, status (open, invoice_sent or completed) and update date range, plus since_id cursoring. Returns DraftOrder objects.

get_single_shopify_draft_order_by_id

Retrieve a single draft order by its ID. Returns the DraftOrder object including line items, customer, totals, status and the checkout invoice URL.

shopify_draft_orders_count

Count the draft orders in the Shopify store, optionally filtered by status, since_id and update date range. Returns a count.

update_a_shopify_draft_order_by_id

Update an existing draft order by its ID. Fields are nested under a draft_order key in the request body; only provided fields are changed. Only draft orders that have not been completed can be updated.

shopify_draft_orders_complete

Complete a draft order, converting it into an order. Set payment_pending to true to mark the resulting order as payment pending, or false (default) to mark it as paid. Returns the completed DraftOrder object including the created order_id. Required: draft_order_id.

shopify_draft_orders_send_invoice

Send a checkout invoice email for a draft order to the customer. The invoice is nested under a draft_order_invoice key in the request body; all fields are optional and default to the shop and customer emails with a standard message. Returns the sent DraftOrderInvoice object. Required: draft_order_id.

delete_a_shopify_draft_order_by_id

Delete a draft order by its ID. Returns an empty object on success.

shopify_draft_orders_bulk_delete

Delete a draft order, addressing it via the draft_order_id query parameter. Returns an empty object on success. Required: draft_order_id.

shopify_draft_orders_bulk_update

Update a draft order, addressing it via the draft_order_id query parameter. Fields are nested under a draft_order key in the request body; only provided fields are changed. Required: draft_order_id.

create_a_shopify_metafield

Create a metafield for a Shopify blog. Returns: id, namespace, key, value, description, owner_id, owner_resource, created_at, updated_at, type, admin_graphql_api_id. Required: blog_id, metafield.namespace, metafield.key, metafield.value, metafield.type.

list_all_shopify_metafields

List all metafields for a Shopify blog. Returns: id, namespace, key, value, description, owner_id, owner_resource, created_at, updated_at, type, admin_graphql_api_id. Required: blog_id.

get_single_shopify_metafield_by_id

Get a specific metafield for a Shopify blog by id. Returns: id, namespace, key, value, description, owner_id, owner_resource, created_at, updated_at, type, admin_graphql_api_id. Required: blog_id, id.

shopify_metafields_count

Get a count of all metafields belonging to a Shopify blog. Returns: count. Required: blog_id.

update_a_shopify_metafield_by_id

Update a metafield for a Shopify blog by id. Only value and type can be updated. Returns: id, namespace, key, value, description, owner_id, owner_resource, created_at, updated_at, type, admin_graphql_api_id. Required: blog_id, id, metafield.value, metafield.type.

delete_a_shopify_metafield_by_id

Delete a Shopify blog metafield by its id. Returns an empty 200 response on success. Required: blog_id, id. The REST Admin API is a legacy API; new public apps must use the GraphQL Admin API.

shopify_metafields_bulk_delete

Delete a Shopify blog metafield by its metafield_id. Returns an empty 200 response on success. Required: blog_id, metafield_id. The REST Admin API is a legacy API; new public apps must use the GraphQL Admin API.

shopify_metafields_bulk_update

Update a Shopify blog metafield. Only the `value` and `type` properties can be modified. Returns: id, namespace, key, value, description, owner_id, owner_resource, type, created_at, updated_at, admin_graphql_api_id. Required: blog_id, metafield_id.

create_a_shopify_fulfillment_service

Create a new fulfillment service in Shopify. Returns: id, name, email, service_name, handle, fulfillment_orders_opt_in, include_pending_stock, provider_id, location_id, callback_url, tracking_support, inventory_management, admin_graphql_api_id, requires_shipping_method. Required: name.

list_all_shopify_fulfillment_services

List all fulfillment services in Shopify. Returns: id, name, email, service_name, handle, fulfillment_orders_opt_in, include_pending_stock, provider_id, location_id, callback_url, tracking_support, inventory_management, admin_graphql_api_id, requires_shipping_method. Use scope to retrieve all services or only those created by the calling app.

get_single_shopify_fulfillment_service_by_id

Get a single Shopify fulfillment service by id. Returns: id, name, email, service_name, handle, fulfillment_orders_opt_in, include_pending_stock, provider_id, location_id, callback_url, tracking_support, inventory_management, admin_graphql_api_id, requires_shipping_method. Required: id.

update_a_shopify_fulfillment_service_by_id

Update an existing Shopify fulfillment service by id. Returns: id, name, email, service_name, handle, fulfillment_orders_opt_in, include_pending_stock, provider_id, location_id, callback_url, tracking_support, inventory_management, admin_graphql_api_id, requires_shipping_method. Required: id.

delete_a_shopify_fulfillment_service_by_id

Delete a Shopify fulfillment service by id. Returns an empty 200 response on success. Required: id.

shopify_fulfillment_services_bulk_delete

Delete a Shopify fulfillment service by fulfillment_service_id. Returns an empty 200 response on success. Required: fulfillment_service_id.

shopify_fulfillment_services_bulk_update

Update an existing Shopify fulfillment service. Returns the updated fulfillment service including id, name, handle, callback_url, inventory_management, tracking_support, location_id, and admin_graphql_api_id. Required: fulfillment_service_id.

create_a_shopify_page

Create a new Shopify page for static storefront content such as About us or Contact us pages. Returns: id, title, shop_id, handle, body_html, author, created_at, updated_at, published_at, template_suffix, admin_graphql_api_id, metafield. Required: title.

list_all_shopify_pages

List Shopify pages with optional filtering by creation date, update date, publication date, title, handle, and published status. Returns: id, title, shop_id, handle, body_html, author, created_at, updated_at, published_at, template_suffix, admin_graphql_api_id, metafield.

get_single_shopify_page_by_id

Get a single Shopify page by id. Returns: id, title, shop_id, handle, body_html, author, created_at, updated_at, published_at, template_suffix, admin_graphql_api_id, metafield. Required: id.

shopify_pages_count

Count Shopify pages with optional filtering by creation date, update date, publication date, title, and published status. Returns: count.

update_a_shopify_page_by_id

Update a Shopify page by id, modifying fields such as title, body_html, template_suffix, or published status. Returns: id, title, shop_id, handle, body_html, author, created_at, updated_at, published_at, template_suffix, admin_graphql_api_id, metafield. Required: id.

delete_a_shopify_page_by_id

Delete a Shopify page by id. Returns an empty 204 response on success. Required: id.

shopify_pages_bulk_delete

Delete a Shopify page by page_id. Returns an empty 204 response on success. Required: page_id.

shopify_pages_bulk_update

Update a Shopify page by page_id. Returns the updated page object including id, title, body_html, handle, author, created_at, updated_at, published_at, template_suffix, shop_id, metafield, and admin_graphql_api_id. Required: page_id.

list_all_shopify_events

List Shopify events generated by resources like orders, products, and articles. Returns: id, subject_id, created_at, subject_type, verb, arguments, body, message, author, description, path. Event data retained for 1 year and events may not appear in real-time.

get_single_shopify_event_by_id

Get a single Shopify event by id. Returns: id, subject_id, created_at, subject_type, verb, arguments, body, message, author, description, path. Required: id.

shopify_events_count

Count Shopify events, optionally filtered by creation date. Returns: count. Event data is retained for 1 year.

create_a_shopify_order_risk

Create an order risk for a Shopify order representing a fraud check result. Returns: id, order_id, checkout_id, source, score, recommendation, display, cause_cancel, message, merchant_message. Required: order_id. Deprecated as of API version 2024-04.

list_all_shopify_order_risks

List all order risks for a Shopify order. Returns: id, order_id, checkout_id, source, score, recommendation, display, cause_cancel, message, merchant_message. Required: order_id. Deprecated as of API version 2024-04.

get_single_shopify_order_risk_by_id

Get a single Shopify order risk by id. Returns: id, order_id, checkout_id, source, score, recommendation, display, cause_cancel, message, merchant_message. Required: order_id, id. Deprecated as of API version 2024-04.

update_a_shopify_order_risk_by_id

Update a Shopify order risk by id. Returns: id, order_id, checkout_id, source, score, recommendation, display, cause_cancel, message, merchant_message. Required: order_id, id. Cannot modify risks created by another app. Deprecated as of API version 2024-04.

delete_a_shopify_order_risk_by_id

Delete a Shopify order risk by id. Returns an empty 204 response on success. Required: order_id, id. Cannot delete risks created by another app. Deprecated as of API version 2024-04.

shopify_order_risks_bulk_delete

Delete a Shopify order risk for an order. This resource is deprecated as of API version 2024-04. Returns an empty 204 response on success. Required: order_id, risk_id. You cannot delete an order risk that was created by another application.

shopify_order_risks_bulk_update

Update a Shopify order risk for an order. This resource is deprecated as of API version 2024-04. Returns: id, order_id, checkout_id, source, score, recommendation, display, cause_cancel, message, merchant_message. Required: order_id, risk_id. You cannot modify an order risk that was created by another application.

list_all_shopify_product_listings

List Shopify product listings published to your sales channel app. Returns each listing with product_id, title, handle, body_html, vendor, product_type, tags, available, created_at, updated_at, published_at, variants, images, and options. Optional filters: collection_id, handle, product_ids, updated_at_min.

get_single_shopify_product_listing_by_id

Get a single Shopify product listing by id. Returns: product_id, body_html, created_at, handle, images, options, product_type, published_at, tags, title, updated_at, variants, vendor, available. Required: id.

shopify_product_listings_count

Get a count of Shopify product listings published to your app. Returns the count as an integer.

shopify_product_listings_list_product_ids

List product IDs of products that are published to your Shopify app. Returns an array of numeric product IDs.

create_a_shopify_product_listing

Create a product listing to publish a Shopify product to your app's sales channel. Returns: product_id, body_html, created_at, handle, images, options, product_type, published_at, tags, title, updated_at, variants, vendor, available. Required: id, product_listing (with product_id).

delete_a_shopify_product_listing_by_id

Delete a Shopify product listing to unpublish a product from your sales channel. Returns an empty 204 response on success. Required: id.

shopify_product_listings_bulk_delete

Delete a Shopify product listing to unpublish a product from your sales channel. Returns an empty 204 response on success. Required: product_listing_id.

create_a_shopify_price_rule

Create a Shopify price rule to define discounts as a percentage, fixed amount, or free shipping using entitlements and prerequisites. Returns: id, title, value_type, value, customer_selection, target_type, target_selection, allocation_method, allocation_limit, once_per_customer, usage_limit, starts_at, ends_at, created_at, updated_at, entitled_product_ids, entitled_variant_ids,…

list_all_shopify_price_rules

List Shopify price rules. Returns: id, title, value_type, value, customer_selection, target_type, target_selection, allocation_method, allocation_limit, once_per_customer, usage_limit, starts_at, ends_at, created_at, updated_at, entitled_product_ids, entitled_variant_ids, entitled_collection_ids, entitled_country_ids, prerequisite_product_ids, prerequisite_variant_ids,…

get_single_shopify_price_rule_by_id

Get a single Shopify price rule by id. Returns: id, title, value_type, value, customer_selection, target_type, target_selection, allocation_method, allocation_limit, once_per_customer, usage_limit, starts_at, ends_at, created_at, updated_at, entitled_product_ids, entitled_variant_ids, entitled_collection_ids, entitled_country_ids, prerequisite_product_ids, prerequisite_variant_ids,…

shopify_price_rules_count

Count all Shopify price rules on the store. Returns: count.

update_a_shopify_price_rule_by_id

Update an existing Shopify price rule by id. Returns the updated price rule including id, title, value_type, value, allocation_method, starts_at, and entitlement and prerequisite configuration. Required: id.

delete_a_shopify_price_rule_by_id

Delete a Shopify price rule by id. Returns an empty 204 response on success. Required: id.

shopify_price_rules_bulk_delete

Delete a Shopify price rule by price_rule_id. Returns an empty 204 response on success. Required: price_rule_id.

shopify_price_rules_bulk_update

Update an existing Shopify price rule by price_rule_id. Returns the updated price rule including id, title, value_type, value, starts_at, allocation_method, customer_selection, target_type, and created_at. Required: price_rule_id.

create_a_shopify_carrier_service

Create a new carrier service in Shopify that provides real-time shipping rates at checkout. Returns: id, name, active, service_discovery, carrier_service_type, admin_graphql_api_id, format, callback_url. Required: name and callback_url.

list_all_shopify_carrier_services

List carrier services in Shopify. Only services with active set to true are returned. Returns: id, name, active, service_discovery, carrier_service_type, admin_graphql_api_id, format, callback_url.

get_single_shopify_carrier_service_by_id

Get a single carrier service in Shopify by id. Returns: id, name, active, service_discovery, carrier_service_type, admin_graphql_api_id, format, callback_url. Required: id.

update_a_shopify_carrier_service_by_id

Update an existing carrier service in Shopify by id. Only the app that created the carrier service can update it. Returns: id, name, active, service_discovery, carrier_service_type, admin_graphql_api_id, format, callback_url. Required: id.

delete_a_shopify_carrier_service_by_id

Delete a carrier service in Shopify by id. Returns an empty 204 response on success. Required: id.

shopify_carrier_services_bulk_delete

Delete a Shopify carrier service by carrier_service_id. Returns an empty 204 response on success. Required: carrier_service_id.

shopify_carrier_services_bulk_update

Update an existing Shopify carrier service by carrier_service_id. Returns the updated carrier service including id, name, active, service_discovery, carrier_service_type, admin_graphql_api_id, format, and callback_url. Required: carrier_service_id.

list_all_shopify_disputes

List Shopify payment disputes ordered by initiated_at date with the most recent first. Returns: id, order_id, type, amount, currency, reason, network_reason_code, status, evidence_due_by, evidence_sent_on, finalized_on, initiated_at.

get_single_shopify_dispute_by_id

Get a single Shopify payment dispute by id. Returns: id, order_id, type, amount, currency, reason, network_reason_code, status, evidence_due_by, evidence_sent_on, finalized_on, initiated_at. Required: id.

list_all_shopify_assets

List Shopify theme assets for a theme. Returns: key, public_url, created_at, updated_at, content_type, size, checksum, theme_id. Returns metadata only; retrieve an asset individually for its content. Required: theme_id.

shopify_assets_upsert

Create or update a Shopify theme asset by key. The asset body accepts value (text content), attachment (base64 image), src (image URL), or source_key (to duplicate an existing asset). Returns: key, public_url, created_at, updated_at, content_type, size, checksum, theme_id, value, attachment. Required: theme_id.

delete_a_shopify_asset_by_id

Delete Shopify theme assets for a given theme. Returns: message. Required: theme_id. Deleting an asset required by the theme fails with an error.

shopify_assets_bulk_delete

Delete a specific Shopify theme asset by its key. Returns: message. Required: theme_id, asset_key. Asset key is limited to 100 characters; deleting an asset required by the theme fails with an error.

create_a_shopify_customer_address

Create a new address for a Shopify customer. Returns the created address with id, customer_id, first_name, last_name, address1, address2, city, province, country, zip, phone, name, province_code, country_code, country_name, and default. Required: customer_id.

list_all_shopify_customer_addresses

List all addresses for a Shopify customer. Returns each address with id, customer_id, first_name, last_name, address1, address2, city, province, country, zip, phone, name, province_code, country_code, country_name, and default. Required: customer_id.

get_single_shopify_customer_address_by_id

Get a single Shopify customer address by id. Returns the address with id, customer_id, first_name, last_name, address1, address2, city, province, country, zip, phone, name, province_code, country_code, country_name, and default. Required: customer_id, id.

update_a_shopify_customer_address_by_id

Update an existing Shopify customer address by id. Returns the updated address with id, customer_id, first_name, last_name, address1, address2, city, province, country, zip, phone, name, province_code, country_code, country_name, and default. Required: customer_id, id.

shopify_customer_addresses_set_default

Set a specific address as the default for a Shopify customer. Returns the address with id, customer_id, first_name, last_name, address1, address2, city, province, country, zip, phone, name, province_code, country_code, country_name, and default. Required: customer_id, addresse_id.

shopify_customer_addresses_bulk_set

Perform bulk operations on multiple Shopify customer addresses, such as batch-destroying addresses. Returns an empty response on success. Required: customer_id, address_ids, operation.

delete_a_shopify_customer_address_by_id

Delete a Shopify customer address by id. Returns an empty response on success. Required: customer_id, id.

shopify_customer_addresses_bulk_delete

Delete a Shopify customer address by address_id. Returns an empty response on success. Required: customer_id, address_id.

shopify_customer_addresses_bulk_update

Update an existing Shopify customer address by address_id. Returns the updated address including id, customer_id, address1, city, country, zip, phone, default, and name. Required: customer_id, address_id.

list_all_shopify_policies

List a shop's policies in Shopify, such as refund and privacy policies. Returns: body, created_at, updated_at, handle, title, url. Policies are read-only — only the shop owner can edit them from the Shopify admin.

create_a_shopify_article

Create an article in a Shopify blog. The article is nested under an article key in the request body and supports HTML body content, a summary, tags, an image and scheduled or immediate publishing. Required: blog_id, article.title.

list_all_shopify_articles

List articles in a Shopify blog. Supports filtering by creation, update and publication date ranges, published status, handle, tag and author, plus since_id cursoring. Returns Article objects. Required: blog_id.

get_single_shopify_article_by_id

Retrieve a single article from a Shopify blog by article ID. Required: blog_id and the article id.

shopify_articles_count

Count the articles in a Shopify blog, optionally filtered by creation, update and publication date ranges and published status. Returns a count. Required: blog_id.

shopify_articles_list_authors

List all article authors across every blog in the Shopify store. Returns an array of author names.

shopify_articles_list_tags

List all tags attached to articles across every blog in the Shopify store. Optionally limit the number of tags or restrict to popular tags.

shopify_articles_list_blog_tags

List all tags attached to articles in a specific Shopify blog. Optionally limit the number of tags or restrict to popular tags. Required: blog_id.

update_a_shopify_article_by_id

Update an existing article in a Shopify blog by article ID. Fields are nested under an article key in the request body; only provided fields are changed. Required: blog_id and the article id.

delete_a_shopify_article_by_id

Delete an article from a Shopify blog by article ID. Returns an empty object on success. Required: blog_id and the article id.

shopify_articles_bulk_delete

Delete an article from a Shopify blog, addressing both the blog and the article via query parameters. Returns an empty object on success. Required: blog_id, article_id.

shopify_articles_bulk_update

Update an article in a Shopify blog, addressing both the blog and the article via query parameters. Fields are nested under an article key in the request body; only provided fields are changed. Required: blog_id, article_id.

shopify_discount_codes_create_batch

Create up to 100 Shopify discount codes in a single asynchronous batch job for a price rule. Returns: id, price_rule_id, started_at, completed_at, created_at, updated_at, status, codes_count, imported_count, failed_count, logs. Required: price_rule_id. Only one creation job per shop at a time; up to 100 codes per batch.

create_a_shopify_discount_code

Create a single Shopify discount code for a price rule. Returns: id, price_rule_id, code, usage_count, created_at, updated_at, errors. Required: price_rule_id.

shopify_discount_codes_count

Retrieve a count of Shopify discount codes for a shop. Returns the total count as an integer.

shopify_discount_codes_lookup

Look up a Shopify discount code by its code name. Returns: id, price_rule_id, code, usage_count, created_at, updated_at, errors. Required: code. This endpoint is deprecated.

shopify_discount_codes_get_batch

Retrieve a Shopify discount code batch creation job by id. Returns: id, price_rule_id, started_at, completed_at, created_at, updated_at, status, codes_count, imported_count, failed_count, logs. Required: price_rule_id, id.

shopify_discount_codes_list_batch

List Shopify discount codes from a batch creation job. Returns: id, code, errors. Required: price_rule_id, batch_id. Successfully created codes have a populated id; failed codes include a populated errors object.

list_all_shopify_discount_codes

List Shopify discount codes for a price rule. Returns: id, price_rule_id, code, usage_count, created_at, updated_at. Required: price_rule_id.

get_single_shopify_discount_code_by_id

Get a single Shopify discount code by id. Returns: id, price_rule_id, code, usage_count, created_at, updated_at. Required: price_rule_id, id.

update_a_shopify_discount_code_by_id

Update an existing Shopify discount code for a price rule, typically to change its code string. Returns: id, price_rule_id, code, usage_count, created_at, updated_at. Required: price_rule_id, id.

delete_a_shopify_discount_code_by_id

Delete a Shopify discount code from a price rule. Returns an empty 204 response on success. Required: price_rule_id, id.

shopify_discount_codes_bulk_delete

Delete a single Shopify discount code that belongs to a price rule. Returns an empty 204 response on success. Required: price_rule_id, discount_code_id.

shopify_discount_codes_bulk_update

Update a single Shopify discount code under a price rule, typically changing its code value. Returns: id, price_rule_id, code, usage_count, created_at, updated_at. Required: price_rule_id, discount_code_id, discount_code.

create_a_shopify_comment

Create a comment on a Shopify blog article. Returns: id, body, body_html, author, email, status, article_id, blog_id, created_at, updated_at, ip, user_agent, published_at. Required: body, author, email. This REST endpoint is deprecated; use the GraphQL Admin API for new apps.

list_all_shopify_comments

List Shopify blog article comments, optionally filtered by a specific article or blog. Returns: id, body, body_html, author, email, status, article_id, blog_id, created_at, updated_at, ip, user_agent, published_at. Use article_id and blog_id together to scope results to a single article, or blog_id alone for all comments across a blog.

get_single_shopify_comment_by_id

Get a single Shopify blog comment by id. Returns the full comment object including id, body, body_html, author, email, status, article_id, blog_id, created_at, updated_at, ip, user_agent, and published_at. Required: id.

shopify_comments_count

Count all comments in a Shopify shop, with optional filtering by article or blog. Returns: count.

shopify_comments_approve

Approve a Shopify blog comment and publish it to the blog. Returns the comment object including id, body, author, email, status, published_at, article_id, and blog_id. Required: comment_id.

shopify_comments_not_spam

Mark a Shopify blog comment as not spam, restoring it from spam status to an unapproved or published state. Returns the comment object including id, body, body_html, author, email, status, article_id, blog_id, created_at, updated_at, published_at. Required: comment_id.

shopify_comments_remove

Remove a Shopify blog comment, setting its status to removed so it is no longer visible in the blog or Shopify admin. Returns the comment object including id, body, body_html, author, email, status, article_id, blog_id, created_at, updated_at, published_at. Required: comment_id.

shopify_comments_restore

Restore a previously removed Shopify blog comment to its prior visible state. Returns the comment object including id, body, body_html, author, email, status, article_id, blog_id, created_at, updated_at, published_at. Required: comment_id. This endpoint is deprecated.

shopify_comments_spam

Mark a Shopify blog comment as spam, removing it from the Shopify admin and the blog. Returns the comment object including id, body, body_html, author, email, status, article_id, blog_id, created_at, updated_at, published_at. Required: comment_id.

shopify_comments_bulk_update

Update a Shopify blog comment's body, author, email, and published_at date. Returns the updated comment object including id, body, body_html, author, email, status, article_id, blog_id, created_at, updated_at, published_at. Required: comment_id. This endpoint is deprecated.

shopify_inventory_levels_adjust

Adjust the available inventory quantity of a Shopify inventory item at a single location by a relative delta. Returns: inventory_item_id, location_id, available, updated_at, admin_graphql_api_id. Required: inventory_item_id, location_id, available_adjustment. Send negative values to subtract from the current available quantity; adjusting an untracked inventory item fails with an error.

shopify_inventory_levels_bulk_delete

Delete a Shopify inventory level by removing an inventory item from a specified location. Every inventory item must retain at least one inventory level, so connect the item to another location first if relocating. Returns an empty 204 response on success. Required: inventory_item_id, location_id.

shopify_inventory_levels_connect

Connect a Shopify inventory item to a location by creating a new inventory level at that location. Returns: inventory_item_id, location_id, available, updated_at, admin_graphql_api_id. Required: inventory_item_id, location_id. When a fulfillment service location is involved, set relocate_if_necessary to true or the connection will fail.

list_all_shopify_inventory_levels

List Shopify inventory levels by inventory item, location, or both. Returns: inventory_item_id, location_id, available, updated_at, admin_graphql_api_id. At least one of inventory_item_ids or location_ids must be supplied; omitting both returns a 422 error.

shopify_inventory_levels_set

Set the available quantity of a Shopify inventory item at a specific location. If the location is not connected, it will be connected automatically. Returns: inventory_item_id, location_id, available, updated_at, admin_graphql_api_id. Required: inventory_item_id, location_id, available.

create_a_shopify_country

Create a new Shopify country by providing a two-letter country code and an optional tax rate. Returns: id, name, code, tax_name, tax, provinces. The tax field is deprecated as of version 2020-10; custom tax values can no longer be set.

list_all_shopify_countries

List Shopify countries with their tax rates and provinces. Returns: id, name, code, tax_name, tax, provinces.

get_single_shopify_country_by_id

Get a single Shopify country by id, including its tax rate and provinces. Returns: id, name, code, tax_name, tax, provinces. Required: id.

shopify_countries_count

Get the total count of Shopify countries configured for the store. Returns the count as an integer. This endpoint is deprecated as of API version 2024-07.

update_a_shopify_country_by_id

Update an existing Shopify country, typically its tax rate. Returns: id, name, code, tax_name, tax, provinces. Required: id. The tax field is deprecated as of version 2020-10; custom tax values can no longer be updated.

delete_a_shopify_country_by_id

Delete a Shopify country by id. The REST Country API is deprecated as of version 2024-07. Returns an empty 204 response on success. Required: id.

shopify_countries_bulk_update

Update a Shopify country's tax settings and provinces by country_id. Returns: id, name, code, tax_name, tax, provinces. Required: country_id. The id and tax body fields are deprecated.

shopify_countries_bulk_delete

Delete a Shopify country by country_id. Returns an empty 204 response on success. Required: country_id.

list_all_shopify_payouts

List Shopify Payments payouts ordered by payout date, most recent first. Returns: id, status, date, currency, amount, summary. Filter by date, date range, status, or payout ID.

get_single_shopify_payout_by_id

Get a single Shopify Payments payout by id. Returns: id, status, date, currency, amount, summary. Required: id.

create_a_shopify_storefront_access_token

Create a new Shopify storefront access token for unauthenticated Storefront API access. Returns: id, access_token, access_scope, created_at, title, admin_graphql_api_id. Required: title. An app can have a maximum of 100 active storefront access tokens per shop, and the app must have unauthenticated access scopes granted.

list_all_shopify_storefront_access_tokens

List Shopify storefront access tokens that have been issued. Returns: id, access_token, access_scope, created_at, title, admin_graphql_api_id.

delete_a_shopify_storefront_access_token_by_id

Delete a Shopify storefront access token by id. Returns an empty 204 response on success. Required: id.

shopify_storefront_access_tokens_bulk_delete

Delete a Shopify storefront access token by storefront_access_token_id. Returns an empty 204 response on success. Required: storefront_access_token_id.

create_a_shopify_smart_collection

Create a new Shopify smart collection using rules that automatically group products. Returns the created smart collection including id, handle, title, rules, sort_order, published_at, disjunctive, and image. Required: smart_collection (with title). Title is mandatory and cannot be blank; a store can have up to 5000 smart collections by default.

list_all_shopify_smart_collections

List Shopify smart collections with optional filtering by handle, title, product_id, published status, or date range. Returns: id, handle, title, updated_at, body_html, published_at, sort_order, template_suffix, products_count, disjunctive, rules, published_scope, admin_graphql_api_id, image. Max 250 results per page; defaults to 50.

get_single_shopify_smart_collection_by_id

Get a single Shopify smart collection by its ID. Returns: id, handle, title, updated_at, body_html, published_at, sort_order, template_suffix, products_count, disjunctive, rules, published_scope, admin_graphql_api_id, image. Required: id.

shopify_smart_collections_count

Count the total number of Shopify smart collections, optionally filtered to those containing a specific product. Returns the count as an integer. Optional: product_id to count only collections that include the specified product.

update_a_shopify_smart_collection_by_id

Update an existing Shopify smart collection by id. Returns the updated collection including id, title, handle, sort_order, rules, published_at, disjunctive, and image. Required: id.

shopify_smart_collections_update_order

Update the product ordering of a Shopify smart collection — either set a new sort order type or manually reorder specific products. Returns the updated smart collection including id, handle, title, sort_order, rules, and updated_at. Required: smart_collection_id.

delete_a_shopify_smart_collection_by_id

Delete a Shopify smart collection by id. Returns an empty 204 response on success.

shopify_smart_collections_bulk_update

Update an existing Shopify smart collection, including its rules, sort order, body HTML, and image. Returns the updated collection with id, title, handle, body_html, sort_order, rules, disjunctive, published_scope, published_at, updated_at, template_suffix, products_count, admin_graphql_api_id, and image. Required: smart_collection_id.

shopify_smart_collections_bulk_delete

Delete a Shopify smart collection by its smart_collection_id. Returns an empty 204 response on success. Required: smart_collection_id.

create_a_shopify_collect

Add a product to a custom collection in Shopify by creating a collect that links them. Returns: id, collection_id, product_id, created_at, updated_at, position, sort_value. Required: product_id, collection_id. Creating a collect for a smart collection returns a 403 error.

list_all_shopify_collects

List Shopify collects that link products to custom collections. Returns: id, collection_id, product_id, created_at, updated_at, position, sort_value.

get_single_shopify_collect_by_id

Get a single Shopify collect by id. Returns: id, collection_id, product_id, created_at, updated_at, position, sort_value. Required: id.

shopify_collects_count

Count Shopify collects, optionally filtered by collection or product. Returns: count. The count endpoint returns only a numeric total — it does not include collect record fields.

delete_a_shopify_collect_by_id

Remove a product from a collection in Shopify by deleting the collect. Returns an empty response on success. Required: id.

shopify_collects_bulk_delete

Delete a Shopify collect by collect_id to remove a product from a custom collection. Returns an empty 204 response on success. Required: collect_id.

create_a_shopify_cancellation_request

Send a cancellation request to the fulfillment service of a Shopify fulfillment order. Returns the updated fulfillment order including id, request_status, status, supported_actions, destination, origin, and line_items. Required: fulfillment_order_id.

shopify_cancellation_requests_accept

Accept a cancellation request sent to a fulfillment service for a Shopify fulfillment order. Returns the updated fulfillment order including id, request_status, status, supported_actions, destination, origin, and line_items. Required: fulfillment_order_id.

shopify_cancellation_requests_reject

Reject a cancellation request sent to a fulfillment service for a Shopify fulfillment order. Returns the updated fulfillment order including id, request_status, status, supported_actions, destination, origin, and line_items. Required: fulfillment_order_id.

create_a_shopify_refund

Create a Shopify refund for an order. Use the calculate endpoint first to generate the transactions to submit. Returns: id, order_id, created_at, note, user_id, processed_at, duties, total_duties_set, return, refund_shipping_lines, restock, additional_fees, total_additional_fees_set, admin_graphql_api_id, order_adjustments, refund_line_items, transactions. Required: order_id.

shopify_refunds_calculate

Calculate a Shopify refund for an order based on specified line items and shipping. Use this before creating a refund to generate accurate suggested_refund transactions — change the transaction kind to refund when submitting the actual refund. Returns: duties, total_duties_set, return, refund_shipping_lines, shipping, additional_fees, total_additional_fees_set, refund_line_items, transactions,…

list_all_shopify_refunds

List Shopify refunds for a specific order. Returns each refund with id, order_id, created_at, note, processed_at, refund_line_items, transactions, and order_adjustments. Required: order_id.

get_single_shopify_refund_by_id

Get a single Shopify refund by id for a specific order. Returns: id, order_id, created_at, note, user_id, processed_at, duties, total_duties_set, return, refund_shipping_lines, restock, additional_fees, total_additional_fees_set, admin_graphql_api_id, order_adjustments, refund_line_items, refund_duties, transactions. Required: order_id, id.

create_a_shopify_transaction

Create a transaction for a Shopify order, such as a capture, void, authorization, or sale. Returns: id, order_id, kind, gateway, status, message, created_at, test, authorization, location_id, user_id, parent_id, processed_at, device_id, error_code, source_name, payment_details, receipt, currency_exchange_adjustment, amount, currency, payment_id, total_unsettled_set, manual_payment_gateway,…

list_all_shopify_transactions

List all transactions for a Shopify order. Returns each transaction with id, order_id, kind, gateway, status, amount, currency, payment_details, created_at. Required: order_id. Transactions on multi-currency orders are returned in presentment currency by default.

get_single_shopify_transaction_by_id

Get a specific transaction for a Shopify order by id. Returns: id, order_id, kind, gateway, status, message, created_at, test, authorization, location_id, user_id, parent_id, processed_at, device_id, error_code, source_name, payment_details, receipt, currency_exchange_adjustment, amount, currency, payment_id, total_unsettled_set, manual_payment_gateway, amount_rounding, admin_graphql_api_id,…

shopify_transactions_count

Get the count of transactions for a Shopify order. Returns the transaction count as an integer. Required: order_id.

create_a_shopify_fulfillment

Create a fulfillment for one or many fulfillment orders in Shopify. Returns the fulfillment object including id, order_id, status, created_at, service, updated_at, tracking_number, tracking_urls, line_items, and name. Required: line_items_by_fulfillment_order. Each fulfillment supports a single tracking number.

shopify_fulfillments_cancel

Cancel a Shopify fulfillment by id. Returns the cancelled fulfillment object including id, order_id, status, created_at, updated_at, name, service, and line_items. Required: fulfillment_id.

shopify_fulfillments_update_tracking

Update tracking information for a Shopify fulfillment by id. Returns the updated fulfillment object including id, order_id, status, tracking_number, tracking_company, tracking_url, line_items, and name. Required: fulfillment_id.

shopify_fulfillments_list_by_fulfillment_order

List Shopify fulfillments associated with a specific fulfillment order. Returns: id, order_id, status, created_at, updated_at, service, tracking_company, shipment_status, location_id, origin_address, line_items, tracking_number, tracking_numbers, tracking_url, tracking_urls, receipt, name, admin_graphql_api_id, variant_inventory_management. Required: fulfillment_order_id.

list_all_shopify_fulfillments

List Shopify fulfillments associated with a specific order. Returns: id, order_id, status, created_at, updated_at, service, tracking_company, shipment_status, location_id, origin_address, line_items, tracking_number, tracking_numbers, tracking_url, tracking_urls, receipt, name, admin_graphql_api_id, variant_inventory_management. Required: order_id.

get_single_shopify_fulfillment_by_id

Get a single Shopify fulfillment by id for a specific order. Returns: id, order_id, status, created_at, updated_at, service, tracking_company, shipment_status, location_id, origin_address, line_items, tracking_number, tracking_numbers, tracking_url, tracking_urls, receipt, name, admin_graphql_api_id, variant_inventory_management. Required: order_id, id.

shopify_fulfillments_count

Retrieve the total count of fulfillments associated with a specific Shopify order. Returns the count as an integer. Required: order_id.

list_all_shopify_access_scopes

List Shopify access scopes associated with the access token used for the request, reflecting the permissions a merchant has granted to the app. Returns: handle.g. read_products, write_orders, read_orders).

create_a_shopify_resource_feedback

Create Shopify resource feedback to report shop or resource status to the merchant. Returns: created_at, updated_at, resource_id, resource_type, resource_updated_at, messages, feedback_generated_at, state. Required: state, feedback_generated_at. Messages are required only when state is requires_action and disallowed when state is success; each message must be up to 100 characters ending with a…

list_all_shopify_resource_feedback

List all Shopify resource feedback records for a shop, returning zero or one objects. Returns: created_at, updated_at, resource_id, resource_type, resource_updated_at, messages, feedback_generated_at, state. IDs are not returned as part of this request; records are immutable except when a POST replaces them.

list_all_shopify_tender_transactions

List Shopify tender transactions, each representing money passing between the merchant and a customer (positive amount = customer paid, negative = refund). Returns: id, order_id, amount, currency, user_id, test, processed_at, remote_reference, payment_details, payment_method. Supports filtering by processed_at date range and ordering by processed_at. Defaults to 50 results per page, max 250.

list_all_shopify_balance_transactions

List all Shopify Payments balance transactions ordered by processing time, most recent first. Every movement of money in or out of the account is recorded as a balance transaction. Returns: id, type, test, payout_id, payout_status, currency, amount, fee, net, source_id, source_type, source_order_id, source_order_transaction_id, processed_at, adjustment_order_transactions, adjustment_reason.

create_a_shopify_product_resource_feedback

Create product resource feedback in Shopify to communicate product setup issues to merchants. Returns: created_at, updated_at, resource_id, resource_type, resource_updated_at, messages, feedback_generated_at, state. Required: product_id, state, resource_updated_at, feedback_generated_at. Only available for Sales Channel apps; sending new feedback replaces any previously sent feedback for the…

list_all_shopify_product_resource_feedback

List all product resource feedback records for a Shopify product. Returns: created_at, updated_at, resource_id, resource_type, resource_updated_at, messages, feedback_generated_at, state. Required: product_id. Only available for Sales Channel apps.

Why Truto

Why use Truto’s MCP server for Shopify

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

Unified APIs

Unified APIs for Shopify

Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.

Unified User Directory API

Users

The User object represents a User.

View Docs

Unified E-Commerce API

Customers

The customer represent a customer in E-Commerce.

View Docs

Orders

The order represent an order in E-Commerce.

View Docs

Products

The product represent a product in E-Commerce.

View Docs

How It Works

From zero to integrated

Go live with Shopify in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Shopify account

Use Truto’s frontend SDK to connect your customer’s Shopify account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Shopify

Truto’s Proxy API is a 1-to-1 mapping of the Shopify API. You call us, we call Shopify, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Shopify’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Shopify on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

How does authentication work for the Shopify integration?

Shopify uses OAuth 2.0 for custom and public apps. Truto manages the full OAuth handshake, token storage, and refresh cycle so your end users simply authorize their store through a consent screen — you never handle raw credentials.

Which Shopify data models can I access through Truto?

Through the Unified E-Commerce API you can access Customers, Orders, and Products. The Unified User Directory API provides access to Users (staff/collaborator accounts). Additional resources or custom tools can be built on request.

Does Truto handle Shopify's API rate limits?

Yes. Truto manages pagination and respects Shopify's rate-limit headers (both REST leaky-bucket and GraphQL cost-based throttling), automatically backing off and retrying so your integration doesn't hit 429 errors.

Can I access Shopify variant-level product data?

Product records returned through the Unified E-Commerce API include variant information such as SKUs, pricing, and option values, consistent with what Shopify's API exposes on the Product resource.

What if I need a Shopify endpoint that isn't covered by the current Unified APIs?

Truto supports building custom tools on request. If you need access to resources like inventory levels, discount codes, or fulfillment data beyond what the current Unified APIs cover, the Truto team can scope and ship a tailored integration for your use case.

Does the integration support both Shopify and Shopify Plus stores?

Yes. The OAuth-based connection works for any Shopify store regardless of plan tier. Shopify Plus stores may expose additional API scopes (e.g., B2B or multipass), which can be supported through custom tooling if needed.

Shopify

Get Shopify integrated into your app

Our team understands what it takes to make a Shopify integration successful. A short, crisp 30 minute call with folks who understand the problem.