# ZenRows integrations: fetch and extract

> Create a batch job in ZenRows. Connect ZenRows to the rest of your data and analytics stack with Tray.ai.

**Canonical page:** https://tray.ai/connectors/zenrows-integrations/
**Categories:** Data and analytics
**Connects through:** HTTP Connector

## Overview

ZenRows is a web scraping API that fetches pages through rotating proxies and headless browsers, returning HTML, Markdown, or structured JSON, with crawl and batch jobs. Tray.ai connects to ZenRows through the HTTP Connector, so your workflows can call the ZenRows API alongside the rest of your stack.

## Use cases

### Fetch

Read fetch in ZenRows from any Tray.ai workflow. The ZenRows API covers calls such as fetch a page and fetch a page with POST.

- Fetch a page
- Fetch a page with POST
- Fetch a page with PUT

### Extract

Read extract in ZenRows from any Tray.ai workflow. The ZenRows API covers calls such as list supported domains and request domain preparation.

- List supported domains
- Request domain preparation
- Track domain preparation

### Batch jobs

Read and create batch jobs in ZenRows from any Tray.ai workflow. The ZenRows API covers calls such as create a batch job and list batch jobs.

- Create a batch job
- List batch jobs

### Account

Read account in ZenRows from any Tray.ai workflow. The ZenRows API covers calls such as read the current plan and get an agent API key.

- Read the current plan
- Get an agent API key

## Challenges Tray.ai solves

### Keeping ZenRows credentials out of logs

A raw API call usually means pasting a key or token into the request, where it ends up in step inputs, logs, and screenshots.

**How Tray.ai helps:** Store ZenRows credentials once as a Tray.ai authentication and reference them from the HTTP Connector. Tray.ai masks authentication values in logs, so the secret never shows up in a step's input or output.

### Going from the ZenRows API docs to a working call

Translating an example request from API docs into a workflow step means copying the method, URL, headers, and body by hand.

**How Tray.ai helps:** Paste a cURL example from the ZenRows API docs into the HTTP Connector and Tray.ai fills in the method, URL, headers, and body for you.

### Handling files and non-JSON responses

Not every API answers in JSON. Some return XML, files, or binary data, or expect a multipart upload.

**How Tray.ai helps:** The HTTP Connector parses JSON and XML responses, returns files you can pass to the next step, and sends multipart form data for uploads.

## Frequently asked questions

### Does Tray.ai connect to ZenRows?

Yes. Tray.ai connects to ZenRows through the HTTP Connector, which calls the ZenRows API directly. Any call the ZenRows API documents can run as a step in a Tray.ai workflow.

### How does Tray.ai authenticate with ZenRows?

The ZenRows API uses an API key in the query string and an API key in a request header. You save it once as a Tray.ai authentication, and the HTTP Connector adds it to every request.

### Can I get a dedicated ZenRows connector?

ZenRows runs through the HTTP Connector rather than a dedicated connector. If your team wants one, the Tray.ai connector SDK can build a dedicated ZenRows connector from the ZenRows API.

## Learn more

- Intelligent Integration: https://tray.ai/platform/intelligent-ipaas/
- Merlin Agent Builder: https://tray.ai/platform/merlin-agent-builder/
- Agent Gateway for MCP: https://tray.ai/platform/agent-gateway/
- Book a demo: https://tray.ai/contact/
