Secure Your Shopify Admin API Calls with an IP Allowlist

Shopify now lets you lock down Admin API tokens to specific IP addresses. Learn what changed, who it affects, and step‑by‑step how to configure the new IP allowlist to protect your app’s data.

Secure Your Shopify Admin API Calls with an IP Allowlist
8 sections

Shopify’s latest Developer Changelog introduces a powerful new security layer: an IP allowlist for Admin API access. If your app communicates with Shopify from static IP addresses, you can now restrict GraphQL and REST Admin API requests to those trusted ranges. Any request that originates from an IP outside the list is automatically rejected with a 403 error. In this post we break down the update, explain who should care, and walk you through the exact steps to enable and test the allowlist in your own app.

What’s New

The Settings page of every public or custom app now includes an “IP Allowlist” section. From the Shopify Partner Dashboard you can:

• Add single IP addresses or CIDR ranges that represent your server fleet.

• View recent traffic logs to see which IPs have already called your app.

• Toggle enforcement on or off. When enforcement is on, any request using your app’s access token from an IP outside the list receives a 403 response.

This change does not alter the shape of the Admin API itself—queries, mutations, and REST endpoints remain the same. The difference is purely in the network‑level gatekeeping that happens before Shopify processes the request.

Who Needs This Feature

*Developers* who host apps on dedicated servers, VPS, or on‑premise hardware will benefit most. If your outbound IPs are static, the allowlist becomes a simple yet effective way to stop credential leakage or token abuse.

*Merchants* who install private apps that connect to external services gain an extra safety net. Even if a token is inadvertently exposed, an attacker cannot use it unless they also control an allowed IP.

*Serverless* and dynamically‑scaled platforms (e.g., AWS Lambda, Vercel, Netlify) are currently out of scope because their egress IPs can change. Shopify notes that support for these environments is “coming soon,” so keep an eye on future releases.

How to Set Up the IP Allowlist

  • Open the Partner Dashboard – Navigate to Apps → Your app → Settings. The new “IP Allowlist” panel sits near the “App credentials” section.
  • Enter IPs or CIDR blocks – Type each trusted address on its own line. Examples:
  • 203.0.113.42

    198.51.100.0/24

  • Save – The dashboard validates the format instantly. Invalid entries will be highlighted with an error message.
  • Test before enforcing – Use the “Test traffic” button to simulate calls from the listed IPs and from a random IP. The UI shows which requests would be allowed or blocked.
  • Enable enforcement – Flip the “Enforce allowlist” toggle. From this point forward, Shopify will reject any request that carries your app’s access token but originates from an unlisted IP.
  • Sample Configuration for Automated Deployments

    If you prefer to keep the allowlist in source control, you can push the list via the Admin API’s App Settings endpoint (available to partner‑level tokens). A minimal JSON payload looks like this:

    {

    "ip_allowlist": [

    "203.0.113.42",

    "198.51.100.0/24"

    ]

    }

    Send a PATCH request to https://partners.shopify.com/api/apps/{app_id}/settings with the above body. Remember to replace {app_id} with your app’s numeric ID and include the required X-Shopify-Access-Token header.

    Testing and Enforcing in Production

    While the UI’s test button is handy, it’s good practice to script an end‑to‑end verification:

    curl -X POST https://your-store.myshopify.com/admin/api/2024-07/graphql.json \

    -H "X-Shopify-Access-Token: $ACCESS_TOKEN" \

    -H "Content-Type: application/json" \

    -d '{"query":"{ shop { name } }"}' \

    --resolve your-store.myshopify.com:443:203.0.113.42

    If the request succeeds (HTTP 200) you’re good to go. Change the --resolve IP to an address outside the allowlist and you should receive a 403, confirming enforcement works as expected.

    Best Practices & Considerations

  • Keep the list minimal – Only add IPs that absolutely need access. A shorter list reduces the attack surface.
  • Review CIDR ranges regularly – Cloud providers may reassign blocks; a stale range could unintentionally lock out your own servers.
  • Combine with token rotation – Even with an IP allowlist, rotate access tokens periodically and revoke any that are no longer needed.
  • Monitor 403 logs – Shopify logs every rejected request. Set up alerts so you’re aware of legitimate traffic that might be mis‑configured.
  • Plan for serverless migration – If you later move to a serverless platform, disable the allowlist or wait for Shopify’s upcoming support for dynamic IP ranges.
  • What Happens If You Forget to Enable Enforcement

    The allowlist UI lets you save IPs without turning enforcement on. In that mode, Shopify merely records traffic but does not block any calls. This safety net gives you time to validate the list without risking downtime for existing integrations.

    Conclusion & Call to Action

    Restricting Admin API access by IP is a straightforward, low‑maintenance way to tighten security for any Shopify app that talks to the platform from known servers. By adding your static IPs, testing the configuration, and then toggling enforcement, you gain protection against token theft and accidental exposure without changing a single line of application code.

    Ready to lock down your API calls? Head over to your Partner Dashboard, add the IP allowlist, run the quick test, and flip the enforcement switch today. If you run into any hiccups, drop a comment below or reach out on the Shopify Community forums – we’re happy to help you get secure, fast.

    Tags
    Sources

    Related Articles

    Secure Your Shopify App with Network Access Rules in shopify.app.toml

    Secure Your Shopify App with Network Access Rules in shopify.app.toml

    Learn how to declare allowed navigation hosts and sources in your shopify.app.toml file, eliminate external‑link warnings, and boost security for storefront and admin experiences.

    October 27, 20264 min
    Auto‑Sync Translations in Translate & Adapt: Up to 8 Languages Now Updated Weekly

    Auto‑Sync Translations in Translate & Adapt: Up to 8 Languages Now Updated Weekly

    Shopify’s Translate & Adapt now auto‑syncs new content for up to eight languages, keeping storefronts fresh without manual re‑translation. Learn who’s affected, how to enable it, and best practices for merchants and developers.

    October 27, 20263 min
    Earn Extra Commission with Promoted Placements Beta: Shop Campaigns Now Included

    Earn Extra Commission with Promoted Placements Beta: Shop Campaigns Now Included

    Shopify’s Promoted Placements beta now supports Shop Campaigns, automatically adding merchant‑funded commissions to the catalog API response. Learn what changed, who’s affected, and how to capture the new commission data in your integrations.

    October 27, 20263 min
    Unlock External Brand Products with the New Catalog API sources Parameter (Beta)

    Unlock External Brand Products with the New Catalog API sources Parameter (Beta)

    Learn how the Catalog API beta now lets you search for products from brands that don’t sell on Shopify. We break down what changed, who it affects, and show you exactly how to add the new sources parameter to your calls.

    October 27, 20263 min