canonical: https://jentic.com/apis/oxylabs.io/oxylabs

# Oxylabs Web Scraper API

The Oxylabs Web Scraper API runs web scraping jobs and returns structured results, so an application can collect data from web pages at scale without managing proxies or headless browsers itself. You submit a scraping job that names the target and the parsing options, then read the job's status and its parsed results, either in real time or through batch delivery. A single request can queue one target or a batch of targets, and a helper endpoint lists the callback IP addresses Oxylabs delivers results from so they can be allowed through a firewall.

## For AI agents

Submit web scraping jobs for target URLs, check their status, and read the parsed results in Oxylabs. Authenticates with HTTP Basic authentication using your Oxylabs username and password.

## Scope

Does not handle proxy pool configuration, billing, or account management. Use for submitting Oxylabs scraping jobs and reading their results only.

## Capabilities

- Submit a web scraping job for a target URL and get structured results
- Submit a batch of scraping jobs in a single request
- Check the status of a running or completed scraping job
- Read the parsed results of a finished scraping job
- Look up the callback IP addresses Oxylabs delivers results from

## Use cases

### Agent-Driven Web Data Collection

An AI agent connected through Jentic submits a scraping job for a target page, waits for it to finish, and reads back the parsed result, so the agent can pull live web data into a workflow without a human running a scraper. Because Oxylabs returns structured output, the agent can act on the fields directly rather than parsing raw HTML.

Example prompt: Submit a scraping job for this product URL, then return the parsed title and price once the job completes

### Batch Scraping Pipeline

A data pipeline submits many target URLs in one batch request and then polls each job for completion before reading its results, so a large scrape runs as a single managed step. The pipeline uses the job status endpoint to know when each result is ready.

Example prompt: Submit these fifty URLs as one batch job and collect the parsed results for each as they finish

### Firewall Allowlisting for Callbacks

Teams that receive scraping results by webhook first read the list of callback IP addresses Oxylabs uses and add them to their firewall allowlist, so delivered results are accepted rather than blocked. This keeps a push-based delivery setup working reliably.

Example prompt: Fetch the current Oxylabs callback IP addresses so I can add them to the firewall allowlist

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/v1/queries` | Submit a web scraping job |
| POST | `/v1/queries/batch` | Submit a batch scraping job |
| GET | `/v1/queries/{jobId}` | Get scraping job status |
| GET | `/v1/queries/{jobId}/results` | Get scraping job results |
| GET | `/v1/info/callbacker_ips` | Get callback IP addresses |

## Key resources

- **Queries** — Scraping jobs that name a target and return parsed data once complete
- **Results** — The structured output of a completed scraping job
- **Callback IPs** — The addresses Oxylabs delivers webhook results from, for firewall allowlisting

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 40 / 100
- **Maturity:** Foundational
- **Dimensions:**
  - Foundational Compliance: 93 / 100
  - Developer Experience & Jentic Compatibility: 61 / 100
  - AI-Readiness & Agent Experience: 49 / 100
  - Agent Usability: 94 / 100
  - Security: 10 / 100
  - AI Discoverability: 85 / 100
- **View full report:** https://jentic.com/apis/oxylabs.io/oxylabs/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring the Oxylabs Web Scraper API by hand means handling HTTP Basic auth, choosing between the realtime and data delivery hosts, and polling each job until it finishes. Through Jentic you install once, import Oxylabs from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** You choose which operations your agent may call, so you can allow submitting a scraping job and reading its results while leaving anything else out. Oxylabs carries the target in the request body, so your rules bound which operations run, and every call the agent makes is logged.
- **Credential handling:** Your Oxylabs username and password are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'scrape a page and return results' or 'check a scraping job', and Jentic returns the matching Oxylabs operation with its input schema so the agent calls the right endpoint without reading the reference docs.

## Related APIs

- **Bright Data API** — Web data platform offering proxy networks and scraping tools for collecting public web data
- **ZenRows API** — Scraping API that handles proxies, headless browsers, and anti-bot bypass for web pages
- **Scrapingdog API** — Web scraping API with rotating proxies and rendered-page support

## FAQ

### Is there an Oxylabs MCP server?

You don't need an MCP server to give your agent the Oxylabs Web Scraper API. Jentic connects it directly from the API Directory: import it, store your credentials once, and your agent can submit scraping jobs and read results straight away, with no extra server to run and no tool definitions to load into the agent's context.

### Can I limit what my agent is allowed to do with the Oxylabs Web Scraper API?

Yes. You choose which operations your agent may call, so you can allow submitting a scraping job and reading its results while leaving everything else out. Every call the agent makes is logged, so you can see exactly which jobs it ran.

### What authentication does the Oxylabs Web Scraper API use?

The Oxylabs Web Scraper API uses HTTP Basic authentication with your Oxylabs username and password per its OpenAPI spec. Through Jentic the credentials are stored encrypted by your own instance and added to each request at call time, so they never appear in the agent's prompt or logs.

### Can I scrape many URLs at once with the Oxylabs Web Scraper API?

Yes. The API accepts a batch of targets in a single request and returns a job for each, so an agent can queue a large scrape in one call and then read each result as it completes. You can also check the status of any job before fetching its result.

### What are the rate limits for the Oxylabs Web Scraper API?

The OpenAPI spec does not specify rate limits for the Oxylabs Web Scraper API. For current limits and fair-use guidance, see the Oxylabs documentation at https://developers.oxylabs.io.

### How do I run an Oxylabs scraping job through Jentic?

Import the Oxylabs Web Scraper API from the Jentic API Directory, then have your agent issue a request such as 'scrape this page and return the parsed result'. Jentic matches the intent to the submit-job operation and returns its input schema so the agent builds the correct request, with your stored credentials injected at call time. To run it on your own infrastructure, install Jentic One from its GitHub repo.
