Fetch a public page

ScrapeFlow API

Send a URL in one POST request and get the page back as HTML, plain text, or markdown, or as parsed JSON when the page is JSON. Turn on JavaScript rendering for pages that build their content in the browser, and name CSS selectors when you only need a few values from the page.

Capabilities

What you can do with the ScrapeFlow API

Everything goes through one endpoint, POST /api/v1/scrapeflow/scraper. The only required field is url; the options below change how the page is fetched and what comes back.

GET, POST, or PUT

Set method to send a POST or PUT to the target, with data as a JSON or form-encoded string. If you leave out a Content-Type header, it is set from the format of data. On a GET, data is added to the URL as a query string. See examples

JavaScript rendering

By default the page is fetched over plain HTTP. Set render_js to load it in a real browser and return the HTML after scripts run, or set wait_for_selector to wait for an element before the page is returned. The device field picks a mobile or desktop profile. The browser is also tried when the plain fetch does not return HTTP 200. See examples

The target site's status code

A fetched page comes back as HTTP 200 even when the site answered 403 or 404. The site's own code is in meta.status, next to its response headers and cookies, so your code can decide whether to retry the URL or skip it. See examples

Request from another country

Requests go out through residential proxies in the country set by geo: US, GB, JP, BR, ZA, or AU, with US as the default. Use it when a site shows different prices or content by region. See examples

Extract fields with CSS selectors

Pass up to 20 named selectors in extract, such as {"title": "h1"}, and the matches come back under extracted with the same names, as text or as HTML. Set include_body to false when you only want the extracted values. See examples

Custom headers and cookies

Send up to 50 headers, such as a user agent, Accept-Language, or a Cookie, when a site will not answer a bare request. Transport headers such as Host and Content-Length are dropped. See examples

Shortened examples

Sample responses

Each example shows one way a fetch can come back. meta.status is the status the target site returned, a JSON page arrives parsed in body, and named selectors fill extracted. When ScrapeFlow itself cannot load the page, the response has success: false, a message, and a 4xx or 5xx status.

{
    "meta": {
        "status": 200
    },
    "body": "<h1>Example</h1><p>Price: $99</p>"
}
{
    "meta": {
        "status": 200
    },
    "extracted": {
        "heading": [
            "Example"
        ],
        "price": [
            "Price: $99"
        ]
    }
}
{
    "success": false,
    "message": "No data returned. The page could not be loaded; try again or raise the timeout."
}
{
    "meta": {
        "status": 200
    },
    "body": {
        "message": "Welcome to SteadyAPI! Please refer to our API documentation to learn how to interact with our API: https://docs.steadyapi.com"
    }
}
{
    "meta": {
        "status": 200
    },
    "body": "Example\n\nPrice: $99"
}

Documentation

The ScrapeFlow docs list every body field for POST /api/v1/scrapeflow/scraper with its allowed values and default, explain how ScrapeFlow's own errors differ from the target site's status, and include a sample request and response.

Code samples

Every endpoint in the documentation includes a sample request in Shell, JavaScript, PHP, and Python.

ShellShellJavaScriptJavaScriptPHPPHPPythonPython

View documentation

Pricing

One plan covers every API

Your plan's monthly requests work on this API and every other SteadyAPI API. Plan details, overage rates, and the Free plan's daily cap are on the pricing page. Need more volume than the largest plan? Email [email protected].

Free
$0.00
$9.99
per month
Starter
$14.99
$19.99
per month
Developer
$39.99
$59.99
per month
Business Popular
$89.99
$99.99
per month
Enterprise
$299.99
$499.99
per month
SubscribeSubscribeSubscribeSubscribeSubscribe
Requests per month50010,00050,0002,500,000
Stock Market API
Options Data API
Crypto Data API
AliExpress API
Reddit API
Booking.com API
Real Estate API
Baseball (MLB) API
Hockey API
Football API
Amazon API
eBay API
Walmart API
Instagram API
Twitter / X API
TikTok API
YouTube API
AutoHub API
ScrapeFlow
Commercial Use
Optional overage rate*$1.50 per 1,000 requests$1.05 per 1,000 requests$0.09 per 1,000 requests
Overage capup to 50,000 extraup to 250,000 extraup to 12,500,000 extra
Free
$0.00
$94.99
per year
Starter
$11.96
$14.35
per month$143.52 billed yearly
Developer
$32.50
$40.00
per month$389.99 billed yearly
Business Popular
$72.50
$90.00
per month$869.99 billed yearly
Enterprise
$320.83
$400.00
per month$3,849.99 billed yearly
SubscribeSubscribeSubscribeSubscribeSubscribe
Requests per month50010,00050,0002,500,000
Stock Market API
Options Data API
Crypto Data API
AliExpress API
Reddit API
Booking.com API
Real Estate API
Baseball (MLB) API
Hockey API
Football API
Amazon API
eBay API
Walmart API
Instagram API
Twitter / X API
TikTok API
YouTube API
AutoHub API
ScrapeFlow
Commercial Use
Optional overage rate*$1.50 per 1,000 requests$1.05 per 1,000 requests$0.09 per 1,000 requests
Overage capup to 50,000 extraup to 250,000 extraup to 12,500,000 extra

