# CedarProof HTTP Response Diagnostics

> CedarProof HTTP Response Diagnostics is a paid API for AI agents from cedarproof-diagnostics.cedarproof-lab.workers.dev, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-16).

Classifies an HTTP/JSON response as success, failure, partial, or unknown using fixed deterministic rules based on HTTP status and response body signals.

## Facts

- Endpoint: POST https://cedarproof-diagnostics.cedarproof-lab.workers.dev/v1/diagnose?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-16
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/cedarproof-http-response-diagnostics-7aa5cb2c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_i4qzJARgPzdMp2nZEl1nU

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 cedarproof-http-response-diagnostics-7aa5cb2c -d '<json body>'
```

Example prompt: Classify this API response for me — the HTTP status was 200, the body snippet is '{"status":"0","message":"NOTOK","result":"Max rate limit reached"}', use the etherscan profile, and use request ID a1b2c3d4-e5f6-4789-ab01-23456789cdef.

## When to prefer this

Choose this endpoint when you need deterministic, rule-based classification of HTTP/JSON responses for automated pipelines — especially when working with Etherscan, JSON-RPC, or GraphQL APIs where a 200 status does not guarantee application-level success. Prefer it over ad-hoc LLM-based response parsing when auditability, fixed cost, and reproducible reason codes matter. Not suitable when root-cause analysis, repair suggestions, or AI inference about business-level success are needed.

## Known failure modes

- Outer input validation failure (missing required fields, non-integer http_status like 200.0) returns a 4xx without charging
- Body snippet exceeding 16384 bytes is rejected as invalid input
- Malformed, empty, or over-depth JSON inside the body field may produce a paid 'unknown' verdict rather than an error
- Reusing a request_id for a new purchase may cause recovery behavior rather than a fresh classification
- HTTP 4xx/5xx statuses are classified from status code alone without parsing the body snippet
- Non-UUID or incorrectly formatted request_id values are rejected

## How this service works

Fixed-rule HTTP/JSON response classification: success, failure, partial or unknown. Public non-sensitive snippets only. No root-cause analysis, repair, AI inference or business-success guarantee. Unknown is a delivered paid result.

## Output

Returns a JSON object containing a normalized request_id, the engine version string, a verdict enum (success, failure, partial, or unknown), and an array of one or more reason_codes from a fixed vocabulary (e.g. HTTP_ERROR_STATUS, JSON_RPC_ERROR, GRAPHQL_DATA_WITH_ERRORS, EXPLICIT_TRUE_FLAG). No raw snippet text or upstream exception messages are returned. An 'unknown' verdict is a valid paid result when no recognized signal is found.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "body",
  "profile",
  "request_id",
  "http_status"
 ],
 "properties": {
  "body": {
   "type": "string",
   "description": "Public, non-sensitive response snippet; at most 16384 UTF-8 bytes after JSON string decoding. This is a byte limit, not a character count. Supply the response text as a JSON string, not an object. Empty, malformed, duplicate-key, nonfinite or over-depth JSON inside this field can produce a paid unknown result; it is not rejected as invalid outer input. Do not send credentials, secrets or personal data. HTTP 4xx/5xx is classified from status without examining this snippet."
  },
  "profile": {
   "enum": [
    "generic",
    "etherscan"
   ],
   "type": "string",
   "description": "Choose from trusted knowledge of the response source. generic checks narrowly recognized top-level boolean/status, JSON-RPC and GraphQL signals. etherscan additionally recognizes string status=\"0\", message=\"NOTOK\" and a nonempty string result. The payload does not authenticate its provider."
  },
  "request_id": {
   "type": "string",
   "description": "Generate a fresh UUIDv4 for each intended purchase. This fixed synthetic UUID is for unsigned examples/probes only; do not reuse it for a real purchase. The server normalizes hex to lowercase. Recovery reuses the original ID and identical input/proof."
  },
  "http_status": {
   "type": "integer",
   "description": "Observed HTTP status. Use a JSON integer token: 200 is accepted, while 200.0 and 2e2 are rejected. OpenAPI integer alone does not express this lexical restriction."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "request_id",
  "engine",
  "verdict",
  "reason_codes"
 ],
 "properties": {
  "engine": {
   "enum": [
    "cedarproof-http-v1-js1"
   ],
   "type": "string",
   "example": "cedarproof-http-v1-js1"
  },
  "verdict": {
   "enum": [
    "success",
    "failure",
    "partial",
    "unknown"
   ],
   "type": "string",
   "example": "success",
   "description": "success means a recognized success signal; failure means a recognized HTTP/application failure; partial means a GraphQL-shaped object has data plus errors without another explicit failure signal; unknown means no supported conclusion. These are fixed rules, not root-cause analysis or proof of business success. unknown is a delivered result at the same price."
  },
  "request_id": {
   "type": "string",
   "format": "uuid",
   "example": "94f1a6cd-73de-4d8a-9c26-24b15db04f5b",
   "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$",
   "description": "The submitted UUID normalized to lowercase."
  },
  "reason_codes": {
   "type": "array",
   "items": {
    "enum": [
     "HTTP_ERROR_STATUS",
     "HTTP_NON_2XX_STATUS",
     "EMPTY_BODY",
     "INVALID_JSON",
     "NON_OBJECT_JSON",
     "EXPLICIT_FALSE_FLAG",
     "EXPLICIT_TRUE_FLAG",
     "EXPLICIT_FAILURE_STATUS",
     "EXPLICIT_SUCCESS_STATUS",
     "JSON_RPC_ERROR",
     "JSON_RPC_RESULT",
     "MALFORMED_JSON_RPC_ENVELOPE",
     "GRAPHQL_ERRORS",
     "GRAPHQL_DATA_WITH_ERRORS",
     "CONFLICTING_SUCCESS_FAILURE_SIGNALS",
     "NO_RECOGNIZED_APPLICATION_SIGNAL",
     "ETHERSCAN_NOTOK"
    ],
    "type": "string"
   },
   "example": [
    "EXPLICIT_TRUE_FLAG"
   ],
   "minItems": 1,
   "description": "Fixed code vocabulary only. No snippet text or upstream exception text is returned."
  }
 },
 "additionalProperties": false
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/cedarproof-http-response-diagnostics-7aa5cb2c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from cedarproof-diagnostics.cedarproof-lab.workers.dev](https://www.zero.xyz/host/cedarproof-diagnostics.cedarproof-lab.workers.dev/llms.txt)
