Import IP Addresses

Allow these addresses so mfr.io can read your storefront.

Production

  • 52.4.134.197
  • 100.29.25.31

Allow all of them. Which address a given import uses depends on where it runs, so allowing only one will work until it does not.

Other addresses you may see (staging)

These are not used by routine imports of a store that is already connected — they belong to the environment we use while a store is first being connected and tested. But if one of them is what your access log shows, that is the environment your store is being connected against, and allowing it is what will unblock the import.

  • 98.95.82.88
  • 3.229.164.69

Not sure which applies to you? Your mfr.io contact will know, and can confirm before you change anything.

Why you may need to do this

If you host your own store — Magento, WooCommerce, or a WordPress content site — it very likely runs rate protection such as fail2ban, mod_evasive, or a firewall rule that blocks an IP address after it makes a certain number of requests in a short window. That protection is doing its job. It just cannot tell our importer apart from a scraper.

When it blocks us, the symptom is one-sided and easy to misdiagnose: your site is up, fast, and fine for every visitor, while mfr.io reports that it cannot connect. Nothing is wrong with your store. Our address is simply on a block list.

How to recognise our traffic

Every request we make identifies itself in your access log:

  • mfr-catalog-import/1.0 (+https://mfr.io/docs/import-egress)
  • mfr-content-import/1.0 (+https://mfr.io/docs/import-egress)

What we request

  • Read-only requests. We never write, and never sign in as a customer or an administrator.
  • Public pages, your public GraphQL or REST endpoint, robots.txt, and your XML sitemap — plus the product images and documents those pages link to.
  • At most four requests per second, and slower on request. We can set a per-store pace if four is still too many for your server.
  • On a schedule, not continuously. An import runs, finishes, and stops.

Sending this to your host

If someone else manages your server, this is the whole request. It lists every address you need for this site, so your host only has to make the change once:

Please allow these IP addresses through the server's rate limiting and firewall: 52.4.134.197 100.29.25.31 They belong to mfr.io, which imports our public catalog and content. The requests are read-only, identify themselves as "mfr-catalog-import" and "mfr-content-import", and are limited to a few per second. They are currently being refused at the TCP level while the site stays up for everyone else, which usually means fail2ban or a similar rule has banned them. Details: https://mfr.io/docs/import-egress

If your access log shows one of the staging addresses listed above, send this one instead. It adds that address and still covers everything else, so your host only has to make the change once:

Please allow these IP addresses through the server's rate limiting and firewall: 98.95.82.88 3.229.164.69 52.4.134.197 100.29.25.31 They belong to mfr.io, which imports our public catalog and content. The requests are read-only, identify themselves as "mfr-catalog-import" and "mfr-content-import", and are limited to a few per second. They are currently being refused at the TCP level while the site stays up for everyone else, which usually means fail2ban or a similar rule has banned them. Details: https://mfr.io/docs/import-egress

These addresses are stable

They do not rotate, and they survive our own infrastructure changes. You should only ever have to do this once. If they ever do need to change, we will update this page before the change takes effect.

Questions about an import? Contact your mfr.io representative, or reply to the notification that brought you here.