AffixIO Merkle API

The Merkle API from AffixIO — 6 operation(s) for merkle.

Operations 6

POST /v1/merkle/audit Audit a receipt #
POST /v1/merkle/audit/batch Audit receipts in batch #
GET /v1/merkle/leaves List Merkle audit leaves #
GET /v1/merkle/proof/{digest} Get Merkle proof for digest #
GET /v1/merkle/root Get Merkle audit root #
POST /v1/merkle/verify-proof Verify a Merkle proof #

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/affix-io-com:affix-io-com-merkle-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

affix-io-com-merkle-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: AffixIO Verification Merkle API
  version: 1.8.0
  description: Public /v1 and /api surface of the AffixIO verification API (ML-DSA-65 signed yes/no results, Noir/Barretenberg circuits, Merkle audit, spent registry, gates, Agent Trust). Generated from the live MCP endpoint catalogue and the Postman collection at https://api.affix-io.com/openapi.postman.json. Account, key, OAuth, Hub and webhook administration are intentionally omitted. A successful verify spends the proof digest; presenting it again returns 409 double_spend_detected. Send Idempotency-Key on prove/verify to retry safely.
  contact:
    name: AffixIO
    url: https://www.affix-io.com/contact/
servers:
- url: https://api.affix-io.com
tags:
- name: Merkle
paths:
  /v1/merkle/audit:
    post:
      operationId: affix_merkle_audit
      summary: Audit a receipt
      description: Audit a single verification receipt against the Merkle audit tree (POST /v1/merkle/audit).
      security:
      - ApiKey: []
      - Bearer: []
      responses:
        '200':
          description: Success (JSON).
        '400':
          description: Invalid request.
        '401':
          description: API key missing or not accepted.
        '409':
          description: Conflict, e.g. double_spend_detected on a spent proof.
        '429':
          description: Rate limited; see Retry-After.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
            example:
              digest: '{{proofDigest}}'
              circuit_id: '{{circuitId}}'
              event: verified
      tags:
      - Merkle
  /v1/merkle/audit/batch:
    post:
      operationId: affix_merkle_audit_batch
      summary: Audit receipts in batch
      description: Audit multiple verification receipts against the Merkle audit tree (POST /v1/merkle/audit/batch).
      security:
      - ApiKey: []
      - Bearer: []
      responses:
        '200':
          description: Success (JSON).
        '400':
          description: Invalid request.
        '401':
          description: API key missing or not accepted.
        '409':
          description: Conflict, e.g. double_spend_detected on a spent proof.
        '429':
          description: Rate limited; see Retry-After.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
            example:
              entries:
              - digest: '{{proofDigest}}'
                circuit_id: '{{circuitId}}'
                event: verified
      tags:
      - Merkle
  /v1/merkle/leaves:
    get:
      operationId: affix_merkle_leaves
      summary: List Merkle audit leaves
      description: List leaves of the Merkle audit tree. Supports pagination query parameters.
      security:
      - ApiKey: []
      - Bearer: []
      responses:
        '200':
          description: Success (JSON).
        '400':
          description: Invalid request.
        '401':
          description: API key missing or not accepted.
        '409':
          description: Conflict, e.g. double_spend_detected on a spent proof.
        '429':
          description: Rate limited; see Retry-After.
      tags:
      - Merkle
  /v1/merkle/proof/{digest}:
    get:
      operationId: affix_merkle_proof
      summary: Get Merkle proof for digest
      description: Get the Merkle inclusion proof for a specific receipt digest.
      security:
      - ApiKey: []
      - Bearer: []
      responses:
        '200':
          description: Success (JSON).
        '400':
          description: Invalid request.
        '401':
          description: API key missing or not accepted.
        '409':
          description: Conflict, e.g. double_spend_detected on a spent proof.
        '429':
          description: Rate limited; see Retry-After.
      parameters:
      - name: digest
        in: path
        required: true
        schema:
          type: string
      tags:
      - Merkle
  /v1/merkle/root:
    get:
      operationId: affix_merkle_root
      summary: Get Merkle audit root
      description: Get the current Merkle audit-tree root for the account's proof receipts.
      security:
      - ApiKey: []
      - Bearer: []
      responses:
        '200':
          description: Success (JSON).
        '400':
          description: Invalid request.
        '401':
          description: API key missing or not accepted.
        '409':
          description: Conflict, e.g. double_spend_detected on a spent proof.
        '429':
          description: Rate limited; see Retry-After.
      tags:
      - Merkle
  /v1/merkle/verify-proof:
    post:
      operationId: affix_merkle_verify_proof
      summary: Verify a Merkle proof
      description: Verify a Merkle inclusion proof against the audit root (POST /v1/merkle/verify-proof).
      security:
      - ApiKey: []
      - Bearer: []
      responses:
        '200':
          description: Success (JSON).
        '400':
          description: Invalid request.
        '401':
          description: API key missing or not accepted.
        '409':
          description: Conflict, e.g. double_spend_detected on a spent proof.
        '429':
          description: Rate limited; see Retry-After.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
            example:
              digest: '{{proofDigest}}'
              leaf_hash: ''
              siblings: []
              index: 0
              root: ''
      tags:
      - Merkle
components:
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: X-API-Key
    Bearer:
      type: http
      scheme: bearer