# Vaaya / Oxylabs Web Scraper

> Vaaya / Oxylabs Web Scraper is a paid API for AI agents from vaaya.ai, paid per call via x402, $0.25/call, status unknown (last checked 2026-09-13).

Scrapes any public URL using Oxylabs, with optional geo-targeting and JavaScript rendering, returning raw or rendered HTML.

## Facts

- Endpoint: POST https://vaaya.ai/api/run/oxylabs/scrape
- Price: $0.25/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/vaaya-oxylabs-web-scraper-aeb81351
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ugEThjQ1ihX6YMq0Yiy7Y

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability vaaya-oxylabs-web-scraper-aeb81351 -d '<json body>'
```

Example prompt: Scrape https://www.example.com/products/widget-123 using JavaScript rendering so the full dynamic content loads, and return the HTML — pretend you're browsing from Germany.

## When to prefer this

Use this endpoint when you need to scrape a public webpage through a residential or datacenter proxy (Oxylabs) with optional JavaScript rendering and geo-targeting. Prefer this over Firecrawl (structured extraction) when you want raw HTML rather than parsed content, and over direct HTTP fetches when bot detection or geo-blocking is a concern. Choose Firecrawl if you need structured schema-based extraction; choose this endpoint if you need full raw HTML with proxy infrastructure.

## Known failure modes

- Target URL is inaccessible or returns a non-2xx status — scrape fails with an error
- Invalid or malformed URL — request rejected with validation error
- Geo-location code not recognized — may fall back to default or return an error
- JS rendering timeout if the page takes too long to load
- Anti-bot measures on certain sites may still block even with Oxylabs proxies
- Rate limits or quota exhaustion on the Oxylabs backend — returns error

## How this service works

Oxylabs — scrape a public URL with optional geo-targeting and JS rendering. Params: `url`, optionally `geo_location`, `render` ("html").

## Output

Returns the raw or JS-rendered HTML of the target URL, proxied through Oxylabs infrastructure. The response includes the full page source as the scraping provider delivered it, potentially including headers and metadata about the request.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "type": "object",
     "$schema": "http://json-schema.org/draft-07/schema#",
     "required": [
      "url"
     ],
     "properties": {
      "url": {
       "type": "string",
       "format": "uri"
      },
      "render": {
       "type": "string"
      },
      "geo_location": {
       "type": "string"
      }
     },
     "additionalProperties": true
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json",
      "form-data",
      "text"
     ],
     "type": "string"
    },
    "pathParams": {
     "type": "object"
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/vaaya-oxylabs-web-scraper-aeb81351/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from vaaya.ai](https://www.zero.xyz/host/vaaya.ai/llms.txt)
