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 MORECapabilities
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.
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
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
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
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
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
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
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"
}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.
Every endpoint in the documentation includes a sample request in Shell, JavaScript, PHP, and Python.
Pricing
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 per month | Starter $14.99 per month | Developer $39.99 per month | Business Popular $89.99 per month | Enterprise $299.99 per month | |
|---|---|---|---|---|---|
| Subscribe | Subscribe | Subscribe | Subscribe | Subscribe | |
| Requests per month | 500 | 10,000 | 50,000 | 250,000 | 2,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.50 per 1,000 requests | $0.09 per 1,000 requests | |
| Overage cap | up to 50,000 extra | up to 250,000 extra | up to 1,250,000 extra | up to 12,500,000 extra |
Free $0.00 per year | Starter $11.96 per month$143.52 billed yearly | Developer $32.50 per month$389.99 billed yearly | Business Popular $72.50 per month$869.99 billed yearly | Enterprise $320.83 per month$3,849.99 billed yearly | |
|---|---|---|---|---|---|
| Subscribe | Subscribe | Subscribe | Subscribe | Subscribe | |
| Requests per month | 500 | 10,000 | 50,000 | 250,000 | 2,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.50 per 1,000 requests | $0.09 per 1,000 requests | |
| Overage cap | up to 50,000 extra | up to 250,000 extra | up to 1,250,000 extra | up 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
ScrapeFlow runs the proxy and the browser for each request. You decide what to fetch and how to read the result.