API Documentation


Our mission is to make Web Scraping and data collection available to everyone. Web data collection is undeniably hard, and we have deep expertise in the topic. Our team knows how to tackle the problem. One of our goals is to make it handy for non-tech-savvy people. That's why deep technical knowledge is not necessary to make the most out of our platform.

Some companies, however, have special requirements and need complete control over the environment. We created an all included crazy fast API for them.


To access API functionality, you need to have a valid API Key. This unique key will keep all your requests authorized.

Start using the API by creating your API Key now.

Available Endpoints

Endpoints are entry points to the API, each one of them offering different functionality. At the moment, we support the following endpoints.


As the name suggests, it returns raw HTML from the given URL. It's ideal for teams that already have their parsers. This endpoint will only care about dealing with the server's response.

available params example value
endpoint https://api.zenrows.com/v1/html
apikey Get API Key
url https://www.zenrows.com
render(optional) true (JS rendering)



Email Extractor

This endpoint is capable of extracting all email addresses from a website. It's perfect for lead generation as well as CRM nurturing. It returns a JSON object with a list of emails.

available params example value
endpoint https://api.zenrows.com/v1/emails
apikey Get API Key
url https://www.realtor.com/realestateagents/new-york_ny
render(optional) true (JS rendering)


cURL emails extractor

Custom CSS Parsers

We do have a vast list of crafted parsers for multiple websites. In some cases, though, you might need to go custom. You can use CSS Selectors to customize and extract the content you need. It's easy and convenient if you need the content automatically parsed.

This endpoint requires an additional param: an encoded parser. Take a look at some of the examples you can use.

parser rule sample html value output
{"divs":"div"} <div>text0</div> text {"divs": "text0"}
{"divs":"div"} <div>text1</div><div>text2</div> text {"divs": ["text1", "text2"]}
{"links":"a attr:href"} <a href="#register">Register</a> href attribute {"links": "#register"}
{"hidden":"input[type=hidden] attr:value"} <input type="hidden" name="_token" value="f23g23g.b9u1bg91g.zv97" /> value attribute {"hidden": "f23g23g.b9u1bg91g.zv97"}
{"class":"button.submit attr:data-v"} <button class="submit" data-v="register-user">click</button> data-v attribute with submit class {"class": "register-user"}
{"class":"button.submit attr:data-v"} <button class="submit" data-v="register-user">click</button> data-v attribute with submit class {"class": "register-user"}
{"emails":"a[href^='mailto:'] attr:href"} <a href="mailto:[email protected]">email 1</a><a href="mailto:[email protected]">email 2</a> href attribute for links starting with mailto: {"emails": ["[email protected]", "[email protected]"]}

If you are interested in learning more, you can find a complete reference of CSS Selectors here.

Now you are comfortable with CSS Selectors, the endpoint requires the following parameters:

available params example value
endpoint https://api.zenrows.com/v1/css-parser
apikey Get API Key
url https://www.zenrows.com
parser (encoded) { "images": "img attr:src", "links": "a attr:href" }
encoded: %7B%22images%22%3A%22img%20attr%3Asrc%22%2C%22links%22%3A%22a%20attr%3Ahref%22%7D
render(optional) true (JS rendering)


cURL custom CSS Parser