# ScrapeCheck

> ScrapeCheck is a paid API for AI agents from scrapecheck.fly.dev, paid per call via x402, $0.002/call, status unknown (last checked 2026-09-14).

Re-fetches a web page independently and returns a signed pass/fail/unverifiable verdict confirming whether a specific claimed value actually appears on the live page.

## Facts

- Endpoint: POST https://scrapecheck.fly.dev/verify-presence
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/scrapecheck-7995b4f1
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_HqvM2vtbMKBQzFYbLW87Q

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 scrapecheck-7995b4f1 -d '<json body>'
```

Example prompt: Can you independently verify that the price £51.77 is actually shown on https://example.com/product/123 — I got that figure from a third-party source and want a signed confirmation it's really on the page?

## When to prefer this

Choose ScrapeCheck when your agent retrieved data from a third-party source (scraper, aggregator, another API) and you need independent, tamper-evident confirmation that the claimed value actually appears on the original live page. It is especially valuable for price checks, salary figures, product specs, or any claim where trust is critical and you cannot blindly rely on the original fetcher. Prefer this over re-scraping yourself when you need a cryptographically signed, auditable verdict rather than raw page content.

## Known failure modes

- Page requires JavaScript rendering — service only supports server-rendered pages, returns 'unverifiable' verdict
- URL is behind authentication or a paywall — cannot be re-fetched, returns 'unverifiable'
- Claimed value no longer appears on the live page — returns 'absent' verdict
- Network or DNS error fetching the source URL — returns 'unverifiable' with error reason
- Malformed URL or missing required fields — returns a 400-level error
- Page returns a non-200 status — claim marked 'unverifiable' rather than 'absent'

## How this service works

PRESENCE tier (deterministic, no LLM): confirms the claimed value appears on the live page — it does NOT confirm the value is the right answer to the question. Positive verdict is "present", never "pass"; check_type web_field_presence_v1. For full verification use /verify. First 100 checks per client are free: resend with header X-Use-Free-Allowance: yes and no payment to use them.

## Output

A JSON object containing a verdict ('present', 'absent', or 'unverifiable'), a confidence score (0–1), a list of human-readable reasons explaining the verdict, an ed25519 signature for tamper-proof audit, a check_type identifier ('web_field_presence_v1'), and a unique verdict_id. The verdict is 'present' only if the claimed value is found in the re-fetched page; unconfirmed values are never marked 'pass'.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "description": "source page (public http/https)"
  },
  "asked": {
   "type": "string",
   "description": "the original request, plain text"
  },
  "claim": {
   "type": "object",
   "description": "the claimed field values to look for on the page"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "engine": "web_field_v1/0.2.0+2ae28205cac4",
  "key_id": "k2",
  "reasons": [
   "claimed price £51.77 found in re-fetched page",
   "presence check only: confirms the value appears on the live page — not that it answers the question"
  ],
  "verdict": "present",
  "evidence": {
   "lens_votes": {
    "is_real": true,
    "is_current": true
   },
   "refetched_at": "2026-08-15T01:50:06.202Z",
   "refetch_excerpt": "…£51.77 In stock…"
  },
  "signature": "ed25519:…",
  "check_type": "web_field_presence_v1",
  "confidence": 0.9,
  "verdict_id": "0d2c…",
  "source_hash": "sha256:…",
  "verifier_url": "https://scrapecheck.fly.dev"
 }
}
```

## More

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