Skip to main content

Shopify API Endpoints

Shopify API Endpoints

This article lists the Shopify Admin API endpoints the iPaaS.com Shopify integration calls. It is a reference for what the integration accesses on your store; you do not call these yourself.

Endpoint areas: Authentication / OAuth · Products · Product Options · Product Variants · Customers · Companies (B2B) · Product Categories / Collections · Inventory · Locations · Orders · Fulfillments · Gift Cards · Metafields · Webhooks · Channels. (Use the article's table of contents to jump to a section.)

All calls are made to your store's Shopify Admin API:

[Base URL] = https://{API Store}.myshopify.com
  • {API Store} is the store handle from your iPaaS.com subscription settings (for example, ipaas-dot-com).

  • {API Version} is the API Version configured in your subscription settings (for example, 2026-01).

The integration uses both the REST Admin API ([Base URL]/admin/api/{API Version}/<resource>.json) and the GraphQL Admin API. All GraphQL operations post to a single endpoint:

POST [Base URL]/admin/api/{API Version}/graphql.json

For GraphQL operations below, the Operation is the GraphQL query/mutation name and Key fields summarizes the main fields the integration reads or writes — the integration sends a full GraphQL document to the graphql.json endpoint above.

Authentication / OAuth

Exchange authorization code for access token (POST)

[Base URL]/admin/oauth/access_token

Used during installation of an app created after April 1, 2026 to convert the temporary authorization code into a permanent access token (sends Client Id, Client Secret, and the code).

Products

Get all products (GET)

[Base URL]/admin/api/{API Version}/products.json

Create a product (POST — GraphQL)

  • Operation: productCreate (with productSet / variant operations for the full product tree)

  • Key fields: id, title, descriptionHtml, status, vendor, tags, productType, handle, templateSuffix, publishedAt, options (id, name, optionValues), images, variants (sku, price, compareAtPrice, barcode, taxable, inventoryPolicy, inventoryItem.measurement.weight, unitCost, requiresShipping, selectedOptions), metafields

Get a product by SKU (POST — GraphQL)

  • Operation: productVariants(query: "sku:'{sku}'")

  • Key fields: product variant id (used to resolve the product behind a SKU)

Product Options

Create product options (POST — GraphQL)

  • Operation: productOptionsCreate

  • Key fields: productId, option name, option values; returns product options (id, name, position, optionValues)

Update product options (POST — GraphQL)

  • Operation: productOptionUpdate

  • Key fields: productId, option id + name, optionValuesToUpdate, optionValuesToAdd

Product Variants

Get a variant (POST — GraphQL)

  • Operation: productVariant(id)

  • Key fields: id, sku, price, barcode, title, position, taxable, inventoryPolicy, inventoryQuantity, inventoryItem (requiresShipping, tracked, measurement.weight, inventoryLevels), selectedOptions, image, product

Create variants in bulk (POST — GraphQL)

  • Operation: productVariantsBulkCreate (strategy DEFAULT / REMOVE_STANDALONE_VARIANT)

  • Key fields: productId, barcode, compareAtPrice, price, taxable, taxCode, inventoryPolicy, inventoryItem (sku, requiresShipping, tracked, cost, countryCodeOfOrigin, harmonizedSystemCode, measurement.weight), inventoryQuantities (availableQuantity, locationId), optionValues, mediaId/mediaSrc, metafields

Update variants in bulk (POST — GraphQL)

  • Operation: productVariantsBulkUpdate

  • Key fields: same as bulk create, keyed by variant id

Customers

Get all customers (GET)

[Base URL]/admin/api/{API Version}/customers.json

Get a customer (POST — GraphQL)

  • Operation: customer(id)

  • Key fields: id, firstName, lastName, email, phone, numberOfOrders, amountSpent, note, verifiedEmail, tags, defaultAddress, addresses, metafields, image

Create / update a customer (POST — GraphQL)

  • Operation: customerCreate / customerUpdate

  • Key fields: email, phone, firstName, lastName, tags, taxExempt, addresses (address1/2, city, country, provinceCode, zip, company, phone), smsMarketingConsent

Companies (B2B)

Get a company (POST — GraphQL)

  • Operation: company(id)

  • Key fields: id, name, note, externalId, totalSpent, contactsCount, defaultRole, createdAt, updatedAt, metafields

Create a company (POST — GraphQL)

  • Operation: companyCreate

  • Key fields: name, externalId, mainContact (customer email/firstName/lastName), contacts, contactRoles, locations (shippingAddress)

Update a company (POST — GraphQL)

  • Operation: companyUpdate

  • Key fields: companyId, name, note

Product Categories / Collections

Get a collection (POST — GraphQL)

  • Operation: collection(id)

  • Key fields: id, title, descriptionHtml, handle, templateSuffix, sortOrder, updatedAt, image, metafields

Create / update a collection (POST — GraphQL)

  • Operation: collectionCreate / collectionUpdate

  • Key fields: title, descriptionHtml, handle, templateSuffix

Delete a collection (POST — GraphQL)

  • Operation: collectionDelete

  • Key fields: collection id; returns deletedCollectionId

Custom collections (REST)

GET    [Base URL]/admin/api/{API Version}/custom_collections.json
GET    [Base URL]/admin/api/{API Version}/custom_collections/{id}.json
POST   [Base URL]/admin/api/{API Version}/custom_collections.json
PUT    [Base URL]/admin/api/{API Version}/custom_collections/{id}.json
DELETE [Base URL]/admin/api/{API Version}/custom_collections/{id}.json

Collects (product↔collection membership) (REST)

GET    [Base URL]/admin/api/{API Version}/collects.json
DELETE [Base URL]/admin/api/{API Version}/collects/{id}.json

Inventory

Get inventory levels (GET)

[Base URL]/admin/api/{API Version}/inventory_levels.json?inventory_item_ids={inventoryItemId}

Set inventory level (POST)

[Base URL]/admin/api/{API Version}/inventory_levels/set.json

Adjust inventory quantities (POST — GraphQL)

  • Operation: inventoryAdjustQuantities

  • Key fields: reason, name (available), changes (locationId, delta, inventoryItemId)

Activate / deactivate inventory tracking at a location (POST — GraphQL)

  • Operation: inventoryBulkToggleActivation

  • Key fields: inventoryItemId, inventoryItemUpdates (locationId, activate)

Get fulfillment services (GET)

[Base URL]/admin/api/{API Version}/fulfillment_services.json

Locations

Get all locations (GET)

[Base URL]/admin/api/{API Version}/locations.json

Get a location (GET)

[Base URL]/admin/api/{API Version}/locations/{id}.json

Find a location by name (POST — GraphQL)

  • Operation: locations(query: "name:{name}")

  • Key fields: id, name, isActive, address — used to match an existing location (including deactivated) before create, and to recover from a duplicate-name conflict (Update and Link collision handling)

Create / update a location (POST — GraphQL)

  • Operation: locationAdd / locationEdit

  • Key fields: name, address (address1/2, city, zip, provinceCode, countryCode, phone); returns id, name, isActive

Activate a location (POST — GraphQL)

  • Operation: locationActivate (uses the @idempotent directive — requires Shopify Admin API version 2026-04 or later)

  • Key fields: locationId; reactivates a deactivated location before an update is applied

Orders

Get all orders (GET)

[Base URL]/admin/api/{API Version}/orders.json

Get an order (GET)

[Base URL]/admin/api/{API Version}/orders/{id}.json

Create an order (POST)

[Base URL]/admin/api/{API Version}/orders.json

Update an order (PUT)

[Base URL]/admin/api/{API Version}/orders/{id}.json

Get transactions for an order (GET)

[Base URL]/admin/api/{API Version}/orders/{id}/transactions.json

Fulfillments

Get an order's fulfillment orders (GET)

[Base URL]/admin/api/{API Version}/orders/{id}/fulfillment_orders.json

Create a fulfillment (POST)

[Base URL]/admin/api/{API Version}/fulfillments.json

Gift Cards

Get all gift cards (GET)

[Base URL]/admin/api/{API Version}/gift_cards.json

Get a gift card (GET)

[Base URL]/admin/api/{API Version}/gift_cards/{id}.json

Create a gift card (POST)

[Base URL]/admin/api/{API Version}/gift_cards.json

Update a gift card (PUT)

[Base URL]/admin/api/{API Version}/gift_cards/{id}.json

Metafields

Get / create metafields (GET / POST)

GET  [Base URL]/admin/api/{API Version}/metafields.json?metafield[owner_id]={id}&metafield[owner_resource]={parentType}
POST [Base URL]/admin/api/{API Version}/metafields.json

Update / delete a metafield (PUT / DELETE)

PUT    [Base URL]/admin/api/{API Version}/{parentType}/{id}/metafields/{metafieldId}.json
DELETE [Base URL]/admin/api/{API Version}/metafields/{metafieldId}.json

Webhooks

Get / create webhooks (GET / POST)

GET  [Base URL]/admin/api/{API Version}/webhooks.json
POST [Base URL]/admin/api/{API Version}/webhooks.json

Used to register and read the Shopify event subscriptions (customer, order, product, collection, company, location, etc.) that drive inbound transfers.

Channels

Get sales channels (POST — GraphQL)

  • Operation: channels

  • Key fields: id, name — used to resolve publication/sales-channel targets when publishing products

Did this answer your question?