* Overage is optional and stays off until you turn it on in Billing. It is available on paid plans billed by card through Stripe, and not during a trial. Usage is counted in monthly periods that start on your billing day, yearly plans included. Requests past the included limit are charged at the plan's rate for each started block of 1,000, up to the overage cap, on one invoice after the period ends. Amounts under $0.50 carry over to the next invoice. If you change plans during a period, the limit and overage rate of the plan you are on when the period ends apply to the whole period.

The Free plan is also capped at 20 requests per day (New York time). Requests count by endpoint weight, and only responses with HTTP status 200 count.

Commercial use is included only on the plans that list it. If you are not sure whether your project counts as commercial use, email [email protected] before you launch.

Why SteadyAPI

What to expect from a fetch

ScrapeFlow runs the proxy and the browser for each request. You decide what to fetch and how to read the result.

One endpoint, a few fields

A request is a URL plus optional fields for the method, headers, country, rendering, output format, and extraction. There is no session or job to manage: each call fetches one URL and returns it.

Two kinds of failure

If the target site answers with an error page, you get HTTP 200 and its code in meta.status. If ScrapeFlow cannot fetch the page because the URL is not allowed, the page is over 10 MB, or loading failed, you get a 4xx or 5xx response with success: false.

A weight of 3 per fetch

Each call that returns HTTP 200 counts 3 requests against your monthly plan. That includes pages where the target site returned 403 or 404, because the fetch itself succeeded.

Limits to plan around

The timeout runs from 10 to 30 seconds, with 10 as the default, and JavaScript rendering takes longer than a plain fetch. Only public http and https addresses can be fetched; URLs that point to private or local networks are rejected.

Also on the blog

From the blog

These posts come from across SteadyAPI, so the one at the top may be about a different API. The reference for this page is the documentation above.

How to Search Hotels Using SteadyAPISep 25, 2026

How to Search Hotels Using SteadyAPI

Learn how to find hotels by destination using SteadyAPI. Resolve a place name to coordinates, then pull property names, ratings, and prices with the Booking.com hotel search endpoints.

READ MORE
Predicting Property Value Trends: How to Use Real Estate Valuation APIsJul 19, 2026

Predicting Property Value Trends: How to Use Real Estate Valuation APIs

Learn how to build a predictive real estate valuation pipeline using SteadyAPI. This guide shows developers how to combine historical property values, multi-provider forecasts, neighborhood market trends, housing market indicators, and comparable sales data to power automated valuation models (AVMs), investment analytics, and property intelligence platforms with structured real-time API data.

READ MORE
How to Fetch Local School Ratings and Neighborhood Amenities via APIJul 19, 2026

How to Fetch Local School Ratings and Neighborhood Amenities via API

Neighborhood insights are just as important as the property itself. This guide shows developers how to use the SteadyAPI Neighborhood Amenities API to fetch school ratings, walkability and transit scores, and nearby amenities through a single endpoint. You'll learn how to authenticate requests, retrieve structured neighborhood data, filter schools and local businesses, and combine these metrics into a custom neighborhood quality score. Whether you're building a real estate marketplace, property valuation model, or location intelligence dashboard, this tutorial helps you enrich listings with valuable contextual data while reducing the complexity of managing multiple third-party integrations.

READ MORE
The Developer’s Guide to Integrating Real-Time MLS Property DataJul 19, 2026

The Developer’s Guide to Integrating Real-Time MLS Property Data

This guide walks developers through building a modern real estate data pipeline with SteadyAPI. You'll learn how to search MLS property listings, retrieve tax and transaction histories, analyze local housing market trends, and enrich property data with neighborhood and environmental insights. Instead of maintaining fragile web scrapers or navigating complex MLS integrations, SteadyAPI provides structured JSON APIs that simplify property data ingestion and help you build faster, more reliable real estate applications. Whether you're creating an investment platform, property valuation engine, market research tool, or analytics dashboard, this tutorial covers the essential endpoints and architecture needed to get started.

READ MORE