MyLeadFox

FAQ

Questions, answered properly

Including the ones where the honest answer is no. A vague answer here costs more than a lost click: it costs a refund and a bad review.

42 questions

General

About the product

Can I get the data into Google Sheets instead of a CSV?

Yes. Any export can be sent straight to a Google Sheet rather than downloaded as a file, and the same rows remain available as a CSV as well, so you are never locked into one or the other. Sheets exports run in the background: once you start one you can close the tab and it still finishes. Sending a past export from your history to Sheets costs nothing, because those rows were charged when you first exported them.

Where does the data come from?

Shops are found from public sources, then each storefront is visited directly to read what it publishes: platform, catalogue size, languages, shipping terms, technology and contact routes. Performance figures come from Google PageSpeed Insights and the Chrome UX Report. Nothing is bought from a third-party list broker. Our data and compliance page sets out the full detail.

How current is the data?

Shop records are refreshed continuously rather than in one periodic dump, and every row carries the timestamp it was last fetched so you can filter on freshness yourself. Contact details are deliberately fetched at the moment you request them, because that is the field that decays fastest.

How many shops are actually in the database?

13,139,116 shops are searchable: the same number you can filter in the grid, export to CSV and pull through the API. Roughly 7.62M of those carry measured Lighthouse performance scores. Coverage is reported per field rather than averaged into a single headline claim.

What does "undefined" mean on a field, and how is it different from zero?

They are deliberately distinct. Zero means we checked and the real value is zero. Undefined means we have not measured that field for that shop yet. Collapsing the two would let you filter for "shops with no products" and silently receive shops we simply had not scanned, so we keep them separate throughout.

Is this legal to use for outreach?

The data is gathered from publicly published sources, and business contact details are processed as legitimate interest under GDPR. You remain the data controller for how you use it, which means honouring opt-outs and following the marketing law of the country you are contacting. Our data and compliance page sets out the specifics.

Can I try it before paying?

Yes, two ways. The live demo grid is free and needs no account: the real database, every filter, the first page of every search. For the full product, a 24-hour pass is $5 (72 hours for $9) and includes exports, contact enrichment and the API. It continues on the plan you choose unless you cancel before it ends, and the pass fee comes off your first payment.

Do you only cover Shopify shops?

Shopify is the deepest coverage, but the platform field distinguishes several e-commerce platforms and the technology fingerprint is captured regardless of platform. You can filter to one platform or search across all of them.

Can my team share one account?

Pro supports team seats. Members search under the account owner's pooled allowance, so you manage one balance rather than reconciling several. Each member keeps their own login.

Data

Coverage and freshness

How often is a shop record refreshed?

Records are refreshed continuously rather than in one periodic dump, so different shops were last checked at different times. Every row carries the timestamp of its last fetch, which means you can filter to recently verified shops yourself instead of trusting a blanket freshness claim.

Why do some shops have performance scores and others do not?

Performance testing is expensive to run at this scale, so it is applied progressively across the database rather than to every shop at once. Roughly 7.62M shops currently carry measured Lighthouse scores. Shops without them are marked as not measured, never as zero.

What happens if a shop goes offline?

Shop status classifies every storefront as live, down, password-locked or coming soon, and a separate status-reason field records why a failing shop failed, from a DNS failure to a refused connection to a 404. A tri-state active flag sits alongside them. You can filter on all three, which matters because a dead domain looks identical to a live one in a plain list.

Can I request a shop that is missing?

Yes: contact support with the domain. Coverage comes from continuous discovery, so a shop may be missing because it is very new or because its storefront blocks automated access.

Do you sell or share the data you collect about my searches?

No. Your searches, saved searches and exports are yours. We do not sell customer usage data, and we do not use one customer's activity to build lists for another.

API

Developer questions

Which address do I call?

https://go.myleadfox.com/api/v1 followed by the endpoint: /search, /rows, /lookup or /enrich. For example https://go.myleadfox.com/api/v1/search. myleadfox.com and www.myleadfox.com are the website: they do not serve the API, and a call sent there gets a web page back, not JSON.

Is it GET or POST?

Always POST, with the parameters in a JSON body and the header Content-Type: application/json. A GET to an API address returns 405 Method Not Allowed. Parameters put in the URL are not read.

How do I authenticate?

