Live on RapidAPI · free tier, no credit card

Turn any store URL into
a clean product catalog

It crawls a storefront the way a human would — category pages, pagination, product pages — and returns structured JSON: names, prices, photos and AI-written descriptions. No CSS selectors to configure, no per-store templates to maintain.

  • No credit card
  • WooCommerce, custom and legacy stores
  • robots.txt-aware crawling

Illustration of a finished job: an extraction against www.heavyduty.com.br that crawled 160 pages, returned 50 products in 72 seconds with no duplicates, listing products such as “Broca Escalonada para Metal” in the category “Brocas”.

Numbers from one real production run against www.heavyduty.com.br — a site with no /products path at all

  • 160Pages crawled and read
  • 50Clean products returned
  • 72sFrom URL to finished catalog
  • 0Duplicates, leaked categories or hand-written selectors

How it works

Three calls, one catalog

Extraction is asynchronous on purpose: a real store takes minutes to crawl politely, and no HTTP request should be held open that long. You start a job, poll it, and collect the catalog.

  1. 01

    POST /v1/extract

    Send the store URL. You get a job_id back immediately, plus the schema and limits the server actually applied. Optionally pass your own field list or a webhook.

  2. 02

    GET /v1/jobs/{id}

    Poll for real progress, not a spinner: the current phase, pages visited, candidate pages found, pages extracted and items collected so far.

  3. 03

    Status done

    The same endpoint returns the full catalog — every item, the pages that failed or were blocked by robots.txt, and the token usage the job cost.

# 1 — start the job
curl -X POST 'https://ai-product-catalog-extractor.p.rapidapi.com/v1/extract' \
  -H 'X-RapidAPI-Key: YOUR_KEY' \
  -H 'X-RapidAPI-Host: ai-product-catalog-extractor.p.rapidapi.com' \
  -H 'content-type: application/json' \
  -d '{ "url": "https://www.yourstore.com/" }'

# 202 Accepted
{
  "job_id": "8f2c1a4e",
  "status": "queued",
  "poll":   "/v1/jobs/8f2c1a4e"
}

Real payload shape, from the run above. Descriptions come back in the store's own language.

Why it works

The hard parts of catalog scraping, already solved

Crawling a store is the easy half. Telling a real product page from a listing card, and a category from a product, is where scrapers quietly return garbage. That is the part this engine was built around.

  • No selectors, no templates

    Nothing to configure per store, and nothing to repair when a theme changes. The AI reads each page as text and decides what it is looking at — so a store you have never seen works on the first call.

  • Battle-tested cleanup

    Listing-card detection, deduplication by name and URL, and category pruning that drops the parent page when its child is the real product. Every one of those guards exists because a production catalog once came back wrong without it.

  • Your schema, not ours

    Send a field list — texto, number, bool, foto — and the AI extracts exactly those. Ask for a field called descricao and it writes one instead of copying the store's boilerplate. Presets ship for products and vehicles.

  • Polite by default

    robots.txt is honoured, requests to the same host are rate-limited and serialised, the user agent says who we are, and every blocked page is reported back to you instead of silently skipped.

  • Async jobs, optional webhook

    Jobs survive restarts, report incremental progress, and never hang: an orphaned job fails with a reason instead of pretending to run. Poll it, or hand us a webhook URL and forget about it.

  • Any platform, including the ugly ones

    WooCommerce, bespoke PHP shops, twenty-year-old catalogues with no /products path. When a store publishes schema.org product data we read that too — and when it does not, the page text is enough.

Where it stops

Two limits, stated up front

You are going to find these out on your first call anyway, so here they are before you spend one. Everything else about your store is fair game.

  • Server-rendered HTML is what we read — which is still most of the web's storefronts
  • A zero-item answer is a real answer, and it costs one free call to get it
  • We would rather return nothing than invent a product that is not on the page
Test your store on the free tier
Not yet

Storefronts that build the grid in the browser

If the products only appear after JavaScript runs, we see an empty shell and return few or no items. The crawler reads the HTML the server sends.

A rendering engine for those stores is the next premium tier. Until it ships, a SPA storefront is a no.

By design

One page, one product

The engine assumes each product has a page of its own. Catalogues where the SKUs live only inside a filterable listing — hundreds of variants behind dropdowns, no individual URLs — come back nearly empty.

That is the honest answer, not a failure: we tested exactly that case and the AI correctly reported “this is a listing page”, rather than inventing rows.

What people build with it

One URL is a shortcut to a lot of typing

  • Store migrations

    Move a catalogue between platforms without anyone retyping 400 products. Point at the old store, import the JSON into the new one.

  • Marketplace onboarding

    Let a new seller paste their website instead of filling a spreadsheet. Their catalogue is live on your platform before they lose interest.

  • Competitor monitoring

    Re-run the same URL on a schedule and diff the results to watch assortment and pricing move, without maintaining one scraper per rival.

  • WhatsApp commerce

    Feed a chat catalogue or an AI sales agent with real products, photos and descriptions — pulled from the store the merchant already has.

Pricing

Start free, pay when it earns its keep

Every plan runs the same engine, with nothing held back for a higher tier — the only thing that changes is how many calls it includes. Plans, billing and keys are handled by RapidAPI.

  • Basic

    Enough to run your real store through it and judge the output.

    Free

    50 calls / month

    No credit card

    Start free
    • The full engine, nothing gated
    • Custom schema and presets
    • Async jobs, progress and webhooks
    • Community support
  • Ultra

    For a product that extracts catalogues every day.

    $ 59 /mo

    1,600 calls / month

    ≈ $0.04 per call

    Subscribe on RapidAPI
    • Everything in Pro
    • Room to re-extract on a schedule
    • Email support
  • Mega

    For marketplaces and monitoring at volume.

    $ 199 /mo

    8,000 calls / month

    ≈ $0.025 per call

    Subscribe on RapidAPI
    • Everything in Ultra
    • Volume and custom terms on request
    • Direct line to the maintainer

Cancel any time from your RapidAPI dashboard · a failed job returns a reason, not an invoice · need more than Mega? Ask us

FAQ

The five questions everybody asks

Give it a store URL and see what comes back

Fifty calls a month, free, no card. That is enough to run your real catalogue through it and decide with output in front of you instead of a promise.

50 calls/month on Basic · upgrade or cancel from your RapidAPI dashboard