Live API endpoints

Every scraper is an API. Call it · get JSON.

Save a scraper once, then call it from any language with the page you want scraped. Run it live, or read its latest results without scraping again.

REST with a Bearer key · JSON back in one call
Terminal1 Run one page2 Another page3 Latest results

One scraper for many pages

Send a different sourceUrl on each call and the same scraper reads that page, so one scraper covers every page built the same way.

Live or latest results

Run a fresh scrape when you need today's data, or read the last run's results straight away with no new scrape.

Asynchronous runs

A run that takes longer than 90 seconds returns a results_id. Poll it until the status reads completed.

API endpoints

One base URL, your API key as a Bearer token, JSON in and out. Replace :recipeId with the ID on your scraper's API tab.

Base URL
https://api.simplescraper.io/v1

Run and read

Scrape with a saved scraper and fetch what it found.

POST/recipes/:recipeId/runRuns the scraper and returns its data, or a results_id when the run passes 90 seconds.
GET/recipes/:recipeId/results-latestThe most recent results without a new scrape. Page through them with limit and cursor.
GET/results/:resultsIdThe data or progress of one run. Its status reads completed, running or failed.
GET/recipes/:recipeId/results-historyResults ids, completion dates and pages scraped for the last 50 runs.
POST/recipes/:recipeId/batch/urlsAppends to or replaces the list of URLs the scraper crawls, up to 5,000.

Manage scrapers

Create, find and change scrapers from code.

POST/recipesCreates a scraper from a name, a URL and up to 100 CSS selectors.
GET/recipesLists and searches your scrapers by name, URL or host.
GET/recipes/:recipeIdA scraper's details, including its selectors.
PUT/recipes/:recipeIdRenames a scraper, changes its URL, or replaces or merges its selectors.

Extract without a scraper

One-off calls on any URL.

POST/extractMarkdown, HTML, a screenshot or selector data from one URL, returned straight away.
POST/smart-extractAI extraction from a list of fields, with CSS selectors you can save as a scraper.
GET/smart-extract/:extractIdThe result of a Smart Extract that was still running.
POST/extract-urlsEvery URL in a site's sitemap. Uses no credits.
POST/screenshotA screenshot of any page as a hosted link, base64 or raw bytes.

Five ways to run a scraper by API

Send one URL, a list of URLs or none at all. Ask for Markdown beside the data, or run in the background and collect the results later.

sourceUrlURL

The page to scrape. It replaces the scraper's saved URL; leave it out to scrape that URL.

urlsArray of URLs

Up to 5,000 pages in one call. The run goes to the background and returns a results_id.

runAsyncBoolean

Return a results_id at once and scrape in the background.

extractMarkdownBoolean

Add a Markdown copy of the page beside the structured data.

useCrawlerBoolean

Scrape the URLs saved in the scraper's crawler instead of the source URL.

const response = await fetch('https://api.simplescraper.io/v1/recipes/YOUR_SCRAPER_ID/run', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ sourceUrl: 'https://lumensupply.com/packs' })
});

const { status, data, results_id } = await response.json();
// a run longer than 90 seconds returns status "running" and a results_id to poll

Your API key is on your account page and on every scraper's API tab.

How to call a scraper by API

The scraper you build in the browser is the same one your code calls.

1

Save a scraper

Build it in the Chrome extension, with AI in the dashboard, or by calling POST /recipes.

2

Copy your API key

It is on your account page and on the API tab of every scraper.

3

Call it from anywhere

Any language or tool that can send an HTTP request gets JSON back.

FAQ

How do I turn any website into a structured data API?

Create a scraper (via dashboard or API), then call the /run endpoint to get structured JSON data anytime. Pass different URLs to the same scraper for dynamic scraping. Your API key is on each scraper's API tab. Every scraper becomes a reusable API endpoint that returns clean, structured data instantly.

What can I do with the Simplescraper API?

Run scrapes, create and update scrapers with CSS selectors, search your existing scrapers, manage batch URLs, and use AI Smart Extract. Most users start with the /run endpoint for real-time data.

Can I extract markdown content via the API?

Yes! Add extractMarkdown: true to your API request to get a clean markdown version of any webpage alongside your structured data. Perfect for feeding content to LLMs, creating documentation, or archiving readable versions of web pages.

Can I pass different URLs to the same scraper?

Yes! Include sourceUrl in your POST request to scrape any URL with the same scraper. Perfect for dynamic scraping like scraping multiple products from the same site.

Turn your scraper into an API today.

Save one scraper and call it from your code today, with 100 free credits to start.

Start free
No credit card · or read the API guide