Send your key as a bearer token: Authorization: Bearer mlf_live_…. An X-API-Key: mlf_live_… header is accepted instead, for tools where a custom header is easier to set. Any other Authorization scheme, such as Basic, counts as no key at all (401 missing_api_key). The key, your plan and your account are re-checked on every call, so a revoked key or a lapsed plan stops working on the very next request.

Can I call it from Zapier, Make, n8n or my own server?

It is an ordinary HTTPS API on go.myleadfox.com (port 443): every call is a POST with two headers and a JSON body. In an automation tool, use its generic HTTP request module with the settings shown under "Your first call" on the API documentation page. If a call ever gets a challenge page or any other reply that is not JSON, contact support and include the Ray ID shown on that page so we can look it up.

Am I ever charged for an error?

No. A refused call (any 4xx, including 402, 403 and 404), a failure on our side (500) and a rate-limit refusal (429) cost no credits. When a /search count fails on our side, the search credit already taken is refunded. A /rows page past the last one (404 page_out_of_range) is free too.

Do I need to allowlist anything?

No. Nothing needs to be added on our side before you call the API. Each key can optionally be locked to your own IP addresses (the IP allowlist on the API Keys page); it is off by default. If you turn it on, calls from any other address are refused with 403 ip_not_allowed.

Are the API balances separate from the app?

There is no separate API allowance: the API spends the same balances as the app. There are three, and they are separate from each other: search credits (spent by /search), download credits, also called leads (spent by /rows and /lookup), and enrichment credits (spent by /enrich). Every successful call reports all three in the credits block of its JSON body.

Can I get a CSV from the API?

No. The API returns JSON only; a format field is ignored. Your tool or a short script turns the rows array into spreadsheet rows (the columns array gives the column order). Every /rows and /lookup call is also kept in your Download History in the app, as JSON, for 100 days, and can be downloaded again there at no cost (API entries cannot be sent to Google Sheets). For a CSV file or Google Sheets, use the export in the app itself.

Does my lifetime deal include the API?

Yes. A lifetime deal account can use the API with one key at a time (other plans can hold up to three).

Is the API included with a pass and with Starter and Pro?

Yes. Starter and Pro include the API at no extra cost, and so does a 24-hour or 72-hour pass while it runs: calls spend the pass allowance. A key on an account with no plan or pass running is refused with 402 no_active_plan.

What are the rate limits?

60 units per minute per key, and at most 2 calls in flight per key, on every plan. Most calls use 1 unit. A call with global text search uses more: 15 for /search, 8 for a /rows page, 15 for a /rows page with include_total. Going over returns 429 rate_limited with a Retry-After header saying how many seconds to wait.

Does the API expose the whole filter surface, or a reduced subset?

The whole surface: five filter kinds (text, numeric, dropdown, tags, date), and/or connectors, per-filter negation with not: true, and/or/not inside a regex filter, global text search, and sorting on up to eight keys. Anything you can build in the app's grid you can send in a request, and any grid link's id works as a search_id.

How does paging work?

Pages are numbered and always 100 rows: page 1 is rows 1 to 100, page 2 is rows 101 to 200. Any page can be asked for directly. limit (1 to 100) caps how many rows of that page come back and you are charged only for rows delivered. Keep asking for the next page until you reach the last one; a page past the end returns 404 page_out_of_range, free, with the real page count.

How fast is it?

Filtered calls are fast, including deep pages. A global text search is slower on its first call and quicker on the pages after it. Enrichment checks each domain live while the call runs and can take over a minute for 100 domains: raise your tool's timeout to its maximum, or send smaller batches.

What happens if my balance runs out mid-page?

On /rows you receive as many rows as your download balance covers and truncated_by_credits comes back true. That flag is also true on a short last page that came back complete, so read credits.download_remaining too: if it is 0 (or null) the page may be cut — top up and ask for the same page again, which delivers and charges the whole page again, including the rows you already received; if it is above 0, nothing is missing and that was the last page, so do not ask for it again. On /lookup the domains past your balance come back in withheld_for_credits, free. On /enrich the domains past your balance come back as skipped_no_credit, free. Top up and ask again for what was left.

A call timed out on my side. Is it safe to retry?

