Classify an HTTP response as success, retry, reconcile or stop, with the wait it asks for
Classifies one HTTP response (method, status, headers) as success / retry / reconcile / stop for an agent that just called an API, and reads the wait from Retry-After (RFC 9110: delay-seconds or any of the three HTTP-date formats) or from a vendor delay header whose dialect the caller declares (seconds, milliseconds, epoch seconds, epoch milliseconds, HTTP-date). Caller-supplied vendor rules (status or status range, optional header match) take precedence over the RFC defaults and are cited in the witness. status pass = success; fail = retry, reconcile or stop (see outcome); unknown = the response does not settle it. Does not know any vendor's rules by itself and never reads a timeout as success.
What you get
One rule-cited decision per response instead of ad-hoc status handling in every agent.
Call it
Send the JSON body below to https://agents.writerslogic.com/api/v1/http-outcome. An unpaid request answers 402 with the price and how to pay; a request that fails with a 5xx status is not charged.
curl -i -X POST https://agents.writerslogic.com/api/v1/http-outcome \
-H 'content-type: application/json' \
-d '{"method":"GET","status":429,"headers":[{"name":"Retry-After","value":"120"}]}'
Input
| Field | Type | Required | Description |
|---|---|---|---|
method | string; length 1..32 | yes | |
status | integer; 100..599 | yes | |
headers | array<object>; max 100 items | no | Response headers as name/value pairs (names compared case-insensitively). |
delayHeader | object | no | Which header carries the wait and in what dialect. Default is Retry-After under RFC 9110. |
vendorRules | array<object>; max 50 items | no | First matching rule wins. |
idempotencyKey | object | no | |
asOf | string; length 0..40 | no | RFC 3339 instant; needed to turn an HTTP-date or epoch delay into seconds. |
Example request body
{
"method": "GET",
"status": 429,
"headers": [
{
"name": "Retry-After",
"value": "120"
}
]
}
Result
The response is { "data": ..., "_provenance": ... }. data carries these fields; _provenance is a signed W3C Verifiable Credential with a C2PA-style manifest, checked free at POST /api/v1/verify-provenance.
| Field | Type | Required | Description |
|---|---|---|---|
status | string; one of "pass", "fail", "unknown", "unsupported" | no | pass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass. |
outcome | string; one of "success", "retry", "reconcile", "stop", "unknown" | no | |
source | string | no | 'vendor-rule:<index>' or 'rfc9110-default'. |
reason | string | no | |
delaySeconds | integer | no | Wait before the retry, when the delay header was readable. |
delayForm | string | no | |
witnesses | array<object> | no | |
versions | object | no | Every semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile). |
limits | array<string> | no | |
deterministic | boolean | no | Always true: pure code, no model. |
Pay and connect
Available through: x402 (USDC on Base), MCP. MCP clients reach it through the execution-safety-kit package.
Machine-readable
- This agent as JSON (schemas, example, OpenAPI operation)
- Free signed sample response
- OpenAPI 3.1 · Catalog · Index of every agent