# stableflare.dev Web-to-JSON Extractor

> stableflare.dev Web-to-JSON Extractor is a paid API for AI agents from stableflare.dev, paid per call via x402, $0.05/call, status unknown (last checked 2026-09-14).

Extracts structured JSON data from any URL by rendering the page and applying a natural language prompt or JSON schema to define the output shape

## Facts

- Endpoint: POST https://stableflare.dev/api/browser/json
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/stableflare-dev-fea58364
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_chpMTLeK3Lu59BzZZf4QE

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 stableflare-dev-fea58364 -d '<json body>'
```

Example prompt: Go to https://news.ycombinator.com and extract the top 10 stories as structured JSON — I want each item to have a title, URL, points, and comment count.

## When to prefer this

Choose this endpoint when you need to extract structured, machine-readable data from a live webpage and want to define the output shape using plain English or a JSON schema. It is ideal for turning arbitrary web content into typed objects without writing custom parsers. Prefer it over screenshot or markdown endpoints when the downstream need is structured data rather than visual content or raw text.

## Known failure modes

- URL is unreachable or returns an error — extraction fails with a fetch/navigation error
- Prompt or schema is too ambiguous — output may be incomplete or misaligned with expectations
- Page requires authentication or CAPTCHA — content may be inaccessible
- JavaScript-heavy pages may time out before fully rendering
- Rate limiting or bot-detection on target site may block extraction
- Malformed JSON schema input causes a 400 validation error

## How this service works

Extract structured data from any URL using AI. Provide a natural language prompt or JSON schema to define the output shape.

## Output

A structured JSON object or array whose shape is defined by the provided prompt or schema, containing the extracted data from the rendered webpage at the given URL.

## Example request

```json
{
 "url": "https://news.ycombinator.com",
 "prompt": "Extract the top 10 stories from this page. For each story, provide the title, the URL (if available), the points/score, and the number of comments.",
 "gotoOptions": {
  "timeout": 30000,
  "waitUntil": "networkidle2"
 },
 "response_format": {
  "type": "json_schema",
  "schema": {
   "type": "object",
   "required": [
    "stories"
   ],
   "properties": {
    "stories": {
     "type": "array",
     "items": {
      "type": "object",
      "required": [
       "title",
       "points",
       "comments"
      ],
      "properties": {
       "url": {
        "type": "string"
       },
       "title": {
        "type": "string"
       },
       "points": {
        "type": "number"
       },
       "comments": {
        "type": "number"
       }
      }
     }
    }
   }
  }
 }
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "format": "uri",
   "description": "URL to render"
  },
  "html": {
   "type": "string",
   "description": "HTML content to render instead of URL"
  },
  "prompt": {
   "type": "string",
   "description": "Natural language prompt for AI extraction"
  },
  "cookies": {
   "type": "array",
   "items": {
    "type": "object",
    "propertyNames": {
     "type": "string"
    },
    "additionalProperties": {}
   }
  },
  "userAgent": {
   "type": "string"
  },
  "gotoOptions": {
   "type": "object",
   "properties": {
    "timeout": {
     "type": "number"
    },
    "waitUntil": {
     "enum": [
      "load",
      "domcontentloaded",
      "networkidle0",
      "networkidle2"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "authenticate": {
   "type": "object",
   "required": [
    "username",
    "password"
   ],
   "properties": {
    "password": {
     "type": "string"
    },
    "username": {
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "response_format": {
   "type": "object",
   "required": [
    "schema"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "json_schema"
    },
    "schema": {
     "type": "object",
     "propertyNames": {
      "type": "string"
     },
     "additionalProperties": {}
    }
   },
   "description": "JSON schema for structured extraction",
   "additionalProperties": false
  },
  "waitForSelector": {
   "type": "string",
   "description": "CSS selector to wait for"
  },
  "setExtraHTTPHeaders": {
   "type": "object",
   "propertyNames": {
    "type": "string"
   },
   "additionalProperties": {
    "type": "string"
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/stableflare-dev-fea58364/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from stableflare.dev](https://www.zero.xyz/host/stableflare.dev/llms.txt)
