fabtally-com Attest API

The Attest API from fabtally-com — 1 operation(s) for attest.

Operations 1

POST /agent/v1/attest Attest — signed point-in-time URL observation (paid, $0.01 USDC on Base) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/fabtally-com:fabtally-com-attest-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

fabtally-com-attest-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: FabTally Attest API
  version: 0.2.0
  description: 'Pay-per-call utilities for AI agents: slicer-accurate FDM 3D-printing quotes and signed point-in-time URL attestations. Settlement via x402 (USDC on Base).'
  x-guidance: 'Two paid endpoints, both x402 (USDC on Base). POST /agent/v1/quote takes a multipart body (file=STL/3MF/STEP, plus optional material and quantity) and returns print time, filament grams and a priced quote ($0.005). POST /agent/v1/attest takes JSON {url, check, needle?} and returns an ed25519-signed record of what the URL returned ($0.01). GET /agent/overview and GET /agent/v1/attest/schema are free discovery docs. Each paid call responds 402 with an x402 `accepts` challenge; pay and retry to receive the result. Bring your own pricing: POST /agent/v1/quote accepts optional material_cost_per_kg, machine_rate_per_hour, setup_fee, margin, markup_percent, minimum_price and currency — omit for hobbyist defaults, pass your own for business economics (config is free; call price unchanged). The quote echoes a `pricing_basis` object of default-vs-custom values.'
  contact:
    email: hello@fabtally.com
servers:
- url: https://fabtally.com
tags:
- name: Attest
paths:
  /agent/v1/attest:
    post:
      operationId: attest
      summary: Attest — signed point-in-time URL observation (paid, $0.01 USDC on Base)
      tags:
      - Attest
      description: Independent point-in-time observation of a public URL, signed with ed25519. Fetches the URL from a neutral third-party host and returns HTTP status, final URL after redirects, sha256 of the exact bytes received, size, and cache headers — plus your chosen check (exists / contains a string / content hash). Useful when an agent needs a durable, verifiable record that a page said something at a specific moment.
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.010000'
        protocols:
        - x402:
            scheme: exact
            network: eip155:8453
            asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
            maxAmountRequired: '10000'
            payTo: '0xccB5d25C698FdfdaA7B21d54088774cF512A90e3'
            resource: https://fabtally.com/agent/v1/attest
            facilitator: https://facilitator.payai.network
            maxTimeoutSeconds: 60
      requestBody:
        required: true
        content:
          application/json:
            schema:
              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:
                  type: string
                  enum:
                  - exists
                  - contains
                  - hash
                  description: 'What to assert: "exists", "contains" (needs needle), or "hash".'
                needle:
                  type: string
                  description: Substring to look for when check="contains". 1024 chars max.
            example:
              url: https://example.com/pricing
              check: contains
              needle: $49/mo
      responses:
        '200':
          description: Signed attestation
          content:
            application/json:
              schema:
                type: object
                properties:
                  url:
                    type: string
                    description: The URL as requested (normalized).
                  fetchedAt:
                    type: string
                    format: date-time
                    description: UTC ISO-8601 timestamp of the observation.
                  check:
                    type: string
                    enum:
                    - exists
                    - contains
                    - hash
                  needle:
                    type:
                    - string
                    - 'null'
                  httpStatus:
                    type:
                    - integer
                    - 'null'
                    description: Status of the final hop; null if the fetch failed.
                  finalUrl:
                    type:
                    - string
                    - 'null'
                    description: URL after following redirects.
                  redirects:
                    type: array
                    description: Every redirect hop taken, in order.
                    items:
                      type: object
                      properties:
                        from:
                          type: string
                        status:
                          type: integer
                        to:
                          type: string
                  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.
                  bodyBytes:
                    type:
                    - integer
                    - 'null'
                  headersSubset:
                    type: object
                    properties:
                      content-type:
                        type:
                        - string
                        - 'null'
                      last-modified:
                        type:
                        - string
                        - 'null'
                      etag:
                        type:
                        - string
                        - 'null'
                  error:
                    type:
                    - object
                    - 'null'
                    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.
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                  attestor:
                    type: string
                    enum:
                    - attest.fabtally.com/v0
                  disclaimer:
                    type: string
                    enum:
                    - point-in-time observation, not a legal attestation
                  signature:
                    type: object
                    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.
                    properties:
                      alg:
                        type: string
                      keyId:
                        type: string
                      publicKeySpkiB64:
                        type: string
                      value:
                        type: string
                        description: base64 signature
                      canonicalization:
                        type: string
                example:
                  url: https://example.com/pricing
                  fetchedAt: '2026-07-30T19:05:00.000Z'
                  check: contains
                  needle: $49/mo
                  httpStatus: 200
                  finalUrl: https://example.com/pricing
                  redirects: []
                  result: true
                  sha256: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
                  bodyBytes: 18422
                  headersSubset:
                    content-type: text/html; charset=utf-8
                    last-modified: null
                    etag: W/"47f0-x"
                  error: null
                  attestor: attest.fabtally.com/v0
                  disclaimer: point-in-time observation, not a legal attestation
                  signature:
                    alg: ed25519
                    keyId: …
                    publicKeySpkiB64: …
                    value: …
                    canonicalization: …
        '402':
          description: Payment Required