Features
Everything the product actually does
No roadmap items, no aspirational claims. Every field named on this page exists in the live schema today, and every capability is one you can use on the free plan.
Shop search
Filter 8.92 million shops down to the few hundred that matter
Most prospecting tools give you a company list and leave the qualifying to you. This starts from the opposite end: every shop is already described across 98 fields, so you filter on the things that actually predict a fit: the platform they run, the apps they installed, whether they ship internationally, how fast their storefront is.

Filter on any of 98 fields
Combine platform, country, currency, domain age, product count, language, tech stack, social presence and performance in a single query. Filters compose, so narrowing never means starting over.
Live result counts before you spend
Every filter shows how many shops match as you build the query. You see the size of the list before you commit a search, so you are never paying to discover that a segment is empty.
Sort by what indicates buying signal
Order by domain age to find established shops, by product count to size the catalogue, or by mobile performance score to find the ones with a problem you can solve.
Every search gets a link
Save a search and it gets its own link. Return to the exact same grid later, or send it to a colleague, and your download history links each export back to the search that produced it.
Seven controls, five sets of operators
Text fields take contains, starts with, ends with, is exactly and a regular expression. Numbers take at least, at most, between and equals. Tag fields take has any, has all and has none. Every field also answers is empty and is not empty, which is how you separate a measured zero from something never measured.
And, or and not, without the ordering trap
Each filter carries its own connector, and the whole set resolves by one rule rather than by the order you happened to build them in. Rearranging your filters cannot silently change your result, which is the failure mode of every builder that resolves left to right.
Several patterns inside a single filter
One text field can hold more than one pattern, each with its own and, or or not. A rule that would otherwise need four separate filters fits in the one field it is actually about.
Example fields: all 98 are listed below, and each links to what it holds
Go deeper
- Every filter control and operator →Exactly what each kind of field can be asked, in the words the interface uses.
- How and, or and not resolve →The one rule the whole filter set resolves by, and why position does not matter.
- Pattern matching with regex →Several patterns in one field, each with its own connector.
- Build your first filter →The four steps, start to finished result set.
- Save and share a search →Keep a search, load it again, or send it to someone.
Shop intelligence
The technical detail that tells you whether a shop is worth approaching
A shop name and a URL is not qualification. What tells you whether to spend an hour on an account is the stack it runs, the apps it already pays for, whether it is measurably slow, and whether its SEO is leaving money on the table.

Full technology fingerprint
Theme, installed apps, tracking pixels, video players and other detected technology. Find every shop already paying for a competing tool, or every shop missing the category of tool you sell.
Real performance data, not estimates
Lighthouse mobile and desktop scores plus Core Web Vitals field data from the Chrome UX Report: LCP, INP, CLS, TTFB. Nearly a million shops carry measured performance scores.
SEO completeness scoring
Title and meta description presence and length, canonical URL, robots directives, JSON-LD structured data types, Open Graph coverage and H1 structure: reduced to a single completeness percentage you can filter on.
Shipping and market reach
Whether a shop ships internationally, how many countries it reaches, its free-shipping threshold and its shipping partners.
Lab scores and real-user data, kept apart
Lighthouse runs in a controlled lab; the Chrome UX Report is what actual visitors experienced. They answer different questions and are never averaged together, so you can ask for a shop that scores badly in the lab, or one whose real users are suffering, and mean two different things.
Undefined is not zero, anywhere
A field we have never measured stays undefined rather than being written down as zero. It is the difference between finding shops with no products and finding shops we simply have not scanned yet, and it holds throughout the data, the exports and the API.
Example fields: all 98 are listed below, and each links to what it holds
Go deeper
- What every column means →All 98 fields with the same description the grid shows when you hover a header.
- Lab performance fields →The Lighthouse scores, mobile and desktop, and what each one measures.
- Real-user performance fields →Chrome UX Report data: LCP, INP, CLS and TTFB as visitors actually experienced them.
- SEO and metadata fields →The seventeen fields behind the completeness score.
Visualize
See the shape of a segment before you spend anything on it
Every other tool makes you export a list to find out what is in it. Visualize charts whatever your filters currently return, in place, across sixteen breakdowns at once. You read the segment first, narrow it by clicking the part you care about, and only then pay to take it away.

Sixteen breakdowns, drawn together
Platform, country, currency, language, technology, catalogue size, shipping, social presence, HTTP status and both lab and real-user performance. You do not pick a dimension and wait for a chart. They are all drawn from the same result set at once, so you see the whole shape rather than the one slice you thought to ask for.
Click a slice to filter by it
Clicking any slice or bar applies it as a filter on the grid. That is what turns a report into a way of exploring: you notice that one country is over-represented, click it, and the charts redraw for that country alone.
It always describes your current filter
The charts count your results, never the whole database. Narrow the grid and every chart follows, so the numbers you read are the numbers you would export.
Take one chart, or a board you choose
Every chart has its own PNG button for a single figure on a slide. Download all charts opens a picker instead: tick the ones you want, watch the preview build, and take the selection as one image at twice normal resolution so it stays sharp in a deck.
Share it without downloading first
A chart or a chosen board can go straight to LinkedIn, and a copy-as-markdown action puts the numbers behind the charts on your clipboard as text, ready to paste into a post or hand to an assistant to write one.
Missing values are left out, not counted as zero
A shop never measured on a dimension is excluded from that chart rather than dragging its average toward zero. It is the difference between a chart you can quote in a client meeting and one that quietly misleads you.
Contact enrichment
Verified contact details, pulled on demand
Contact data goes stale faster than any other field, so it is fetched when you ask for it rather than served from a cache of unknown age. You spend a credit and get a result checked at that moment.

