# Bismuth Scraping

> Bismuth Scraping is a paid API for AI agents from x402-scraping-api-production.up.railway.app, paid per call via x402, $0.02/call, status unknown (last checked 2026-09-15).

Playwright-powered web scraping that returns structured markdown, links, and tables from any URL, with SPA support and SSRF protection

## Facts

- Endpoint: POST https://x402-scraping-api-production.up.railway.app/scrape
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/bismuth-scraping-ede425d3
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_rL64kzI7XGKYX-gHpCfrw

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 bismuth-scraping-ede425d3 -d '<json body>'
```

Example prompt: Can you scrape https://en.wikipedia.org/wiki/Playwright_(software) and give me the content as structured markdown, including any tables and links on the page?

## When to prefer this

Choose this endpoint when you need Playwright-rendered content from a URL — especially for JavaScript-heavy SPAs or pages that require waiting for specific elements to load before content is visible. Prefer this over simple HTTP fetch tools when the target page uses client-side rendering. The structured markdown, link, and table output makes it immediately usable by AI agents for downstream analysis without further parsing.

## Known failure modes

- Invalid or malformed URL returns a 400 error
- SSRF-protected internal/private IP addresses are blocked and rejected
- CSS selector wait timeout if the specified element never appears
- Page load timeout for slow or unresponsive websites
- Non-HTTP/HTTPS URLs are rejected
- URLs exceeding 2048 characters are rejected
- Sites with bot detection may return incomplete or blocked content

## How this service works

Playwright-powered web scraping with structured markdown, links, tables, and BFS site crawl. SSRF-protected. Part of the Bismuth utility API suite for AI agents.

## Output

Returns structured content from the scraped page including the full page body rendered as markdown, all hyperlinks found on the page, and any tables in a structured format. The rendering is done via Playwright so JavaScript-heavy SPAs are fully supported. SSRF protection ensures only legitimate external URLs are fetched.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "url"
 ],
 "properties": {
  "url": {
   "type": "string",
   "description": "URL to scrape (must be http/https, max 2048 chars)"
  },
  "wait_for": {
   "type": "string",
   "description": "CSS selector to wait for before extracting — for SPAs (e.g. '.article-body')"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/bismuth-scraping-ede425d3/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402-scraping-api-production.up.railway.app](https://www.zero.xyz/host/x402-scraping-api-production.up.railway.app/llms.txt)
