# GEDX402 Browser JSON Extraction

> GEDX402 Browser JSON Extraction is a paid API for AI agents from browser.gedx402.com, paid per call via x402, $0.1/call, status unknown (last checked 2026-09-15).

Loads a URL or HTML in a headless browser and extracts structured JSON data using a natural-language prompt, paid per-call with USDC via x402.

## Facts

- Endpoint: GET https://browser.gedx402.com/v1/browser/json
- Price: $0.1/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/gedx402-browser-json-extraction-f1bc21c0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_mVRhQVTsEbndh1md7NozS

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 gedx402-browser-json-extraction-f1bc21c0
```

Example prompt: Load https://news.ycombinator.com and extract the top 5 story titles, their scores, and comment counts as structured JSON using the prompt 'extract each story title, upvote score, and number of comments'.

## When to prefer this

Choose this endpoint when you need to extract structured JSON from a live URL or raw HTML using a natural-language prompt, without managing API keys or browser infrastructure. Ideal for one-off or agent-driven scraping tasks where USDC micropayment via x402 is acceptable and no persistent session is needed.

## Known failure modes

- Invalid or unreachable URL returns an error or empty result
- Insufficient USDC payment causes a 402 Payment Required response
- Pages with heavy JavaScript anti-bot measures may not render correctly
- Prompt is too ambiguous and returns incomplete or hallucinated fields
- response_format schema mismatch causes extraction to fail or return null fields

## How this service works

x402 workers ai. pay with usdc on base, polygon, arbitrum, world, or solana. no api keys.

## Output

A JSON object whose shape is either derived from the natural-language prompt or matches the provided response_format schema — e.g. {"title": "...", "summary": "..."} or a custom array of extracted records from the rendered page.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "description": "HTTPS URL to load (required unless html is set)."
  },
  "html": {
   "type": "string",
   "description": "Raw HTML to render instead of fetching a URL."
  },
  "prompt": {
   "type": "string",
   "description": "Natural-language extraction prompt (for /json)."
  },
  "elements": {
   "type": "array",
   "items": {
    "type": "object"
   },
   "description": "Scrape selectors (for /scrape)."
  },
  "selector": {
   "type": "string",
   "description": "CSS selector for element capture or scrape."
  },
  "viewport": {
   "type": "object",
   "description": "Browser viewport width/height/deviceScaleFactor."
  },
  "pdfOptions": {
   "type": "object",
   "description": "PDF print options."
  },
  "gotoOptions": {
   "type": "object",
   "description": "Puppeteer goto options (e.g. waitUntil: networkidle0)."
  },
  "response_format": {
   "type": "object",
   "description": "JSON schema for structured /json extraction."
  },
  "screenshotOptions": {
   "type": "object",
   "description": "fullPage, type, omitBackground, etc."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "title": "Example",
  "summary": "Page summary"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/gedx402-browser-json-extraction-f1bc21c0/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from browser.gedx402.com](https://www.zero.xyz/host/browser.gedx402.com/llms.txt)
