Custom scrapers

Custom scrapers for the sites with no data API

Our 35 data APIs cover Amazon, Walmart, Google and YouTube. Every other site runs on the AI scraper: you paste a URL, define the columns you want in a Custom Schema, and the AI fills them from the rendered page on your schedule. 120 retailers across Europe and the United States are written up below, each with the columns it returns and what a run on it actually cost.

Three stages of a custom scraper run: paste any product, listing or search URL priced from EUR 0.15; declare the columns in the Custom Schema builder, shown here with stockStatus as required text and warrantyMonths as a number; and get back the same three columns on every site you point it at.

120 retailers, written up one by one

Every page below answers the same four questions for one retailer: what the AI scraper gets, what it cannot get, why that site's own API does not tell you what a competitor is charging, and what a month of daily runs costs at a tier we measured rather than guessed. Sixty of them also print real rows from a run we did, with the date on them. The list is not the limit — it is the worked proof that any public website goes the same way: define the columns once in a Custom Schema, paste the URLs, done.

Electronics 23

Grocery 21

Marketplaces and price comparison 18

Home, DIY and furniture 16

Fashion and beauty 15

Sport, hobby and pets 14

General merchandise, auto and pharmacy 13

How a custom scraper gets built

The same three steps for every site. Nothing is pre-built, which is exactly why it reaches pages a fixed integration never would.

  1. 1

    Paste the URL

    One product page, a category listing, or a whole list of links. The scraper works from the URL you hand it, so country domains and subpages need no separate integration.

  2. 2

    You define the columns

    Pick one of the ready schemas, Product Page, Product List or Page Menu, or build a Custom Schema with your own field names and types. Every run comes back with exactly those columns and nothing else. The AI fills them from the page after JavaScript has run, rather than from a saved CSS selector, so an ordinary redesign usually does not break the run.

  3. 3

    Schedule it, then export

    Run it once or daily. Every run is retrievable over REST with a stable column set, or downloadable as CSV or Excel, so downstream jobs never re-map fields.

In the portal

Custom Schema: the columns are yours

Every scraper runs against a schema, and the schema is the column list. Schemas belong to your account rather than to one scraper, so the field set you settle on for a price comparison site can be reused on the next marketplace you point us at.

Start from a ready schema

  • Product PageSingle product detail extraction
  • Product ListMultiple products from a listing page
  • Page MenuPage navigation data
  • Custom SchemaDefine your own fields

Or write the fields yourself

Give the schema a name, then add a row per column: the field name, its type, a description telling the AI what to look for on the page, and whether the run should treat it as required. Three types only, so there is nothing to learn: Text, Number, Yes/No.

Field nameTypeDescriptionRequired
stockStatusTextThe exact text on the page showing stock status (e.g. "In Stock", "Out of Stock", "Only 2 left").Yes
warrantyMonthsNumberNumber of months of manufacturer warranty listed on the product page.No
isBestSellerYes/NoWhether the product page shows a "Bestseller" badge or label.No

Four things worth knowing before you write one

  • The description is the instruction

    It is not a comment for your colleagues. It is the sentence the AI reads to decide what on the page counts as that field. "Stock status" gets you guesswork. "The exact text on the page showing stock status, e.g. In Stock, Out of Stock, Only 2 left" gets you the string you wanted. Naming the wording you expect is the whole trick.

  • Required is a promise, not a filter

    Marking a field required tells the run that a page without it is a problem rather than a normal result. Leave it off for anything a listing legitimately omits, like a warranty or a badge, and those cells simply come back empty instead of flagging the row.

  • Nothing you did not declare comes back

    A saved schema is a closed contract: the run returns a list of products, each one carrying exactly your fields and no others. Two sites on the same schema produce the same columns in the same order, which is why one schema can serve every marketplace you point it at.

  • Saving publishes a version

    Editing a schema does not rewrite history. Saving publishes a new version and every scraper on that schema picks it up on its next run, so you can widen a column list mid-project without rebuilding anything. Deleting archives the schema and scrapers already using it keep working unchanged.

What the builder will not let you do

  • Every schema needs a name and at least one field.
  • Field names are unique regardless of case, so price and Price cannot both exist.
  • Sixteen names are reserved by the schema format itself and are rejected on save, among them type, properties, required, items, description, products, id, enum, default, format and title.

Custom scraper or data API?

Both land in the same portal, the same table and the same exports. The difference is who defines the schema and how you are charged.

Data API

  • 35 ready endpoints for Amazon, Walmart, Google and YouTube
  • Fixed columns we publish, with real sample rows on every page
  • A published price per call, from EUR 0.15 per 1,000
  • Nothing to configure: call it and rows come back
Browse the data APIs →

Custom scraper

  • Any public website, including the ones nobody offers an endpoint for
  • You choose the columns from what the page actually shows
  • Charged per page from your wallet, at the tier the site needs
  • Set up once in the portal, then scheduled daily
Have us set one up →

Point it at the site you actually care about

The 120 above are examples, not limits. Define your columns once in a Custom Schema, paste the URLs you want watched, and the same scraper runs against any public website on the same schedule.

FAQ

Custom scrapers, answered

What people ask before pointing the scraper at a site we have not written up.

Any site we do not ship a dedicated data API for. Instead of calling a ready endpoint with fixed columns, you configure the AI scraper once against the URLs you care about, and from then on it behaves like your own endpoint: stable columns, REST retrieval, a daily schedule.