# Web Probe HTTP Timing

> Web Probe HTTP Timing is a paid API for AI agents from web-probe.x402tookit.com, paid per call via x402, $0.02/call, status unknown (last checked 2026-11-02).

Measures detailed HTTP timing metrics (DNS, connect, TLS, TTFB, total) for a GET request to a given URL, plus status, content type, and response size.

## Facts

- Endpoint: GET https://web-probe.x402tookit.com/http-timing?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/web-probe-http-timing-2afc4248
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ZKUL6gO9g6k0nJ2oWeL9X

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 web-probe-http-timing-2afc4248
```

Example prompt: Can you probe https://api.example.com and tell me how long DNS resolution, TLS handshake, and time-to-first-byte are taking, plus the HTTP status and content type?

## When to prefer this

Use this endpoint when you need granular HTTP timing breakdown (DNS, connect, TLS, TTFB, total) for a single URL rather than just a reachability check. Prefer it over redirect-tracing or metadata-extraction endpoints when performance measurement is the goal. Ideal for diagnosing slow APIs, monitoring CDN performance, baselining web endpoints before/after deployments, or detecting degraded third-party services.

## Known failure modes

- URL is unreachable or times out — returns null timing fields and an error verdict
- Invalid or non-HTTPS URL provided — schema requires a full https URL, request may be rejected
- DNS resolution failure — dnsMs may be null with a failure reason in the reasons array
- TLS handshake failure for HTTPS endpoints — tlsMs null, verdict indicates TLS error
- Non-GET-accessible resource (e.g. requires auth) — returns HTTP 401/403 status with no body timing
- Network-level block from the probe host — returns null fields or incomplete timing data

## How this service works

Time one GET to a URL: DNS, connect, TLS, first byte and total ms, plus status, content type and size read.

## Output

Returns a structured object containing timing measurements in milliseconds (dnsMs, connectMs, tlsMs, ttfbMs, totalMs), HTTP status code, content type, bytes read, HTTP version, server header, a human-readable summary, a verdict on whether the endpoint is healthy or degraded, reasons for any degradation, and metadata such as asOf timestamp and disclaimer.

## 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": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "url"
     ],
     "properties": {
      "url": {
       "type": "string",
       "description": "Full https URL, no credentials"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "url": {
       "type": [
        "null",
        "string"
       ]
      },
      "asOf": {
       "type": [
        "null",
        "string"
       ]
      },
      "dnsMs": {
       "type": [
        "null",
        "number"
       ]
      },
      "tlsMs": {
       "type": [
        "null",
        "number"
       ]
      },
      "server": {
       "type": [
        "null",
        "string"
       ]
      },
      "source": {
       "type": [
        "null",
        "string"
       ]
      },
      "ttfbMs": {
       "type": [
        "null",
        "number"
       ]
      },
      "reasons": {
       "type": [
        "array",
        "null"
       ],
       "items": {
        "type": "string"
       }
      },
      "summary": {
       "type": [
        "null",
        "string"
       ]
      },
      "totalMs": {
       "type": [
        "null",
        "number"
       ]
      },
      "verdict": {
       "type": [
        "null",
        "string"
       ]
      },
      "degraded": {
       "type": [
        "boolean",
        "null"
       ]
      },
      "location": {},
      "bytesRead": {
       "type": [
        "null",
        "number"
       ]
      },
      "connectMs": {
       "type": [
        "null",
        "number"
       ]
      },
      "truncated": {
       "type": [
        "boolean",
        "null"
       ]
      },
      "disclaimer": {
       "type": [
        "null",
        "string"
       ]
      },
      "httpStatus": {
       "type": [
        "null",
        "number"
       ]
      },
      "notChecked": {
       "type": [
        "array",
        "null"
       ],
       "items": {
        "type": "s
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/web-probe-http-timing-2afc4248/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from web-probe.x402tookit.com](https://www.zero.xyz/host/web-probe.x402tookit.com/llms.txt)