There is no idempotency key: a retry that reaches the server is a new call and is charged again. For /rows and /lookup, first look in Download History in the app: if the call is listed (match it by time and leads charged), it was delivered and charged, and you can download that response again there for free instead of paying twice. For /enrich: Resending a batch never charges twice for one domain: every domain the first call finished as enriched or no_contact_found comes back as already, free — even if you never saw the first response. Domains that came back error, or that were cut off when the call died, were refunded; on a resend they are checked again and charged only if contacts are found. A JSON refusal from the API (4xx, 429) and a JSON 500 cost nothing, so retrying those is always free. A reply that is not JSON (a gateway error or challenge page) did not come from the API and may follow a call that was delivered and charged: never retry it blindly — check Download History first, exactly as after a timeout.

Compliance

Legal and data protection

Is this GDPR compliant?

The data is business information gathered from publicly published sources, processed on a legitimate-interest basis. When you export or enrich contacts you become a data controller for that processing, which means you are responsible for honouring opt-out requests and for the marketing law of the country you contact. Our data and compliance page sets out the detail.

What if someone asks to be removed?

Forward the request to support and the record will be suppressed. If you have already exported the contact you must also remove it from your own systems: an export is a copy we cannot reach.

Can I use this for cold email?

Business-to-business outreach to published business addresses is permitted in most jurisdictions, but the rules vary and some countries require prior consent even for B2B. Check the law where your recipients are, keep an opt-out in every message, and honour it immediately.

Billing

Plans and metering

What is a pass, and what happens when it ends?

A pass is the full product for a short time: 24 hours for $5 (500 leads, 100 searches, 10 enrichments) or 72 hours for $9 (2,000 leads, 200 searches, 20 enrichments). You pick the plan it continues on when you buy it. When the pass ends, that plan starts automatically and your first payment has the pass fee taken off, charged about an hour after the pass ends. Whatever you have not used carries into the plan. Cancel before the pass ends and you pay nothing more. Pass fees are non-refundable.

What exactly counts as one search?

One search is one page of results returned from the shop database. Applying filters, sorting, or refining your criteria does not cost anything: only fetching a page of matching shops does. Paging through results costs one search per page, so a 5-page review of your matches costs 5 searches.

How are CSV exports billed: per file or per row?

Per row, which we call a lead, whether you download a CSV or send the rows to Google Sheets. If you export 50 shops, that costs 50 leads from your allowance, not a rounded-up page. Your remaining balance is always spent rather than stranded: if you have 50 leads left and export a 100-row selection, you receive the first 50 rows and are charged 50, with a warning shown before you confirm.

Do unused searches or leads roll over?

Leads and enrichment credits do. On a paid plan whatever you have not spent is carried into the next month and added to that month's allowance. Searches are the exception: they reset to your plan's monthly figure rather than accumulating. A pass is different: its allowance covers the whole pass, and what you have not used carries into your plan when the pass converts. Anything you have already exported stays in your history for 100 days and can be downloaded again, or sent to Google Sheets again, at no further cost. Credits you purchase separately never expire.

What is the difference between paying monthly and yearly?

The allowances are identical and reset monthly either way. Yearly is billed once at $199 for Starter or $599 for Pro, which works out to roughly $16.58 and $49.92 per month respectively: a substantial discount for committing up front.

Can I change or cancel my plan?

Yes. You can upgrade, downgrade or cancel at any time from your subscription page. Cancelling stops the next renewal and you keep access until the end of the period you have already paid for. After that, the account asks you to choose a plan before you can search again: your plan's allowance ends with it, and credits you bought separately stay on the account. There is no cancellation fee and no minimum term.

Do I need a card to start?

To use the product, yes: every account starts with a pass or a plan, paid by card through Stripe. The live demo grid on this site needs no account and no card, so you can see the data first. A pass continues on the plan you picked unless you cancel before it ends, and you can cancel from your subscription page in a couple of clicks.

Is the API included, or is it a paid add-on?

It is included on both Starter and Pro at no extra cost, drawing from the same allowance as the web app: the same filters, the same 100 fields and the same result set as the interface. A pass includes the API too.

What happens when I run out of searches or leads mid-month?

The action stops rather than silently billing you more. Lead credits and enrichment credits can both be topped up separately, at any time, without changing your plan — and what you buy does not expire. You can also upgrade to raise your allowance immediately, or wait for the monthly reset. Searches are included with your plan and are not sold separately.

The compliance answers are a plain-language summary, not legal advice. If compliance is critical to your use, take your own advice on the jurisdictions you operate in.

Still have a question?

Email us and a person will answer. If the answer is no, we will tell you that instead of scheduling a call.