# Proofwire HTTP URL Verification

> Proofwire HTTP URL Verification is a paid API for AI agents from verify.reversecaptcha.fun, paid per call via x402, $0.001/call, status unknown (last checked 2026-10-20).

Checks whether a URL is alive and returns a signed verdict with redirect chain, TLS status, latency, and body hash

## Facts

- Endpoint: GET https://verify.reversecaptcha.fun/v1/verify/http?utm_source=zero.xyz
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-20
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/proofwire-http-url-verification-1b2ed2fc
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_tw-x_qlohWU7Q7Y-2yZUB

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 proofwire-http-url-verification-1b2ed2fc
```

Example prompt: Can you verify that https://api.myservice.com/health is actually alive, check that it returns a 200, and give me signed proof I can use to confirm the check happened?

## When to prefer this

Use this endpoint when you need cryptographically signed, falsifiable proof that a URL was alive at a specific moment — not just a simple ping. It is the right choice when an AI agent needs to close the loop on its own work (e.g., confirming a deployed resource is reachable), when the redirect chain matters, when TLS health must be confirmed, or when a downstream party needs an auditable receipt. Prefer it over generic uptime checkers when non-repudiation or agent self-verification is required.

## Known failure modes

- URL is unreachable or times out — verdict 'fail' with reason describing the network error
- TLS certificate invalid or expired — evidence shows tls.valid false
- Unexpected HTTP status code when expect_status is set — verdict 'fail' with status mismatch reason
- Malformed or non-URI input URL — likely 400 bad request
- Payment not included or insufficient — 402 Payment Required response before verification occurs

## How this service works

Close the loop on your own work with one paid call that returns a verdict plus Ed25519-signed, falsifiable evidence (verify signatures with GET /v1/keys). GET /v1/verify/http checks a URL is alive (redirect chain, TLS, latency, body hash). GET /v1/verify/dns resolves records and parses SPF/DMARC/DKIM. Email: POST /v1/verify/email/inbox issues a seed address; send mail to it, then GET /v1/verify/email?inbox=&token= returns delivery plus SPF/DKIM/DMARC alignment and raw headers (polls inside the paid window are free). Webhooks: POST /v1/verify/webhook arms a tripwire URL; register it upstream, then poll GET /v1/verify/webhook/{id}?token= for free. GET /v1/verify/page renders a page in a real browser, asserts a selector/text, and returns a screenshot URL. Failed work is never settled.

## Output

A JSON object containing a verdict ('pass' or 'fail'), a human-readable reason string, evidence object (TLS validity, final URL, final HTTP status, redirect chain array, optional body hash), and an Ed25519 signature object for cryptographic verification of the result.

## 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"
   ],
   "properties": {
    "type": {
     "const": "http"
    },
    "method": {
     "const": "GET"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "url"
     ],
     "properties": {
      "url": {
       "type": "string",
       "format": "uri"
      },
      "include_hash": {
       "type": "string"
      },
      "expect_status": {
       "type": "string"
      }
     }
    }
   }
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "reason": "status 200",
  "verdict": "pass",
  "evidence": {
   "tls": {
    "valid": true
   },
   "final_url": "https://example.com/",
   "final_status": 200,
   "redirect_chain": []
  },
  "signature": {
   "alg": "Ed25519"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/proofwire-http-url-verification-1b2ed2fc/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from verify.reversecaptcha.fun](https://www.zero.xyz/host/verify.reversecaptcha.fun/llms.txt)
