{"uid":"cap_i4qzJARgPzdMp2nZEl1nU","slug":"cedarproof-http-response-diagnostics-7aa5cb2c","name":"CedarProof HTTP Response Diagnostics","description":"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.","url":"https://cedarproof-diagnostics.cedarproof-lab.workers.dev/v1/diagnose?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"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."}}},"responseSchema":{"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},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.01","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"registry","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.01/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm__BJWtnw3V8hFhLHmckWpv","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.01","costPer":"request","priority":0,"asset":null,"unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Classifies an HTTP/JSON response as success, failure, partial, or unknown using fixed deterministic rules based on HTTP status and response body signals.","exampleAgentPrompt":"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.","exampleUseCases":[{"title":"Etherscan API failure detection","prompt":"I got a 200 back from Etherscan but my app thinks something went wrong — can you run a diagnosis on this response body '{\"status\":\"0\",\"message\":\"NOTOK\",\"result\":\"\"}' with HTTP status 200 using the etherscan profile and request ID f47ac10b-58cc-4372-a567-0e02b2c3d479?"},{"title":"JSON-RPC error envelope detection","prompt":"Check whether this JSON-RPC response body '{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32600,\"message\":\"Invalid Request\"},\"id\":1}' with HTTP status 200 is actually a failure — use the generic profile and request ID 550e8400-e29b-41d4-a716-446655440000."},{"title":"GraphQL partial response classification","prompt":"This GraphQL call came back with HTTP 200 and body '{\"data\":{\"user\":null},\"errors\":[{\"message\":\"Not authorized\"}]}' — can you diagnose whether that's a success, failure, or partial result? Use generic profile and request ID 6ba7b810-9dad-41d1-80b4-00c04fd430c8."}],"resultDescription":"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.","failureModes":["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"],"whenToPreferThis":"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.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-16T06:32:02.537Z","isFirstParty":false,"canonicalSlug":"cedarproof-http-response-diagnostics-7aa5cb2c"}