{"uid":"cap_k3iSQPhHHMNgAFfDBQ5-8","slug":"fabtally-web-attestation-e8ae4418","name":"FabTally Web Attestation","description":"FabTally gives instant, accurate quotes for digital fabrication jobs. Launching soon.","url":"https://fabtally.com/agent/v1/attest","method":"POST","headers":{},"bodySchema":{"type":"object","required":["url","check"],"properties":{"url":{"type":"string","description":"Absolute http(s) URL to observe. Must resolve to a public IP; private/loopback/link-local ranges are refused at every redirect hop."},"check":{"enum":["exists","contains","hash"],"type":"string","description":"What to assert: \"exists\", \"contains\" (needs needle), or \"hash\"."},"needle":{"type":"string","description":"Substring to look for when check=\"contains\". 1024 chars max."}}},"responseSchema":{"type":"object","example":{"url":"https://example.com/pricing","check":"contains","error":null,"needle":"$49/mo","result":true,"sha256":"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08","attestor":"attest.fabtally.com/v0","finalUrl":"https://example.com/pricing","bodyBytes":18422,"fetchedAt":"2026-07-30T19:05:00.000Z","redirects":[],"signature":{"alg":"ed25519","keyId":"…","value":"…","canonicalization":"…","publicKeySpkiB64":"…"},"disclaimer":"point-in-time observation, not a legal attestation","httpStatus":200,"headersSubset":{"etag":"W/\"47f0-x\"","content-type":"text/html; charset=utf-8","last-modified":null}},"properties":{"url":{"type":"string","description":"The URL as requested (normalized)."},"check":{"enum":["exists","contains","hash"],"type":"string"},"error":{"type":["object","null"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"description":"Set when the observation could not be completed as a 2xx fetch (DNS failure, timeout, blocked address, non-2xx status, oversized body). The attestation is still returned and still signed — 'the URL did not respond at time T' is itself an observation."},"needle":{"type":["string","null"]},"result":{"type":["boolean","string","null"],"description":"Boolean for exists/contains; sha256 hex string for hash; null if unobtainable."},"sha256":{"type":["string","null"],"description":"sha256 (hex) of the exact response bytes received."},"attestor":{"enum":["attest.fabtally.com/v0"],"type":"string"},"finalUrl":{"type":["string","null"],"description":"URL after following redirects."},"bodyBytes":{"type":["integer","null"]},"fetchedAt":{"type":"string","format":"date-time","description":"UTC ISO-8601 timestamp of the observation."},"redirects":{"type":"array","items":{"type":"object","properties":{"to":{"type":"string"},"from":{"type":"string"},"status":{"type":"integer"}}},"description":"Every redirect hop taken, in order."},"signature":{"type":"object","properties":{"alg":{"type":"string"},"keyId":{"type":"string"},"value":{"type":"string","description":"base64 signature"},"canonicalization":{"type":"string"},"publicKeySpkiB64":{"type":"string"}},"description":"ed25519 signature over the canonical JSON of this object with the `signature` field removed and keys serialized in the documented order. Verify with the public key from GET /agent/v1/attest/schema."},"disclaimer":{"enum":["point-in-time observation, not a legal attestation"],"type":"string"},"httpStatus":{"type":["integer","null"],"description":"Status of the final hop; null if the fetch failed."},"headersSubset":{"type":"object","properties":{"etag":{"type":["string","null"]},"content-type":{"type":["string","null"]},"last-modified":{"type":["string","null"]}}}}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.01","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","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_CaB011x9VFbUHkOrR-P_E","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.01","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Fetches a public URL and returns a signed, timestamped attestation asserting whether the page exists, contains a specific substring, or matches a content hash","exampleAgentPrompt":"Check whether the page at https://example.com/pricing still contains the text '$49/mo' and give me a cryptographically signed attestation I can keep as proof of what it said today.","exampleUseCases":[{"title":"Price monitoring with signed proof","prompt":"Verify that https://acmesupplier.com/wholesale-pricing contains the text '£12.50 per unit' and give me a signed, timestamped attestation I can show my procurement team as evidence of the price at this moment."},{"title":"Confirming a public document is live","prompt":"Check whether https://docs.mycompany.com/terms-of-service is publicly reachable right now — I need a signed attestation confirming it returned a 200 OK so I can include it in a compliance report."},{"title":"Content integrity hash for audit trail","prompt":"Fetch https://regulations.example.gov/rule-42 and return a SHA-256 hash of the page body with a signed timestamp — I want to prove later that the content hasn't changed since today."}],"resultDescription":"A signed JSON object containing: the normalized URL, the check type performed, the boolean or hash result, a SHA-256 of the response body, the HTTP status code, the final URL after redirects, the full redirect chain, the timestamp of observation, a subset of response headers, and an Ed25519 cryptographic signature from the attestor (attest.fabtally.com/v0) with key ID and public key — plus an error object if the fetch failed, which is itself attested and signed.","failureModes":["DNS failure for the target URL — error object returned but attestation still signed","Target URL times out — error returned with signed timestamp","URL resolves to a private/loopback/link-local IP — refused with blocked address error","Non-2xx HTTP response from target — error returned, observation still attested","Response body exceeds size limit — oversized body error","needle not provided when check=contains — likely validation error","Payment not included or insufficient — 402 Payment Required before attestation runs","Target URL redirects to a private IP at any hop — refused"],"whenToPreferThis":"Use this endpoint when you need a cryptographically verifiable, tamper-evident, point-in-time record that a public URL existed, contained specific text, or had a particular content hash — particularly for compliance, audit trails, competitive intelligence snapshots, or dispute resolution. It is distinct from simple HTTP HEAD checks because it returns an Ed25519-signed attestation with a full redirect chain and body hash, not just a status code. Prefer it over screenshot services when you need machine-readable signed proof rather than visual evidence.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T06:42:34.877Z","isFirstParty":false}