Email discovery and verification
Addresses published by the shop plus discovered contacts, with the mailbox provider and category identified so you know whether you are writing to a real inbox or a catch-all.
Deliverability signals up front
Primary MX host and mailbox category are exposed before you send, so you can drop the addresses that would damage your sender reputation.
Phone and contact routes
Published phone numbers and contact-page URLs where the shop makes them available.
Two credit pools, drained in the right order
Your monthly plan allowance is spent first, and purchased credits are kept in reserve. Refunds reverse against the purchased pool last, so credits you paid for are never quietly consumed first.
Nine columns per contact, each one readable
A contact comes back as the shop domain, full name, job title, company, email address, that address’s verification status, LinkedIn profile, location and seniority. The status sits beside the address it describes rather than behind a summary, so you can see which contacts are safe to mail before you write anything.
Your filters carry through, and the contacts filter too
Enrichment runs against the set your grid filters currently return, never against everything you have searched. The contacts themselves then filter down to the addresses that actually verified, which tests the verification status rather than merely whether a field is filled in.
The five best per shop, ranked not sampled
You get the five strongest contacts for a shop by default, ordered rather than picked at random, with the full set available for a domain when five is not enough.
Reading your results back is free
Enriched contacts download as a CSV or go to a Google Sheet at no cost, however many times you do it. A shop already enriched is marked as one you have and is not chargeable again, so re-running a page cannot quietly re-bill you.
Example fields: all 98 are listed below, and each links to what it holds
Go deeper
- Enrich contacts, step by step →One row, a whole page, what comes back, and how to narrow it afterwards.
- The contact fields on a shop →What the shop itself publishes, before any enrichment credit is spent.
- How enrichments are metered →The three meters, and which pool is spent first.
- What is charged and what is not →Why re-reading your own enriched contacts never costs anything.
Exports & downloads
Export what you selected, billed for exactly what you received
Export pricing is where most tools quietly overcharge, rounding a 30-row export up to a 100-row page. Downloads here are denominated in leads: one row, one lead. Take them as a CSV or send them straight to Google Sheets.

Billed per row, never rounded up
Export 50 shops and you are charged 50 leads. The reservation made when you start is reconciled against what was actually delivered, and the difference is refunded automatically.
CSV download or straight to Google Sheets
Send any export to a Google Sheet instead of downloading a file, and the same rows are still available as a CSV whenever you want them. Sheets exports run in the background, so closing the tab does not cancel one. A large export finishes whether you wait for it or not.
Export history kept for 100 days
Every export stays in your history for 100 days. Downloading one again costs nothing, and sending a past export to Google Sheets costs nothing either, because those rows were already paid for the first time.
Your last credits are spendable
With 50 leads left and a 100-row selection, you get the first 50 rows and pay 50, with the warning shown before you confirm. A partial balance is never stranded as unusable.
Choose your columns
Export every field or only the ones your CRM accepts. The CSV matches the view you built rather than a fixed template.
Every file traces back to the search that made it
Your download history records which search produced each export, so a file you find three weeks later is not an orphan. Rename anything you will want to find again.
Go deeper
- Export what you found →Filter, choose columns, read the cost before confirming, collect the file.
- Export to Google Sheets →Sharing the sheet correctly is the step people miss.
- Read your download history →Trace a file back to its search, rename it, download it again for free.
- How leads are counted →One row, one lead, and what a partial balance does.
Developer API
Every filter in the interface, available programmatically
The API is not a reduced version of the product. It exposes the same filters, the same fields and the same result set as the web application, so anything you can build in the interface you can automate.

Same filters, same fields
Any query you can construct in the app maps to an API request. Build the filter visually, then take it to code.
Cursor pagination that stays stable
Cursor-based paging over large result sets, so a long export does not skip or duplicate rows when the underlying data updates mid-run.
Predictable, documented rate limits
Limits are published, returned in response headers, and signalled with a Retry-After on 429 so your client can back off correctly instead of guessing.
One allowance across app and API
API calls draw from the same monthly allowance as the interface. No second subscription, no separate quota to reconcile.
Errors that name the mistake
Asking for a column that does not exist is refused by name rather than silently dropped, so a typo in a field list fails loudly at the boundary instead of quietly returning a narrower result set than you asked for.
Go deeper
- The API documentation →Endpoints, request shapes, pagination and the full error table.
- Try a query in the browser →Build a filter against the real field list and see the request it produces.
- Every column you can request →The same 98 names the app filters on, with what each one holds.
- Create and rotate API keys →Naming keys for where they run, and rotating without downtime.
The data
All 98 queryable fields
Every one is filterable and exportable, in the app and through the API. The tag after each name is the kind of control it filters with, and each name links to what that column holds.
Identity & status (9)
Location & market (7)
Language (7)
Technology (3)
Social (9)
Performance (lab) (18)
Performance (field / CrUX) (7)
SEO (10)
Record metadata (1)
Other (18)
Questions
Frequently asked
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?
8,919,935 shops are searchable: the same number you can filter in the grid, export to CSV and pull through the API. Roughly 940.50K 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. The Free Trial gives you the full dataset and every filter, with 10 searches a day and 2 contact enrichments, and the allowance resets daily rather than expiring. No credit card is required.
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.
Start finding better e-commerce leads today
Free trial with the full dataset and every filter, and the allowance resets daily rather than expiring.
