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.
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.
Run and read
Scrape with a saved scraper and fetch what it found.
/recipes/:recipeId/runRuns the scraper and returns its data, or a results_id when the run passes 90 seconds./recipes/:recipeId/results-latestThe most recent results without a new scrape. Page through them with limit and cursor./results/:resultsIdThe data or progress of one run. Its status reads completed, running or failed./recipes/:recipeId/results-historyResults ids, completion dates and pages scraped for the last 50 runs./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.
/recipesCreates a scraper from a name, a URL and up to 100 CSS selectors./recipesLists and searches your scrapers by name, URL or host./recipes/:recipeIdA scraper's details, including its selectors./recipes/:recipeIdRenames a scraper, changes its URL, or replaces or merges its selectors.Extract without a scraper
One-off calls on any URL.
/extractMarkdown, HTML, a screenshot or selector data from one URL, returned straight away./smart-extractAI extraction from a list of fields, with CSS selectors you can save as a scraper./smart-extract/:extractIdThe result of a Smart Extract that was still running./extract-urlsEvery URL in a site's sitemap. Uses no credits./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.
sourceUrlURLThe page to scrape. It replaces the scraper's saved URL; leave it out to scrape that URL.
urlsArray of URLsUp to 5,000 pages in one call. The run goes to the background and returns a results_id.
runAsyncBooleanReturn a results_id at once and scrape in the background.
extractMarkdownBooleanAdd a Markdown copy of the page beside the structured data.
useCrawlerBooleanScrape 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 pollYour 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.
Save a scraper
Build it in the Chrome extension, with AI in the dashboard, or by calling POST /recipes.
Copy your API key
It is on your account page and on the API tab of every scraper.
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