{
  "components": {
    "schemas": {
      "X402Accept": {
        "properties": {
          "amount": {
            "description": "atomic units (x402 v2)",
            "pattern": "^[0-9]+$",
            "type": "string"
          },
          "asset": {
            "const": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
            "description": "USDC contract, 6 decimals",
            "type": "string"
          },
          "extra": {
            "description": "EIP-712 domain of the asset",
            "properties": {
              "name": {
                "type": "string"
              },
              "version": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "maxAmountRequired": {
            "description": "atomic units (x402 v1 name for the same figure)",
            "pattern": "^[0-9]+$",
            "type": "string"
          },
          "maxTimeoutSeconds": {
            "type": "integer"
          },
          "network": {
            "const": "eip155:8453",
            "description": "CAIP-2",
            "type": "string"
          },
          "payTo": {
            "const": "0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31",
            "type": "string"
          },
          "scheme": {
            "const": "exact",
            "type": "string"
          }
        },
        "required": [
          "scheme",
          "network",
          "asset",
          "payTo",
          "amount",
          "maxTimeoutSeconds"
        ],
        "type": "object"
      },
      "X402PaymentRequired": {
        "properties": {
          "accepts": {
            "items": {
              "$ref": "#/components/schemas/X402Accept"
            },
            "minItems": 1,
            "type": "array"
          },
          "error": {
            "type": "string"
          },
          "extensions": {
            "description": "extensions.bazaar carries info.input (a sample request) and schema (input/output JSON Schema). extensions['offer-receipt'].info.offers[] carries one server-signed offer per accepts[] entry, format 'jws' \u2014 a compact EdDSA JWS whose payload is the offer (x402 Offer & Receipt extension \u00a74.1). It is present only when the edge holds its signing key; csoai.offer_receipt.signed says which, and why, on every 402.",
            "properties": {
              "offer-receipt": {
                "properties": {
                  "info": {
                    "properties": {
                      "offers": {
                        "items": {
                          "properties": {
                            "acceptIndex": {
                              "description": "unsigned convenience field; match offers to accepts[] by payload fields, never by index (\u00a74.1.1)",
                              "type": "integer"
                            },
                            "format": {
                              "const": "jws",
                              "type": "string"
                            },
                            "signature": {
                              "description": "JWS compact serialization containing the offer payload",
                              "type": "string"
                            }
                          },
                          "required": [
                            "format",
                            "signature"
                          ],
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "resource": {
            "properties": {
              "description": {
                "type": "string"
              },
              "mimeType": {
                "type": "string"
              },
              "serviceName": {
                "type": "string"
              },
              "tags": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "url": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "x402Version": {
            "const": 2,
            "type": "integer"
          }
        },
        "required": [
          "x402Version",
          "accepts"
        ],
        "type": "object"
      }
    },
    "securitySchemes": {
      "ed25519": {
        "description": "Ed25519 signature of canonical body, under did:web:csoai.org#card-attestation-1",
        "in": "header",
        "name": "X-CSOAI-Signed-Card",
        "type": "apiKey"
      }
    }
  },
  "info": {
    "contact": {
      "email": "nicholas@csoai.org",
      "name": "CSOAI Ltd",
      "url": "https://councilof.ai/"
    },
    "description": "Verification is free forever. Agents pay per artefact: issuance, assembly, cadence \u2014 never a grade. 22 axes measured \u00b7 14 model fleets \u00b7 3 public leader scores \u00b7 8 fact runs \u00b7 TIE is TIE \u00b7 not a certificate. Operations with security [] are free and unauthenticated. Operations with x-payment-info are x402 doors; an amount appears only inside a door's 402 challenge (documented as each door's 402 example).",
    "license": {
      "name": "CC-BY-4.0",
      "url": "https://creativecommons.org/licenses/by/4.0/"
    },
    "title": "Council of AI \u2014 Public API",
    "version": "0.2+c3712fcb2207",
    "x-guidance": "Free board: GET /api/gspc \u2014 quote totals.lid verbatim, never compose a count. Paid doors are the operations carrying x-payment-info: GET without payment answers HTTP 402 with the x402 v2 challenge (accepts[0]: scheme exact, network eip155:8453, USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, payTo 0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31); pay it and retry with the X-PAYMENT header. Required query parameters carry an example that reaches the 402. Free previews are named per door under x-csoai.free_preview. Catalog: https://councilof.ai/.well-known/x402.json and https://councilof.ai/api/x402. Verify is free: https://councilof.ai/gspc-verify. Every 402 carries a server-signed offer and every settled 200 a signed receipt, per the x402 Offer & Receipt extension (JWS/EdDSA, kid did:web:csoai.org#board-attestation-1, published at https://csoai.org/.well-known/did.json). Check either without trusting this document: POST it to /api/receipts/verify, or run scripts/verify_receipt.py, which reads did.json and contacts nobody. 22 axes measured \u00b7 14 model fleets \u00b7 3 public leader scores \u00b7 8 fact runs \u00b7 TIE is TIE \u00b7 not a certificate."
  },
  "openapi": "3.1.0",
  "paths": {
    "/api/a2a": {
      "get": {
        "operationId": "get__api_a2a",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* POST /api/a2a \u2014 the A2A v1.0 JSON-RPC binding that /.well-known/agent-card.json points at.\n *\n * WHY THIS EXISTS (2026-09-05, the a2aproject/A2A#2150 lane)\n * The agent card declared two `supportedI"
      },
      "post": {
        "operationId": "post__api_a2a",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* POST /api/a2a \u2014 the A2A v1.0 JSON-RPC binding that /.well-known/agent-card.json points at.\n *\n * WHY THIS EXISTS (2026-09-05, the a2aproject/A2A#2150 lane)\n * The agent card declared two `supportedI"
      }
    },
    "/api/action-jobs": {
      "get": {
        "operationId": "get__api_action-jobs",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* /api/action-jobs \u2014 bounded, durable action-intent ledger staging.\n *\n * This endpoint records reviewed intent and state reports. It never calls a\n * provider, starts a worker, writes GSPC, trains a "
      },
      "patch": {
        "operationId": "patch__api_action-jobs",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* /api/action-jobs \u2014 bounded, durable action-intent ledger staging.\n *\n * This endpoint records reviewed intent and state reports. It never calls a\n * provider, starts a worker, writes GSPC, trains a "
      },
      "post": {
        "operationId": "post__api_action-jobs",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* /api/action-jobs \u2014 bounded, durable action-intent ledger staging.\n *\n * This endpoint records reviewed intent and state reports. It never calls a\n * provider, starts a worker, writes GSPC, trains a "
      }
    },
    "/api/agentic-fix": {
      "get": {
        "operationId": "get__api_agentic-fix",
        "responses": {
          "503": {
            "content": {
              "application/json": {}
            },
            "description": "Unavailable \u2014 quarantined pre-release; no evidence is manufactured"
          }
        },
        "summary": "",
        "x-csoai-lifecycle": "QUARANTINED_PRE_RELEASE"
      },
      "post": {
        "operationId": "post__api_agentic-fix",
        "responses": {
          "503": {
            "content": {
              "application/json": {}
            },
            "description": "Unavailable \u2014 quarantined pre-release; no evidence is manufactured"
          }
        },
        "summary": "",
        "x-csoai-lifecycle": "QUARANTINED_PRE_RELEASE"
      }
    },
    "/api/art50/marking-evidence": {
      "get": {
        "description": "A signed card recording whether a machine-readable mark was detected in one named output, by named methods, at one time. Detection, never a conformity opinion. preview=1 is free unsigned. Paid signed card requires url (HTTP 402).",
        "operationId": "x402_art50_marking_evidence",
        "parameters": [
          {
            "description": "Public URL of the generative output to measure (\u2264 20 MiB); or POST the bytes",
            "example": "https://councilof.ai/og-image.png",
            "in": "query",
            "name": "url",
            "required": true,
            "schema": {
              "const": "https://councilof.ai/og-image.png",
              "type": "string"
            }
          },
          {
            "description": "1 = free unsigned measurement",
            "in": "query",
            "name": "preview",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "A signed card recording whether a machine-readable mark was detected in one named output, by named methods, at one time. Detection, never a conformity opinion.",
                  "type": "object"
                }
              }
            },
            "description": "A signed card recording whether a machine-readable mark was detected in one named output, by named methods, at one time. Detection, never a conformity opinion."
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "accepts": [
                    {
                      "amount": "25000000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "extra": {
                        "decimals": 6,
                        "name": "USD Coin",
                        "symbol": "USDC",
                        "version": "2"
                      },
                      "maxAmountRequired": "25000000",
                      "maxTimeoutSeconds": 300,
                      "network": "eip155:8453",
                      "payTo": "0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31",
                      "scheme": "exact"
                    }
                  ],
                  "error": "Payment required",
                  "extensions": {
                    "bazaar": {
                      "info": {
                        "input": {
                          "method": "GET",
                          "queryParams": {
                            "url": "https://councilof.ai/og-image.png"
                          },
                          "type": "http"
                        },
                        "output": {
                          "example": {
                            "payload": {
                              "checked": [
                                {
                                  "method": "c2pa.manifest-store",
                                  "result": "NOT_DETECTED"
                                }
                              ],
                              "kind": "csoai.art50.marking-evidence/0.1",
                              "statements": [
                                "marking not detected by method c2pa.manifest-store"
                              ]
                            },
                            "schema": "https://councilof.ai/schema/card-v0.json",
                            "sig_ed25519": "<hex or null>",
                            "surface": "art50.marking-evidence",
                            "unmeasured": [
                              "root_inclusion",
                              "watermark.synthid"
                            ]
                          },
                          "type": "json"
                        }
                      },
                      "schema": {
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "properties": {
                          "input": {
                            "additionalProperties": false,
                            "properties": {
                              "method": {
                                "enum": [
                                  "GET",
                                  "HEAD",
                                  "DELETE"
                                ],
                                "type": "string"
                              },
                              "queryParams": {
                                "properties": {
                                  "preview": {
                                    "description": "1 = free unsigned measurement",
                                    "type": "string"
                                  },
                                  "url": {
                                    "description": "Public URL of the generative output to measure (\u2264 20 MiB); or POST the bytes",
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "url"
                                ],
                                "type": "object"
                              },
                              "type": {
                                "const": "http",
                                "type": "string"
                              }
                            },
                            "required": [
                              "type",
                              "method"
                            ],
                            "type": "object"
                          },
                          "output": {
                            "properties": {
                              "example": {
                                "type": "object"
                              },
                              "type": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "type"
                            ],
                            "type": "object"
                          }
                        },
                        "required": [
                          "input"
                        ],
                        "type": "object"
                      }
                    }
                  },
                  "resource": {
                    "description": "A signed card recording whether a machine-readable mark was detected in one named output, by named methods, at one time. Detection, never a conformity opinion.",
                    "mimeType": "application/json",
                    "serviceName": "CSOAI Article 50 marking evidenc",
                    "tags": [
                      "article-50",
                      "c2pa",
                      "marking",
                      "measurement",
                      "x402"
                    ],
                    "url": "https://councilof.ai/api/art50/marking-evidence"
                  },
                  "x402Version": 2
                },
                "schema": {
                  "$ref": "#/components/schemas/X402PaymentRequired"
                }
              }
            },
            "description": "Payment required \u2014 the x402 v2 challenge. The same JSON is base64-encoded in the PAYMENT-REQUIRED response header. Pay accepts[0] (scheme exact, network eip155:8453, USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, payTo 0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31; amount in atomic units) and retry the same request with the X-PAYMENT header. Verification of the artefact stays free.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "description": "base64(JSON) of this challenge body",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "summary": "CSOAI Article 50 marking evidenc",
        "tags": [
          "x402",
          "assembly"
        ],
        "x-csoai": {
          "challenge": {
            "amount_source": "captured live 402 (challenges/art50_marking_evidence.json)",
            "captured": true,
            "payment_required_header_bytes": 7552
          },
          "door": "https://councilof.ai/api/art50/marking-evidence?url=https://councilof.ai/og-image.png",
          "free_preview": "https://councilof.ai/api/art50/marking-evidence?url=https://councilof.ai/og-image.png&preview=1",
          "paid_for": "assembly"
        },
        "x-payment-info": {
          "protocols": [
            "x402"
          ]
        }
      }
    },
    "/api/article50": {
      "get": {
        "operationId": "get__api_article50",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* POST /api/article50 \u2014 issues an Article 50 passport (free tier, HMAC-signed).\n * GET  /api/article50?verify=1&... \u2014 re-verifies a signature, statelessly.\n *\n * HONESTY OVER APPEARANCE (same discipli"
      },
      "post": {
        "operationId": "post__api_article50",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* POST /api/article50 \u2014 issues an Article 50 passport (free tier, HMAC-signed).\n * GET  /api/article50?verify=1&... \u2014 re-verifies a signature, statelessly.\n *\n * HONESTY OVER APPEARANCE (same discipli"
      }
    },
    "/api/assess": {
      "get": {
        "operationId": "get__api_assess",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* POST /api/assess \u2014 a deterministic, text-only EU AI Act screening helper.\n *\n * THE BRIDGE THIS CLOSES\n * The front end (/assess, AssessTool.tsx) has shipped for weeks pointing at\n * `https://api.cs"
      },
      "post": {
        "operationId": "post__api_assess",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* POST /api/assess \u2014 a deterministic, text-only EU AI Act screening helper.\n *\n * THE BRIDGE THIS CLOSES\n * The front end (/assess, AssessTool.tsx) has shipped for weeks pointing at\n * `https://api.cs"
      }
    },
    "/api/atlas": {
      "get": {
        "operationId": "get__api_atlas",
        "responses": {
          "503": {
            "content": {
              "application/json": {}
            },
            "description": "Unavailable \u2014 quarantined pre-release; no evidence is manufactured"
          }
        },
        "summary": "* atlas \u2014 retired until its response can be derived from current evidence.\n * @openapi-unavailable",
        "x-csoai-lifecycle": "QUARANTINED_PRE_RELEASE"
      },
      "post": {
        "operationId": "post__api_atlas",
        "responses": {
          "503": {
            "content": {
              "application/json": {}
            },
            "description": "Unavailable \u2014 quarantined pre-release; no evidence is manufactured"
          }
        },
        "summary": "* atlas \u2014 retired until its response can be derived from current evidence.\n * @openapi-unavailable",
        "x-csoai-lifecycle": "QUARANTINED_PRE_RELEASE"
      }
    },
    "/api/axis-register": {
      "get": {
        "operationId": "get__api_axis-register",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/axis-register \u2014 the GSPC axis register (canonical scored rows).\n *\n * Slot counts live in GET /api/gspc totals (public_count, measured_axes,\n * quotable_axes). This register lists the bundl"
      }
    },
    "/api/badge": {
      "get": {
        "operationId": "get__api_badge",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      }
    },
    "/api/bank-complete": {
      "get": {
        "operationId": "get__api_bank-complete",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* /api/bank-complete \u2014 evidence-derived reader for the bank \u00d7 chain \u00d7 stablecoin census.\n * Data is embedded at build time (zero-drift with public/interop/bank-registry.json)."
      }
    },
    "/api/benchmark-quality": {
      "get": {
        "operationId": "get__api_benchmark-quality",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "The day every artifact cited in this file was actually fetched."
      }
    },
    "/api/board-sign": {
      "post": {
        "operationId": "post__api_board-sign",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* POST /api/board-sign \u2014 GitHub OIDC only.\n * Signs a card-v0 payload with Pages secret BOARD_SIGN_KEY_PKCS8_B64.\n * The PKCS8 never leaves Cloudflare. Never logs the key. Not a grade."
      }
    },
    "/api/body-state": {
      "get": {
        "operationId": "get__api_body-state",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* /api/body-state \u2014 per-workflow last run / last success / last failure.\n *\n * Rate-limit safe: ONE unauthenticated call to /actions/runs?per_page=100 gives\n * the latest runs across every workflow; w"
      }
    },
    "/api/cards": {
      "get": {
        "operationId": "get__api_cards",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/cards \u2014 live signed-measurement surface (G4 fix).\n *\n * Serves the SIGNED living board + the index of signed measurement cards so the\n * public can verify the measurements the estate has ac"
      }
    },
    "/api/challenge": {
      "get": {
        "operationId": "get__api_challenge",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      },
      "post": {
        "operationId": "post__api_challenge",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      }
    },
    "/api/chat": {
      "post": {
        "operationId": "post__api_chat",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      }
    },
    "/api/checkout": {
      "post": {
        "operationId": "post__api_checkout",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* POST /api/checkout \u2014 public door is closed.\n *\n * No public prices. A grade is never sold. Verify is free at /gspc-verify.\n * Get measured at /assess. We do not remediate. Empty cells stay empty."
      }
    },
    "/api/clarity": {
      "get": {
        "operationId": "get__api_clarity",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      }
    },
    "/api/comparison": {
      "get": {
        "operationId": "get__api_comparison",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      }
    },
    "/api/compute": {
      "get": {
        "operationId": "get__api_compute",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/compute \u2014 probe surface for the two-machine wire.\n *\n * Quotes the committed Hub census digest. Probes the AG-UI wire when\n * AGUI_WIRE_URL is set. Never writes MEASURED. Never invents a po"
      }
    },
    "/api/contact": {
      "post": {
        "operationId": "post__api_contact",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* POST /api/contact \u2014 the contact form. Fields stored verbatim when KV (LEADS) is bound;\n * honest `stored:false` + fallback address when not. Nothing inferred, nothing forwarded\n * to third parties."
      }
    },
    "/api/corpus-watch": {
      "get": {
        "operationId": "get__api_corpus-watch",
        "responses": {
          "501": {
            "content": {
              "application/json": {
                "example": {
                  "accepted": false,
                  "endpoint": "/api/corpus-watch",
                  "persisted": false,
                  "schema": "csoai.capability-state/0.1",
                  "signed": false,
                  "state": "NOT_IMPLEMENTED"
                }
              }
            },
            "description": "Not implemented \u2014 no input was accepted, persisted, or signed"
          }
        },
        "summary": "",
        "x-csoai-lifecycle": "NOT_IMPLEMENTED"
      },
      "post": {
        "operationId": "post__api_corpus-watch",
        "responses": {
          "501": {
            "content": {
              "application/json": {
                "example": {
                  "accepted": false,
                  "endpoint": "/api/corpus-watch",
                  "persisted": false,
                  "schema": "csoai.capability-state/0.1",
                  "signed": false,
                  "state": "NOT_IMPLEMENTED"
                }
              }
            },
            "description": "Not implemented \u2014 no input was accepted, persisted, or signed"
          }
        },
        "summary": "",
        "x-csoai-lifecycle": "NOT_IMPLEMENTED"
      }
    },
    "/api/corrections": {
      "get": {
        "operationId": "get__api_corrections",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      }
    },
    "/api/counters": {
      "get": {
        "operationId": "get__api_counters",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/counters \u2014 Wave-1 public-utility counters (EXP 005), derived from artifacts.\n *\n * \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n * WHAT CHANGED (2026-08-26)"
      }
    },
    "/api/cross": {
      "get": {
        "operationId": "get__api_cross",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      }
    },
    "/api/dashboard": {
      "get": {
        "operationId": "get__api_dashboard",
        "responses": {
          "501": {
            "content": {
              "application/json": {
                "example": {
                  "accepted": false,
                  "endpoint": "/api/dashboard",
                  "persisted": false,
                  "schema": "csoai.capability-state/0.1",
                  "signed": false,
                  "state": "NOT_IMPLEMENTED"
                }
              }
            },
            "description": "Not implemented \u2014 no input was accepted, persisted, or signed"
          }
        },
        "summary": "",
        "x-csoai-lifecycle": "NOT_IMPLEMENTED"
      },
      "post": {
        "operationId": "post__api_dashboard",
        "responses": {
          "501": {
            "content": {
              "application/json": {
                "example": {
                  "accepted": false,
                  "endpoint": "/api/dashboard",
                  "persisted": false,
                  "schema": "csoai.capability-state/0.1",
                  "signed": false,
                  "state": "NOT_IMPLEMENTED"
                }
              }
            },
            "description": "Not implemented \u2014 no input was accepted, persisted, or signed"
          }
        },
        "summary": "",
        "x-csoai-lifecycle": "NOT_IMPLEMENTED"
      }
    },
    "/api/decide": {
      "get": {
        "operationId": "get__api_decide",
        "responses": {
          "501": {
            "content": {
              "application/json": {
                "example": {
                  "accepted": false,
                  "endpoint": "/api/decide",
                  "persisted": false,
                  "schema": "csoai.capability-state/0.1",
                  "signed": false,
                  "state": "NOT_IMPLEMENTED"
                }
              }
            },
            "description": "Not implemented \u2014 no input was accepted, persisted, or signed"
          }
        },
        "summary": "* GET /api/decide \u2014 not implemented; no decision attestation is created.",
        "x-csoai-lifecycle": "NOT_IMPLEMENTED"
      }
    },
    "/api/detect": {
      "get": {
        "operationId": "get__api_detect",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* POST /api/detect \u2014 free Article 50 provenance VERIFICATION (EU AI Act 50(2)).\n * GET  /api/detect  \u2014 service descriptor.\n *\n * HONESTY OVER APPEARANCE (same discipline as article50.ts / assess/key.t"
      },
      "post": {
        "operationId": "post__api_detect",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* POST /api/detect \u2014 free Article 50 provenance VERIFICATION (EU AI Act 50(2)).\n * GET  /api/detect  \u2014 service descriptor.\n *\n * HONESTY OVER APPEARANCE (same discipline as article50.ts / assess/key.t"
      }
    },
    "/api/detector-interop": {
      "get": {
        "operationId": "get__api_detector-interop",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/detector-interop \u2014 open, signed detector-interoperability matrix.\n *\n * EU AI Act Article 50 Code of Practice sets 2027-02-02 for interoperability\n * between detection mechanisms (\"does det"
      }
    },
    "/api/east-west-bench": {
      "get": {
        "operationId": "get__api_east-west-bench",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      }
    },
    "/api/embed": {
      "get": {
        "operationId": "get__api_embed",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/embed \u2014 machine contract for the white-label kit.\n * Counts are not typed here. The badge and embed.js read GET /api/gspc."
      }
    },
    "/api/eu-ai-act": {
      "get": {
        "operationId": "get__api_eu-ai-act",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* /api/eu-ai-act \u2014 evidence summary for the EU AI Act regime (Art 50, high-risk, GPAI).\n * Obligation map is the same one the evidence-bundle assembler uses (see ./_obligations)."
      }
    },
    "/api/eunomia-data": {
      "get": {
        "description": "A signed JSON feed of enforcement and measurement artefacts already on the public root. Data only \u2014 no scores, no ranking. Bare path (no query) is the free preview tier (HTTP 200). Paid signed feed requires feed=1 (HTTP 402).",
        "operationId": "x402_eunomia_data",
        "parameters": [
          {
            "description": "Paid-tier gate. Must be the string 1 to request the signed feed (HTTP 402). Omit for free preview on the bare path (HTTP 200).",
            "example": "1",
            "in": "query",
            "name": "feed",
            "required": true,
            "schema": {
              "const": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "A signed JSON feed of enforcement and measurement artefacts already on the public root. Data only \u2014 no scores, no ranking.",
                  "type": "object"
                }
              }
            },
            "description": "A signed JSON feed of enforcement and measurement artefacts already on the public root. Data only \u2014 no scores, no ranking."
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "accepts": [
                    {
                      "amount": "20000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "extra": {
                        "decimals": 6,
                        "name": "USD Coin",
                        "symbol": "USDC",
                        "version": "2"
                      },
                      "maxAmountRequired": "20000",
                      "maxTimeoutSeconds": 300,
                      "network": "eip155:8453",
                      "payTo": "0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31",
                      "scheme": "exact"
                    }
                  ],
                  "error": "Payment required",
                  "extensions": {
                    "bazaar": {
                      "info": {
                        "input": {
                          "method": "GET",
                          "queryParams": {
                            "feed": "1"
                          },
                          "type": "http"
                        },
                        "output": {
                          "example": {
                            "blocks": {
                              "card_index": {},
                              "first_fine_watch": {},
                              "root": {},
                              "signals": {}
                            },
                            "kind": "feed",
                            "schema": "csoai.eunomia-data/0.2"
                          },
                          "type": "json"
                        }
                      },
                      "schema": {
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "properties": {
                          "input": {
                            "additionalProperties": false,
                            "properties": {
                              "method": {
                                "enum": [
                                  "GET",
                                  "HEAD",
                                  "DELETE"
                                ],
                                "type": "string"
                              },
                              "queryParams": {
                                "properties": {
                                  "feed": {
                                    "const": "1",
                                    "description": "Paid-tier gate. Must be the string 1 to request the signed feed (HTTP 402). Omit for free preview on the bare path (HTTP 200).",
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "feed"
                                ],
                                "type": "object"
                              },
                              "type": {
                                "const": "http",
                                "type": "string"
                              }
                            },
                            "required": [
                              "type",
                              "method"
                            ],
                            "type": "object"
                          },
                          "output": {
                            "properties": {
                              "example": {
                                "type": "object"
                              },
                              "type": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "type"
                            ],
                            "type": "object"
                          }
                        },
                        "required": [
                          "input"
                        ],
                        "type": "object"
                      }
                    }
                  },
                  "resource": {
                    "description": "A signed JSON feed of enforcement and measurement artefacts already on the public root. Data only \u2014 no scores, no ranking.",
                    "mimeType": "application/json",
                    "serviceName": "CSOAI Data Feed",
                    "tags": [
                      "data",
                      "feed",
                      "enforcement",
                      "signed",
                      "x402"
                    ],
                    "url": "https://councilof.ai/api/eunomia-data?feed=1"
                  },
                  "x402Version": 2
                },
                "schema": {
                  "$ref": "#/components/schemas/X402PaymentRequired"
                }
              }
            },
            "description": "Payment required \u2014 the x402 v2 challenge. The same JSON is base64-encoded in the PAYMENT-REQUIRED response header. Pay accepts[0] (scheme exact, network eip155:8453, USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, payTo 0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31; amount in atomic units) and retry the same request with the X-PAYMENT header. Verification of the artefact stays free.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "description": "base64(JSON) of this challenge body",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "summary": "Signed data feed (assembly + cadence)",
        "tags": [
          "x402",
          "assembly"
        ],
        "x-csoai": {
          "challenge": {
            "amount_source": "captured live 402 (challenges/eunomia_data.json)",
            "captured": true,
            "payment_required_header_bytes": 3832
          },
          "door": "https://councilof.ai/api/eunomia-data?feed=1",
          "free_preview": "https://councilof.ai/api/eunomia-data",
          "never": [
            "scores as a product",
            "a ranking",
            "a rating"
          ],
          "paid_for": "assembly",
          "tier": "data_feed"
        },
        "x-payment-info": {
          "protocols": [
            "x402"
          ]
        }
      }
    },
    "/api/evidence-bundle": {
      "get": {
        "description": "An OSCAL 1.1.0 assessment-results bundle of already-signed CSOAI cards, mapped to EU-AI-ACT-50. Not a conformity determination. Preview = obligation(+subject) without bundle=1. Paid tier requires obligation + bundle=1 (HTTP 402). Incomplete bundle alone stays HTTP 400.",
        "operationId": "x402_evidence_bundle",
        "parameters": [
          {
            "description": "Obligation the evidence bundle maps to (required with bundle=1 for the paid tier). Incomplete probes (bundle alone) stay HTTP 400.",
            "example": "article-50",
            "in": "query",
            "name": "obligation",
            "required": true,
            "schema": {
              "const": "article-50",
              "enum": [
                "article-50",
                "article-53",
                "dora",
                "cra"
              ],
              "type": "string"
            }
          },
          {
            "description": "Paid-tier gate. Must be the string 1 together with the other required params to request the paid artefact (HTTP 402). Without bundle=1 the door stays on free preview / validation.",
            "example": "1",
            "in": "query",
            "name": "bundle",
            "required": true,
            "schema": {
              "const": "1",
              "type": "string"
            }
          },
          {
            "description": "Subject the cards must name (model id / instrument / vendor)",
            "in": "query",
            "name": "subject",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "An OSCAL 1.1.0 assessment-results bundle of already-signed CSOAI cards, mapped to one named obligation. Not a conformity determination.",
                  "type": "object"
                }
              }
            },
            "description": "An OSCAL 1.1.0 assessment-results bundle of already-signed CSOAI cards, mapped to one named obligation. Not a conformity determination."
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "accepts": [
                    {
                      "amount": "250000000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "extra": {
                        "decimals": 6,
                        "name": "USD Coin",
                        "symbol": "USDC",
                        "version": "2"
                      },
                      "maxAmountRequired": "250000000",
                      "maxTimeoutSeconds": 300,
                      "network": "eip155:8453",
                      "payTo": "0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31",
                      "scheme": "exact"
                    }
                  ],
                  "error": "Payment required",
                  "extensions": {
                    "bazaar": {
                      "info": {
                        "input": {
                          "method": "GET",
                          "queryParams": {
                            "bundle": "1",
                            "obligation": "article-50"
                          },
                          "type": "http"
                        },
                        "output": {
                          "example": {
                            "cards": {},
                            "kind": "bundle",
                            "manifest_card": {
                              "surface": "evidence.bundle"
                            },
                            "oscal": {
                              "assessment-results": {}
                            },
                            "schema": "csoai.evidence-bundle/0.1"
                          },
                          "type": "json"
                        }
                      },
                      "schema": {
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "properties": {
                          "input": {
                            "additionalProperties": false,
                            "properties": {
                              "method": {
                                "enum": [
                                  "GET",
                                  "HEAD",
                                  "DELETE"
                                ],
                                "type": "string"
                              },
                              "queryParams": {
                                "properties": {
                                  "bundle": {
                                    "const": "1",
                                    "type": "string"
                                  },
                                  "obligation": {
                                    "enum": [
                                      "article-50",
                                      "article-53",
                                      "dora",
                                      "cra"
                                    ],
                                    "type": "string"
                                  },
                                  "subject": {
                                    "description": "Subject the cards must name (model id / instrument / vendor)",
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "obligation",
                                  "bundle"
                                ],
                                "type": "object"
                              },
                              "type": {
                                "const": "http",
                                "type": "string"
                              }
                            },
                            "required": [
                              "type",
                              "method"
                            ],
                            "type": "object"
                          },
                          "output": {
                            "properties": {
                              "example": {
                                "type": "object"
                              },
                              "type": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "type"
                            ],
                            "type": "object"
                          }
                        },
                        "required": [
                          "input"
                        ],
                        "type": "object"
                      }
                    },
                    "offer-receipt": {
                      "info": {
                        "offers": [
                          {
                            "acceptIndex": 0,
                            "format": "jws",
                            "signature": "eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDp3ZWI6Y3NvYWkub3JnI2JvYXJkLWF0dGVzdGF0aW9uLTEifQ.eyJhbW91bnQiOiIyNTAwMDAwMDAiLCJhc3NldCI6IjB4ODMzNTg5ZkNENmVEYjZFMDhmNGM3QzMyRDRmNzFiNTRiZEEwMjkxMyIsIm5ldHdvcmsiOiJlaXAxNTU6ODQ1MyIsInBheVRvIjoiMHgyMTI2ODY0MDRBN0QxRTFmRDg4RjM1ZUQ2MjAwYzNhRjdBNzhhZTMxIiwicmVzb3VyY2VVcmwiOiJodHRwczovL2NvdW5jaWxvZi5haS9hcGkvZXZpZGVuY2UtYnVuZGxlIiwic2NoZW1lIjoiZXhhY3QiLCJ2YWxpZFVudGlsIjoxNzg4NzQ3NDk3LCJ2ZXJzaW9uIjoxfQ.mww_LO75YFuzSEEqeXVp74W4gzsE7u9lzh-R5Uihr1Jr138ntIKbv9_fuCBVMhUT8AJYh5a0r0vugLKiH4wtBg"
                          }
                        ]
                      },
                      "schema": {
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "properties": {
                          "offers": {
                            "items": {
                              "properties": {
                                "acceptIndex": {
                                  "type": "integer"
                                },
                                "format": {
                                  "const": "jws",
                                  "type": "string"
                                },
                                "signature": {
                                  "description": "JWS compact serialization containing the offer payload",
                                  "type": "string"
                                }
                              },
                              "required": [
                                "format",
                                "signature"
                              ],
                              "type": "object"
                            },
                            "type": "array"
                          }
                        },
                        "required": [
                          "offers"
                        ],
                        "type": "object"
                      }
                    }
                  },
                  "resource": {
                    "description": "An OSCAL 1.1.0 assessment-results bundle of already-signed CSOAI cards, mapped to EU-AI-ACT-50. Not a conformity determination.",
                    "mimeType": "application/json",
                    "serviceName": "CSOAI Evidence Bundle",
                    "tags": [
                      "evidence",
                      "oscal",
                      "eu-ai-act",
                      "dora",
                      "cra"
                    ],
                    "url": "https://councilof.ai/api/evidence-bundle?obligation=article-50&bundle=1"
                  },
                  "x402Version": 2
                },
                "schema": {
                  "$ref": "#/components/schemas/X402PaymentRequired"
                }
              }
            },
            "description": "Payment required \u2014 the x402 v2 challenge. The same JSON is base64-encoded in the PAYMENT-REQUIRED response header. Pay accepts[0] (scheme exact, network eip155:8453, USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, payTo 0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31; amount in atomic units) and retry the same request with the X-PAYMENT header. Verification of the artefact stays free.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "description": "base64(JSON) of this challenge body",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "summary": "Evidence bundle mapped to an obligation",
        "tags": [
          "x402",
          "assembly"
        ],
        "x-csoai": {
          "challenge": {
            "amount_source": "captured live 402 (challenges/evidence_bundle.json)",
            "captured": true,
            "payment_required_header_bytes": 6120
          },
          "door": "https://councilof.ai/api/evidence-bundle?obligation=article-50&bundle=1",
          "free_preview": "https://councilof.ai/api/evidence-bundle?obligation=<dora|cra|article-50|article-53>&subject=<model-id>",
          "never": [
            "a conformity determination",
            "satisfied/not-satisfied findings",
            "a certificate"
          ],
          "paid_for": "assembly",
          "tier": "evidence_bundle"
        },
        "x-payment-info": {
          "protocols": [
            "x402"
          ]
        }
      }
    },
    "/api/evidence-intake": {
      "post": {
        "operationId": "post__api_evidence-intake",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* POST /api/evidence-intake \u2014 explicit candidate measurement intake.\n *\n * This is deliberately not a measurement endpoint. It verifies the ephemeral\n * browser signature on one <=3KB candidate receip"
      }
    },
    "/api/evidence-pack": {
      "get": {
        "operationId": "get__api_evidence-pack",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      }
    },
    "/api/fabric": {
      "get": {
        "operationId": "get__api_fabric",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/fabric -- normalized, read-only capability evidence.\n *\n * This is not an action registry. Every positive state is derived from a bounded\n * same-origin probe made for this request. Catalog"
      }
    },
    "/api/feed.xml": {
      "get": {
        "operationId": "get__api_feed.xml",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      }
    },
    "/api/feeds/provider-diff": {
      "get": {
        "description": "Every hash-only provider-document diff leaf to date, each with its inclusion proof to the signed root. Hashes only \u2014 no page content, no verdict. Bare path is free recent diffs (HTTP 200). Paid historical batch requires history=1 (HTTP 402).",
        "operationId": "x402_feeds_provider_diff",
        "parameters": [
          {
            "description": "Paid-tier gate. Must be the string 1 to request the signed historical batch (HTTP 402). Omit for free recent diffs on the bare path (HTTP 200).",
            "example": "1",
            "in": "query",
            "name": "history",
            "required": true,
            "schema": {
              "const": "1",
              "type": "string"
            }
          },
          {
            "description": "ISO-8601 instant; return only diffs newer than this",
            "in": "query",
            "name": "since",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Every hash-only provider-document diff leaf to date, each with its inclusion proof to the signed root. Hashes only \u2014 no page content, no verdict.",
                  "type": "object"
                }
              }
            },
            "description": "Every hash-only provider-document diff leaf to date, each with its inclusion proof to the signed root. Hashes only \u2014 no page content, no verdict."
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "accepts": [
                    {
                      "amount": "25000000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "extra": {
                        "decimals": 6,
                        "name": "USD Coin",
                        "symbol": "USDC",
                        "version": "2"
                      },
                      "maxAmountRequired": "25000000",
                      "maxTimeoutSeconds": 300,
                      "network": "eip155:8453",
                      "payTo": "0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31",
                      "scheme": "exact"
                    }
                  ],
                  "error": "Payment required",
                  "extensions": {
                    "bazaar": {
                      "info": {
                        "input": {
                          "method": "GET",
                          "queryParams": {
                            "history": "1"
                          },
                          "type": "http"
                        },
                        "output": {
                          "example": {
                            "diffs": [],
                            "kind": "history",
                            "leaves": {},
                            "root": {},
                            "schema": "csoai.feeds.provider-diff/0.1"
                          },
                          "type": "json"
                        }
                      },
                      "schema": {
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "properties": {
                          "input": {
                            "additionalProperties": false,
                            "properties": {
                              "method": {
                                "enum": [
                                  "GET",
                                  "HEAD",
                                  "DELETE"
                                ],
                                "type": "string"
                              },
                              "queryParams": {
                                "properties": {
                                  "history": {
                                    "const": "1",
                                    "description": "Paid-tier gate. Must be the string 1 to request the signed historical batch (HTTP 402). Omit for free recent diffs on the bare path (HTTP 200).",
                                    "type": "string"
                                  },
                                  "since": {
                                    "description": "ISO-8601 instant; return only diffs newer than this",
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "history"
                                ],
                                "type": "object"
                              },
                              "type": {
                                "const": "http",
                                "type": "string"
                              }
                            },
                            "required": [
                              "type",
                              "method"
                            ],
                            "type": "object"
                          },
                          "output": {
                            "properties": {
                              "example": {
                                "type": "object"
                              },
                              "type": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "type"
                            ],
                            "type": "object"
                          }
                        },
                        "required": [
                          "input"
                        ],
                        "type": "object"
                      }
                    }
                  },
                  "resource": {
                    "description": "Every hash-only provider-document diff leaf to date, each with its inclusion proof to the signed root. Hashes only \u2014 no page content, no verdict.",
                    "mimeType": "application/json",
                    "serviceName": "CSOAI Provider Diff Feed",
                    "tags": [
                      "diff",
                      "terms",
                      "model-card",
                      "article-50",
                      "x402"
                    ],
                    "url": "https://councilof.ai/api/feeds/provider-diff?history=1"
                  },
                  "x402Version": 2
                },
                "schema": {
                  "$ref": "#/components/schemas/X402PaymentRequired"
                }
              }
            },
            "description": "Payment required \u2014 the x402 v2 challenge. The same JSON is base64-encoded in the PAYMENT-REQUIRED response header. Pay accepts[0] (scheme exact, network eip155:8453, USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, payTo 0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31; amount in atomic units) and retry the same request with the X-PAYMENT header. Verification of the artefact stays free.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "description": "base64(JSON) of this challenge body",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "summary": "Provider document diff feed (signed historical batch / bespoke partner feed)",
        "tags": [
          "x402",
          "assembly"
        ],
        "x-csoai": {
          "challenge": {
            "amount_source": "captured live 402 (challenges/feeds_provider_diff.json)",
            "captured": true,
            "payment_required_header_bytes": 3416
          },
          "door": "https://councilof.ai/api/feeds/provider-diff?history=1",
          "free_preview": "https://councilof.ai/api/feeds/provider-diff",
          "never": [
            "a verdict on any change",
            "the content of any page (never captured)",
            "a grade"
          ],
          "paid_for": "assembly",
          "tier": "provider_diff_feed"
        },
        "x-payment-info": {
          "protocols": [
            "x402"
          ]
        }
      }
    },
    "/api/files": {
      "get": {
        "operationId": "get__api_files",
        "responses": {
          "503": {
            "content": {
              "application/json": {}
            },
            "description": "Unavailable \u2014 quarantined pre-release; no evidence is manufactured"
          }
        },
        "summary": "* files \u2014 retired until its response can be derived from current evidence.\n * @openapi-unavailable",
        "x-csoai-lifecycle": "QUARANTINED_PRE_RELEASE"
      },
      "post": {
        "operationId": "post__api_files",
        "responses": {
          "503": {
            "content": {
              "application/json": {}
            },
            "description": "Unavailable \u2014 quarantined pre-release; no evidence is manufactured"
          }
        },
        "summary": "* files \u2014 retired until its response can be derived from current evidence.\n * @openapi-unavailable",
        "x-csoai-lifecycle": "QUARANTINED_PRE_RELEASE"
      }
    },
    "/api/findings": {
      "get": {
        "operationId": "get__api_findings",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      }
    },
    "/api/fines": {
      "get": {
        "operationId": "get__api_fines",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/fines \u2014 First-Fine Watch: signed coverage of the public AI enforcement record.\n *\n * R8 canon (load-bearing): regulators get signed streams free forever (verification free).\n * This endpoin"
      }
    },
    "/api/free-door": {
      "get": {
        "description": "CSOAI free door: the live GSPC board totals and the public signed root, at a price of zero because it is free forever. That is the real price, not a promotion \u2014 a grade is never sold. Paid artefacts are catalogued at https://councilof.ai/api/x402. Measurement, not certification.",
        "operationId": "x402_free_door",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "CSOAI free door: the live GSPC board totals and the public signed root, at a price of zero because it is free forever. That is the real price, not a promotion \u2014 a grade is never sold. Paid artefacts are catalogued at https://councilof.ai/api/x402. Measurement, not certification.",
                  "type": "object"
                }
              }
            },
            "description": "CSOAI free door: the live GSPC board totals and the public signed root, at a price of zero because it is free forever. That is the real price, not a promotion \u2014 a grade is never sold. Paid artefacts are catalogued at https://councilof.ai/api/x402. Measurement, not certification."
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "accepts": [
                    {
                      "amount": "0",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "extra": {
                        "decimals": 6,
                        "name": "USD Coin",
                        "symbol": "USDC",
                        "version": "2"
                      },
                      "maxAmountRequired": "0",
                      "maxTimeoutSeconds": 300,
                      "network": "eip155:8453",
                      "payTo": "0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31",
                      "scheme": "exact"
                    }
                  ],
                  "error": "Payment required",
                  "extensions": {
                    "bazaar": {
                      "info": {
                        "input": {
                          "method": "GET",
                          "type": "http"
                        }
                      }
                    }
                  },
                  "resource": {
                    "description": "CSOAI free door: the live GSPC board totals and the public signed root, at a price of zero because it is free forever. That is the real price, not a promotion \u2014 a grade is never sold. Paid artefacts are catalogued at https://councilof.ai/api/x402. Measurement, not certification.",
                    "mimeType": "application/json",
                    "url": "https://councilof.ai/api/free-door"
                  },
                  "x402Version": 2
                },
                "schema": {
                  "$ref": "#/components/schemas/X402PaymentRequired"
                }
              }
            },
            "description": "Payment required \u2014 the x402 v2 challenge. The same JSON is base64-encoded in the PAYMENT-REQUIRED response header. Pay accepts[0] (scheme exact, network eip155:8453, USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, payTo 0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31; amount in atomic units) and retry the same request with the X-PAYMENT header. Verification of the artefact stays free.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "description": "base64(JSON) of this challenge body",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "summary": "free door \u2014 /api/free-door",
        "tags": [
          "x402",
          "free"
        ],
        "x-csoai": {
          "challenge": {
            "amount_source": "the door pins X402_AMOUNT to 0 and /.well-known/x402.json advertises amount 0",
            "captured": false
          },
          "door": "https://councilof.ai/api/free-door",
          "indexed_in": "x402 Bazaar (PayAI)",
          "paid_for": null
        },
        "x-payment-info": {
          "protocols": [
            "x402"
          ]
        }
      }
    },
    "/api/fulfill": {
      "get": {
        "operationId": "get__api_fulfill",
        "responses": {
          "404": {
            "content": {
              "application/json": {
                "example": {
                  "configured": false,
                  "public_prices": false
                }
              }
            },
            "description": "Door closed \u2014 no public prices; a grade is never sold"
          }
        },
        "summary": "* GET /api/fulfill \u2014 public fulfillment door is closed.\n *\n * No public prices. A grade is never sold. Verify is free at /gspc-verify.\n * Get measured at /assess. We do not remediate. Empty cells stay",
        "x-csoai-lifecycle": "DOOR_CLOSED"
      }
    },
    "/api/growth-loops": {
      "get": {
        "operationId": "get__api_growth-loops",
        "responses": {
          "503": {
            "content": {
              "application/json": {}
            },
            "description": "Unavailable \u2014 quarantined pre-release; no evidence is manufactured"
          }
        },
        "summary": "* /api/growth-loops \u2014 retired until loop status is derived from current evidence.\n * @openapi-unavailable",
        "x-csoai-lifecycle": "QUARANTINED_PRE_RELEASE"
      }
    },
    "/api/gspc": {
      "get": {
        "operationId": "get__api_gspc",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      }
    },
    "/api/hf-spaces": {
      "get": {
        "operationId": "get__api_hf-spaces",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      }
    },
    "/api/hub-cards": {
      "get": {
        "operationId": "get__api_hub-cards",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* An index either answered or it did not. `ok: true` with zero cells is a real,\n * empty index \u2014 it has been read. Only `ok: false` is unread, and it always\n * carries the reason, because \"we could no"
      }
    },
    "/api/include": {
      "get": {
        "operationId": "get__api_include",
        "responses": {
          "501": {
            "content": {
              "application/json": {
                "example": {
                  "accepted": false,
                  "endpoint": "/api/include",
                  "persisted": false,
                  "schema": "csoai.capability-state/0.1",
                  "signed": false,
                  "state": "NOT_IMPLEMENTED"
                }
              }
            },
            "description": "Not implemented \u2014 no input was accepted, persisted, or signed"
          }
        },
        "summary": "* GET /api/include \u2014 not implemented; no Merkle inclusion proof is produced.",
        "x-csoai-lifecycle": "NOT_IMPLEMENTED"
      }
    },
    "/api/interop-bulk": {
      "get": {
        "operationId": "get__api_interop-bulk",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/interop-bulk \u2014 metered bulk/replay access to signed interop surfaces.\n *\n * Free tier (default): single-shard access to the live interop registry (read-only,\n * the trust engine \u2014 never gat"
      }
    },
    "/api/lead": {
      "get": {
        "operationId": "get__api_lead",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* POST /api/lead \u2014 accepts the \"email me the signed report\" form.\n *\n * HONESTY OVER APPEARANCE\n * There is no datastore bound to this project yet, and this endpoint does not pretend\n * otherwise: it "
      },
      "post": {
        "operationId": "post__api_lead",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* POST /api/lead \u2014 accepts the \"email me the signed report\" form.\n *\n * HONESTY OVER APPEARANCE\n * There is no datastore bound to this project yet, and this endpoint does not pretend\n * otherwise: it "
      }
    },
    "/api/learn-loop": {
      "get": {
        "operationId": "get__api_learn-loop",
        "responses": {
          "503": {
            "content": {
              "application/json": {}
            },
            "description": "Unavailable \u2014 quarantined pre-release; no evidence is manufactured"
          }
        },
        "summary": "* /api/learn-loop \u2014 quarantined pre-release surface.\n *\n * @openapi-unavailable\n *\n * The former implementation generated hash-shaped placeholders and labelled\n * them as Ed25519, OpenTimestamps, Reko",
        "x-csoai-lifecycle": "QUARANTINED_PRE_RELEASE"
      },
      "post": {
        "operationId": "post__api_learn-loop",
        "responses": {
          "503": {
            "content": {
              "application/json": {}
            },
            "description": "Unavailable \u2014 quarantined pre-release; no evidence is manufactured"
          }
        },
        "summary": "* /api/learn-loop \u2014 quarantined pre-release surface.\n *\n * @openapi-unavailable\n *\n * The former implementation generated hash-shaped placeholders and labelled\n * them as Ed25519, OpenTimestamps, Reko",
        "x-csoai-lifecycle": "QUARANTINED_PRE_RELEASE"
      }
    },
    "/api/learning-scenarios": {
      "get": {
        "operationId": "get__api_learning-scenarios",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      }
    },
    "/api/locale": {
      "get": {
        "operationId": "get__api_locale",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      }
    },
    "/api/mcp": {
      "get": {
        "operationId": "get__api_mcp",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/mcp \u2014 the MCP registry, served from a PROBED artifact.\n *\n * WHAT CHANGED (2026-08-26, lane A4)\n * This handler used to return a hardcoded array of 6 servers in which every entry set\n *   l"
      }
    },
    "/api/memory": {
      "get": {
        "operationId": "get__api_memory",
        "responses": {
          "503": {
            "content": {
              "application/json": {}
            },
            "description": "Unavailable \u2014 quarantined pre-release; no evidence is manufactured"
          }
        },
        "summary": "* memory \u2014 retired until its response can be derived from current evidence.\n * @openapi-unavailable",
        "x-csoai-lifecycle": "QUARANTINED_PRE_RELEASE"
      },
      "post": {
        "operationId": "post__api_memory",
        "responses": {
          "503": {
            "content": {
              "application/json": {}
            },
            "description": "Unavailable \u2014 quarantined pre-release; no evidence is manufactured"
          }
        },
        "summary": "* memory \u2014 retired until its response can be derived from current evidence.\n * @openapi-unavailable",
        "x-csoai-lifecycle": "QUARANTINED_PRE_RELEASE"
      }
    },
    "/api/methodology": {
      "get": {
        "operationId": "get__api_methodology",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      }
    },
    "/api/mint": {
      "get": {
        "operationId": "get__api_mint",
        "responses": {
          "501": {
            "content": {
              "application/json": {
                "example": {
                  "accepted": false,
                  "endpoint": "/api/mint",
                  "persisted": false,
                  "schema": "csoai.capability-state/0.1",
                  "signed": false,
                  "state": "NOT_IMPLEMENTED"
                }
              }
            },
            "description": "Not implemented \u2014 no input was accepted, persisted, or signed"
          }
        },
        "summary": "",
        "x-csoai-lifecycle": "NOT_IMPLEMENTED"
      }
    },
    "/api/og": {
      "get": {
        "operationId": "get__api_og",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      }
    },
    "/api/openapi.json": {
      "get": {
        "operationId": "get__api_openapi.json",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/openapi.json \u2014 an OpenAPI 3.1 description of the PUBLIC read endpoints that\n * already exist, for ChatGPT / Custom-GPT Actions and any other schema importer.\n *\n * Honesty rules for this fi"
      }
    },
    "/api/operator": {
      "get": {
        "operationId": "get__api_operator",
        "responses": {
          "503": {
            "content": {
              "application/json": {}
            },
            "description": "Unavailable \u2014 quarantined pre-release; no evidence is manufactured"
          }
        },
        "summary": "* operator \u2014 retired until its response can be derived from current evidence.\n * @openapi-unavailable",
        "x-csoai-lifecycle": "QUARANTINED_PRE_RELEASE"
      },
      "post": {
        "operationId": "post__api_operator",
        "responses": {
          "503": {
            "content": {
              "application/json": {}
            },
            "description": "Unavailable \u2014 quarantined pre-release; no evidence is manufactured"
          }
        },
        "summary": "* operator \u2014 retired until its response can be derived from current evidence.\n * @openapi-unavailable",
        "x-csoai-lifecycle": "QUARANTINED_PRE_RELEASE"
      }
    },
    "/api/otel": {
      "get": {
        "operationId": "get__api_otel",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/otel \u2014 collector presence.\n * LIVE only if a collector answers. Else UNCHECKABLE. Not a 23rd axis."
      }
    },
    "/api/pqc": {
      "get": {
        "operationId": "get__api_pqc",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/pqc \u2014 continuity mill vs estate signer.\n * Not a 23rd axis. Continuity MEASURED \u2260 we are PQC."
      }
    },
    "/api/press.json": {
      "get": {
        "operationId": "get__api_press.json",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/press.json \u2014 what changed, with the command that proves each line.\n *\n * The press surface as CODE. Every figure is read from a committed artifact at build time and\n * every claim ships wit"
      }
    },
    "/api/prod-readiness": {
      "get": {
        "operationId": "get__api_prod-readiness",
        "responses": {
          "503": {
            "content": {
              "application/json": {}
            },
            "description": "Unavailable \u2014 quarantined pre-release; no evidence is manufactured"
          }
        },
        "summary": "* /api/prod-readiness \u2014 retired until readiness is derived from current evidence.\n * @openapi-unavailable",
        "x-csoai-lifecycle": "QUARANTINED_PRE_RELEASE"
      }
    },
    "/api/proof": {
      "get": {
        "description": "Inclusion proof bundle for leaves available in the last published Merkle root, with leaf hashes, indexes, proof paths, the Merkle root and signed card count. Not a grade. Bare path is validation (HTTP 400 naming sha or bundle). Free inclusion via optional sha. Paid root bundle when bundle=1 (HTTP 402).",
        "operationId": "x402_proof",
        "parameters": [
          {
            "description": "Must be 1 to request the paid proof bundle",
            "example": "1",
            "in": "query",
            "name": "bundle",
            "required": true,
            "schema": {
              "const": "1",
              "type": "string"
            }
          },
          {
            "description": "Free inclusion proof for one known leaf (64-hex). Omit; use bundle=1 for the paid root bundle.",
            "in": "query",
            "name": "sha",
            "required": false,
            "schema": {
              "pattern": "^[0-9a-f]{64}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Inclusion proof bundle for leaves available in the last published Merkle root, with leaf hashes, indexes, proof paths, the Merkle root and signed card count. Not a grade.",
                  "type": "object"
                }
              }
            },
            "description": "Inclusion proof bundle for leaves available in the last published Merkle root, with leaf hashes, indexes, proof paths, the Merkle root and signed card count. Not a grade."
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "accepts": [
                    {
                      "amount": "20000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "extra": {
                        "decimals": 6,
                        "name": "USD Coin",
                        "symbol": "USDC",
                        "version": "2"
                      },
                      "maxAmountRequired": "20000",
                      "maxTimeoutSeconds": 300,
                      "network": "eip155:8453",
                      "payTo": "0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31",
                      "scheme": "exact"
                    }
                  ],
                  "error": "Payment required",
                  "extensions": {
                    "bazaar": {
                      "info": {
                        "input": {
                          "method": "GET",
                          "queryParams": {
                            "bundle": "1"
                          },
                          "type": "http"
                        },
                        "output": {
                          "example": {
                            "kind": "bundle",
                            "merkle_root": "<hex>",
                            "n": 0,
                            "note": "Paid bundle of inclusion proofs. Not a grade.",
                            "proofs": [],
                            "schema": "csoai.public-root-proof/0.1"
                          },
                          "type": "json"
                        }
                      },
                      "schema": {
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "properties": {
                          "input": {
                            "additionalProperties": false,
                            "properties": {
                              "method": {
                                "enum": [
                                  "GET",
                                  "HEAD",
                                  "DELETE"
                                ],
                                "type": "string"
                              },
                              "queryParams": {
                                "properties": {
                                  "bundle": {
                                    "const": "1",
                                    "description": "Must be 1 to request the paid proof bundle",
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "bundle"
                                ],
                                "type": "object"
                              },
                              "type": {
                                "const": "http",
                                "type": "string"
                              }
                            },
                            "required": [
                              "type",
                              "method"
                            ],
                            "type": "object"
                          },
                          "output": {
                            "properties": {
                              "example": {
                                "type": "object"
                              },
                              "type": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "type"
                            ],
                            "type": "object"
                          }
                        },
                        "required": [
                          "input"
                        ],
                        "type": "object"
                      }
                    }
                  },
                  "resource": {
                    "description": "Inclusion proof bundle for leaves available in the last published Merkle root, with leaf hashes, indexes, proof paths, the Merkle root and signed card count. Not a grade.",
                    "mimeType": "application/json",
                    "serviceName": "CSOAI Proof Bundle",
                    "tags": [
                      "proof",
                      "merkle",
                      "measurement",
                      "attestation"
                    ],
                    "url": "https://councilof.ai/api/proof?bundle=1"
                  },
                  "x402Version": 2
                },
                "schema": {
                  "$ref": "#/components/schemas/X402PaymentRequired"
                }
              }
            },
            "description": "Payment required \u2014 the x402 v2 challenge. The same JSON is base64-encoded in the PAYMENT-REQUIRED response header. Pay accepts[0] (scheme exact, network eip155:8453, USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, payTo 0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31; amount in atomic units) and retry the same request with the X-PAYMENT header. Verification of the artefact stays free.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "description": "base64(JSON) of this challenge body",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "summary": "CSOAI Proof Bundle",
        "tags": [
          "x402",
          "assembly"
        ],
        "x-csoai": {
          "challenge": {
            "amount_source": "captured live 402 (challenges/proof.json)",
            "captured": true,
            "payment_required_header_bytes": 3112
          },
          "door": "https://councilof.ai/api/proof?bundle=1",
          "free_forever_on_this_path": [
            "https://councilof.ai/api/proof?sha=<64-hex>"
          ],
          "paid_for": "assembly"
        },
        "x-payment-info": {
          "protocols": [
            "x402"
          ]
        }
      }
    },
    "/api/provider-canary": {
      "get": {
        "operationId": "get__api_provider-canary",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET  /api/provider-canary -- public configuration status; never probes.\n * POST /api/provider-canary -- authenticated, fixed one-token capability canary.\n *\n * This route is deliberately not user in"
      },
      "post": {
        "operationId": "post__api_provider-canary",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET  /api/provider-canary -- public configuration status; never probes.\n * POST /api/provider-canary -- authenticated, fixed one-token capability canary.\n *\n * This route is deliberately not user in"
      }
    },
    "/api/receipts/batch": {
      "get": {
        "description": "Historical measurement-card batch from published roots for a requested time window, capped at 200 leaves, with inclusion paths and carrying roots. Not payment or settlement receipts. preview=1 is free digest. Paid leaves require from (HTTP 402).",
        "operationId": "x402_receipts_batch",
        "parameters": [
          {
            "description": "Window start (ISO-8601). Required.",
            "example": "2026-01-01T00:00:00Z",
            "in": "query",
            "name": "from",
            "required": true,
            "schema": {
              "const": "2026-01-01T00:00:00Z",
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Free: count, span and the sha256 of the batch bytes, without the leaves",
            "in": "query",
            "name": "preview",
            "required": false,
            "schema": {
              "const": "1",
              "type": "string"
            }
          },
          {
            "description": "Window end (ISO-8601). Defaults to now.",
            "example": "2026-09-06T08:22:25Z",
            "in": "query",
            "name": "to",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Historical measurement-card batch from published roots for a requested time window, capped at 200 leaves, with inclusion paths and carrying roots. Not payment or settlement receipts.",
                  "type": "object"
                }
              }
            },
            "description": "Historical measurement-card batch from published roots for a requested time window, capped at 200 leaves, with inclusion paths and carrying roots. Not payment or settlement receipts."
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "accepts": [
                    {
                      "amount": "100000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "extra": {
                        "decimals": 6,
                        "name": "USD Coin",
                        "symbol": "USDC",
                        "version": "2"
                      },
                      "maxAmountRequired": "100000",
                      "maxTimeoutSeconds": 300,
                      "network": "eip155:8453",
                      "payTo": "0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31",
                      "scheme": "exact"
                    }
                  ],
                  "error": "Payment required",
                  "extensions": {
                    "bazaar": {
                      "info": {
                        "input": {
                          "method": "GET",
                          "queryParams": {
                            "from": "2026-01-01T00:00:00Z",
                            "to": "2026-09-06T08:22:25Z"
                          },
                          "type": "http"
                        },
                        "output": {
                          "example": {
                            "batch": {
                              "cap": 200,
                              "count": 0,
                              "items": [],
                              "roots": [],
                              "window": {
                                "from": "<iso>",
                                "to": "<iso>"
                              }
                            },
                            "batch_sha256": "<64-hex>",
                            "kind": "batch",
                            "manifest_card": {
                              "sig_ed25519": "<hex or null>",
                              "surface": "receipts.batch"
                            },
                            "schema": "csoai.receipts.batch/0.1"
                          },
                          "type": "json"
                        }
                      },
                      "schema": {
                        "$schema": "https://json-schema.org/draft/2020-12/schema",
                        "properties": {
                          "input": {
                            "additionalProperties": false,
                            "properties": {
                              "method": {
                                "enum": [
                                  "GET",
                                  "HEAD",
                                  "DELETE"
                                ],
                                "type": "string"
                              },
                              "queryParams": {
                                "properties": {
                                  "from": {
                                    "description": "Window start (ISO-8601). Required.",
                                    "format": "date-time",
                                    "type": "string"
                                  },
                                  "preview": {
                                    "const": "1",
                                    "description": "Free: count, span and the sha256 of the batch bytes, without the leaves",
                                    "type": "string"
                                  },
                                  "to": {
                                    "description": "Window end (ISO-8601). Defaults to now.",
                                    "format": "date-time",
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "from"
                                ],
                                "type": "object"
                              },
                              "type": {
                                "const": "http",
                                "type": "string"
                              }
                            },
                            "required": [
                              "type",
                              "method"
                            ],
                            "type": "object"
                          },
                          "output": {
                            "properties": {
                              "example": {
                                "type": "object"
                              },
                              "type": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "type"
                            ],
                            "type": "object"
                          }
                        },
                        "required": [
                          "input"
                        ],
                        "type": "object"
                      }
                    }
                  },
                  "resource": {
                    "description": "Historical measurement-card batch from published roots for a requested time window, capped at 200 leaves, with inclusion paths and carrying roots. Not payment or settlement receipts.",
                    "mimeType": "application/json",
                    "serviceName": "CSOAI Receipts Batch",
                    "tags": [
                      "receipts",
                      "merkle",
                      "history",
                      "attestation",
                      "x402"
                    ],
                    "url": "https://councilof.ai/api/receipts/batch?from=2026-01-01T00%3A00%3A00Z&to=2026-09-06T08%3A22%3A25Z"
                  },
                  "x402Version": 2
                },
                "schema": {
                  "$ref": "#/components/schemas/X402PaymentRequired"
                }
              }
            },
            "description": "Payment required \u2014 the x402 v2 challenge. The same JSON is base64-encoded in the PAYMENT-REQUIRED response header. Pay accepts[0] (scheme exact, network eip155:8453, USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, payTo 0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31; amount in atomic units) and retry the same request with the X-PAYMENT header. Verification of the artefact stays free.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "description": "base64(JSON) of this challenge body",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "summary": "Receipts batch \u2014 historical measurement leaves for a window (assembly)",
        "tags": [
          "x402",
          "assembly"
        ],
        "x-csoai": {
          "challenge": {
            "amount_source": "captured live 402 (challenges/receipts_batch.json)",
            "captured": true,
            "payment_required_header_bytes": 5624
          },
          "door": "https://councilof.ai/api/receipts/batch?from=2026-01-01T00:00:00Z",
          "free_forever_on_this_path": [
            "https://councilof.ai/api/receipts/batch?from=<iso>&preview=1"
          ],
          "free_preview": "https://councilof.ai/api/receipts/batch?from=2026-01-01T00:00:00Z&preview=1",
          "never": [
            "a conclusion about any leaf",
            "a grade",
            "a certificate",
            "a settlement-receipt claim"
          ],
          "paid_for": "assembly",
          "tier": "receipts_batch"
        },
        "x-payment-info": {
          "protocols": [
            "x402"
          ]
        }
      }
    },
    "/api/registers": {
      "get": {
        "operationId": "get__api_registers",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "measurement_not_certification": true,
                  "signed": false,
                  "state": "UNSIGNED_STATIC_SUMMARY"
                }
              }
            },
            "description": "Unsigned static benchmark summary \u2014 no signature or proof material supplied"
          }
        },
        "security": [],
        "summary": "* GET /api/registers \u2014 unsigned static benchmark summaries.\n *\n * This handler publishes hard-coded summary values. It does not load or verify\n * source records, signatures, receipts, or cryptographic",
        "x-csoai-evidence-state": "UNSIGNED_STATIC_SUMMARY"
      }
    },
    "/api/regulation": {
      "get": {
        "operationId": "get__api_regulation",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/regulation \u2014 source-cited regulation deadline feed.\n *\n * This endpoint deliberately serves a bounded, versioned register rather than\n * accepting generic writes. Dates are statements from "
      }
    },
    "/api/regulator-findings": {
      "get": {
        "operationId": "get__api_regulator-findings",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      }
    },
    "/api/report": {
      "get": {
        "operationId": "get__api_report",
        "responses": {
          "501": {
            "content": {
              "application/json": {
                "example": {
                  "accepted": false,
                  "endpoint": "/api/report",
                  "persisted": false,
                  "schema": "csoai.capability-state/0.1",
                  "signed": false,
                  "state": "NOT_IMPLEMENTED"
                }
              }
            },
            "description": "Not implemented \u2014 no input was accepted, persisted, or signed"
          }
        },
        "summary": "",
        "x-csoai-lifecycle": "NOT_IMPLEMENTED"
      },
      "post": {
        "operationId": "post__api_report",
        "responses": {
          "501": {
            "content": {
              "application/json": {
                "example": {
                  "accepted": false,
                  "endpoint": "/api/report",
                  "persisted": false,
                  "schema": "csoai.capability-state/0.1",
                  "signed": false,
                  "state": "NOT_IMPLEMENTED"
                }
              }
            },
            "description": "Not implemented \u2014 no input was accepted, persisted, or signed"
          }
        },
        "summary": "",
        "x-csoai-lifecycle": "NOT_IMPLEMENTED"
      }
    },
    "/api/reported": {
      "get": {
        "operationId": "get__api_reported",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/reported \u2014 third-party figures we carry but did not measure.\n *\n * REPORTED is claims made by a source about itself or another system: unsigned, not\n * measured here, and never entering the"
      },
      "post": {
        "operationId": "post__api_reported",
        "responses": {
          "501": {
            "content": {
              "application/json": {
                "example": {
                  "accepted": false,
                  "endpoint": "/api/reported",
                  "persisted": false,
                  "schema": "csoai.capability-state/0.1",
                  "signed": false,
                  "state": "NOT_IMPLEMENTED"
                }
              }
            },
            "description": "Not implemented \u2014 no input was accepted, persisted, or signed"
          }
        },
        "summary": "* GET /api/reported \u2014 third-party figures we carry but did not measure.\n *\n * REPORTED is claims made by a source about itself or another system: unsigned, not\n * measured here, and never entering the",
        "x-csoai-lifecycle": "NOT_IMPLEMENTED"
      }
    },
    "/api/request-attestation": {
      "get": {
        "description": "A signed card-v0 commission receipt for one named subject, plus every already-signed measurement card on file for it. Payment never mints a MEASURED cell.",
        "operationId": "x402_request_attestation",
        "parameters": [
          {
            "description": "Subject the door names (model id / instrument / vendor). Required on request-attestation; optional on evidence-bundle.",
            "example": "model-or-subject-id",
            "in": "query",
            "name": "subject",
            "required": true,
            "schema": {
              "const": "model-or-subject-id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "A signed card-v0 commission receipt for one named subject, plus every already-signed measurement card on file for it. Payment never mints a MEASURED cell.",
                  "type": "object"
                }
              }
            },
            "description": "A signed card-v0 commission receipt for one named subject, plus every already-signed measurement card on file for it. Payment never mints a MEASURED cell."
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "accepts": [
                    {
                      "amount": "20000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "extra": {
                        "decimals": 6,
                        "name": "USD Coin",
                        "symbol": "USDC",
                        "version": "2"
                      },
                      "maxAmountRequired": "20000",
                      "maxTimeoutSeconds": 300,
                      "network": "eip155:8453",
                      "payTo": "0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31",
                      "scheme": "exact"
                    }
                  ],
                  "error": "Payment required",
                  "extensions": {
                    "bazaar": {
                      "info": {
                        "input": {
                          "method": "GET",
                          "queryParams": {
                            "subject": "model-or-subject-id"
                          },
                          "type": "http"
                        }
                      }
                    }
                  },
                  "resource": {
                    "description": "A signed card-v0 commission receipt for one named subject, plus every already-signed measurement card on file for it. Payment never mints a MEASURED cell.",
                    "mimeType": "application/json",
                    "url": "https://councilof.ai/api/request-attestation?subject=model-or-subject-id"
                  },
                  "x402Version": 2
                },
                "schema": {
                  "$ref": "#/components/schemas/X402PaymentRequired"
                }
              }
            },
            "description": "Payment required \u2014 the x402 v2 challenge. The same JSON is base64-encoded in the PAYMENT-REQUIRED response header. Pay accepts[0] (scheme exact, network eip155:8453, USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, payTo 0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31; amount in atomic units) and retry the same request with the X-PAYMENT header. Verification of the artefact stays free.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "description": "base64(JSON) of this challenge body",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "summary": "Commission a signed card (request-attestation)",
        "tags": [
          "x402",
          "issuance"
        ],
        "x-csoai": {
          "challenge": {
            "amount_source": "functions/api/_skus.ts default band request_attestation.per_request (owner env override not visible offline)",
            "captured": false
          },
          "door": "https://councilof.ai/api/request-attestation?subject=model-or-subject-id",
          "free_preview": "https://councilof.ai/api/request-attestation?subject=<id>",
          "never": [
            "a score",
            "a rank",
            "a certificate",
            "a MEASURED cell minted by payment"
          ],
          "paid_for": "issuance",
          "tier": "issuance"
        },
        "x-payment-info": {
          "protocols": [
            "x402"
          ]
        }
      }
    },
    "/api/revenue": {
      "get": {
        "operationId": "get__api_revenue",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/revenue \u2014 the three-SKU revenue instrumentation (EXEC-A-REVENUE.md \u00a75).\n *\n * Reads the revenue counters straight out of counters.json (the counter canon) and, WHERE A\n * store is bound, th"
      }
    },
    "/api/root": {
      "get": {
        "operationId": "get__api_root",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/root \u2014 alias of public/root.json.\n * Same bytes the static door serves. Never a second forest."
      }
    },
    "/api/router": {
      "get": {
        "operationId": "get__api_router",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* /api/router \u2014 the bounded discovery + interop + packages router."
      }
    },
    "/api/rwa/evidence": {
      "get": {
        "description": "A signed XRPL evidence card: AccountRoot flags, Domain, two-way TOML check, and cited raw-fetch hashes. Historical state \u2014 not a rating or a guarantee. preview=1 is free unsigned. Paid signed card requires asset (HTTP 402).",
        "operationId": "x402_rwa_evidence",
        "parameters": [
          {
            "description": "XRPL asset symbol or issuer address to evidence (required). Example RLUSD. Use preview=1 for free unsigned measurement.",
            "example": "RLUSD",
            "in": "query",
            "name": "asset",
            "required": true,
            "schema": {
              "const": "RLUSD",
              "type": "string"
            }
          },
          {
            "description": "Free preview: same request, no payment, no signature",
            "in": "query",
            "name": "preview",
            "required": false,
            "schema": {
              "const": "1",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "description": "A signed XRPL evidence card: AccountRoot flags, Domain, two-way TOML check, and cited raw-fetch hashes. Historical state \u2014 not a rating or a guarantee.",
                  "type": "object"
                }
              }
            },
            "description": "A signed XRPL evidence card: AccountRoot flags, Domain, two-way TOML check, and cited raw-fetch hashes. Historical state \u2014 not a rating or a guarantee."
          },
          "402": {
            "content": {
              "application/json": {
                "example": {
                  "accepts": [
                    {
                      "amount": "20000",
                      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                      "extra": {
                        "decimals": 6,
                        "name": "USD Coin",
                        "symbol": "USDC",
                        "version": "2"
                      },
                      "maxAmountRequired": "20000",
                      "maxTimeoutSeconds": 300,
                      "network": "eip155:8453",
                      "payTo": "0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31",
                      "scheme": "exact"
                    }
                  ],
                  "error": "Payment required",
                  "extensions": {
                    "bazaar": {
                      "info": {
                        "input": {
                          "method": "GET",
                          "queryParams": {
                            "asset": "RLUSD"
                          },
                          "type": "http"
                        }
                      }
                    }
                  },
                  "resource": {
                    "description": "A signed XRPL evidence card: AccountRoot flags, Domain, two-way TOML check, and cited raw-fetch hashes. Historical state \u2014 not a rating or a guarantee. preview=1 is free unsigned. Paid signed card requires asset (HTTP 402).",
                    "mimeType": "application/json",
                    "url": "https://councilof.ai/api/rwa/evidence?asset=RLUSD"
                  },
                  "x402Version": 2
                },
                "schema": {
                  "$ref": "#/components/schemas/X402PaymentRequired"
                }
              }
            },
            "description": "Payment required \u2014 the x402 v2 challenge. The same JSON is base64-encoded in the PAYMENT-REQUIRED response header. Pay accepts[0] (scheme exact, network eip155:8453, USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, payTo 0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31; amount in atomic units) and retry the same request with the X-PAYMENT header. Verification of the artefact stays free.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "description": "base64(JSON) of this challenge body",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "summary": "XRPL asset evidence card (per request)",
        "tags": [
          "x402",
          "issuance"
        ],
        "x-csoai": {
          "challenge": {
            "amount_source": "functions/api/_skus.ts default band request_attestation.per_request (owner env override not visible offline)",
            "captured": false
          },
          "door": "https://councilof.ai/api/rwa/evidence?asset=RLUSD",
          "free_preview": "https://councilof.ai/api/rwa/evidence?asset=RLUSD&preview=1",
          "never": [
            "a rating",
            "a guarantee",
            "a verdict",
            "a rank",
            "a paywall on /api/xrpl or /root.json"
          ],
          "paid_for": "issuance",
          "tier": "rwa_evidence"
        },
        "x-payment-info": {
          "protocols": [
            "x402"
          ]
        }
      }
    },
    "/api/sandbox": {
      "get": {
        "operationId": "get__api_sandbox",
        "responses": {
          "503": {
            "content": {
              "application/json": {}
            },
            "description": "Unavailable \u2014 quarantined pre-release; no evidence is manufactured"
          }
        },
        "summary": "* sandbox \u2014 retired until its response can be derived from current evidence.\n * @openapi-unavailable",
        "x-csoai-lifecycle": "QUARANTINED_PRE_RELEASE"
      },
      "post": {
        "operationId": "post__api_sandbox",
        "responses": {
          "503": {
            "content": {
              "application/json": {}
            },
            "description": "Unavailable \u2014 quarantined pre-release; no evidence is manufactured"
          }
        },
        "summary": "* sandbox \u2014 retired until its response can be derived from current evidence.\n * @openapi-unavailable",
        "x-csoai-lifecycle": "QUARANTINED_PRE_RELEASE"
      }
    },
    "/api/security": {
      "get": {
        "operationId": "get__api_security",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      }
    },
    "/api/specialists": {
      "get": {
        "operationId": "get__api_specialists",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/specialists \u2014 the signed specialist-team feed, served LIVE + pass-through.\n *\n * Honest PROXY of the estate's signed specialist-team feed\n * (https://csoai-sovereign.pages.dev/api/specialis"
      }
    },
    "/api/state": {
      "get": {
        "operationId": "get__api_state",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/state \u2014 the ONE live state surface every lane quotes instead of asserting.\n *\n * \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n * WHY THIS EXISTS\n * In one w"
      }
    },
    "/api/subscribe": {
      "get": {
        "operationId": "get__api_subscribe",
        "responses": {
          "501": {
            "content": {
              "application/json": {
                "example": {
                  "accepted": false,
                  "endpoint": "/api/subscribe",
                  "persisted": false,
                  "schema": "csoai.capability-state/0.1",
                  "signed": false,
                  "state": "NOT_IMPLEMENTED"
                }
              }
            },
            "description": "Not implemented \u2014 no input was accepted, persisted, or signed"
          }
        },
        "summary": "",
        "x-csoai-lifecycle": "NOT_IMPLEMENTED"
      },
      "post": {
        "operationId": "post__api_subscribe",
        "responses": {
          "501": {
            "content": {
              "application/json": {
                "example": {
                  "accepted": false,
                  "endpoint": "/api/subscribe",
                  "persisted": false,
                  "schema": "csoai.capability-state/0.1",
                  "signed": false,
                  "state": "NOT_IMPLEMENTED"
                }
              }
            },
            "description": "Not implemented \u2014 no input was accepted, persisted, or signed"
          }
        },
        "summary": "",
        "x-csoai-lifecycle": "NOT_IMPLEMENTED"
      }
    },
    "/api/swift": {
      "get": {
        "operationId": "get__api_swift",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/swift \u2014 reader of public/interop/swift-census.json.\n * Three-state census tape (LIVE / COMMITTED / DISCOVERED). DISCOVERED-first,\n * not MEASURED. Not a SWIFT client feed. writes_board=fals"
      }
    },
    "/api/synthesis": {
      "get": {
        "operationId": "get__api_synthesis",
        "responses": {
          "503": {
            "content": {
              "application/json": {}
            },
            "description": "Unavailable \u2014 quarantined pre-release; no evidence is manufactured"
          }
        },
        "summary": "* /api/synthesis \u2014 retired until mappings is derived from current evidence.\n * @openapi-unavailable",
        "x-csoai-lifecycle": "QUARANTINED_PRE_RELEASE"
      }
    },
    "/api/tools": {
      "get": {
        "operationId": "get__api_tools",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/tools?q=<query> \u2014 the MCP tool catalogue, derived from a PROBED artifact.\n *\n * WHAT CHANGED (2026-08-26, lane A4)\n * This handler used to return `const CATALOGUE_TOTAL = 378` \u2014 a hardcoded"
      }
    },
    "/api/trace": {
      "get": {
        "operationId": "get__api_trace",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "Resolve one published card by exact SHA-256. This endpoint reads; it never mints."
      },
      "post": {
        "operationId": "post__api_trace",
        "responses": {
          "405": {
            "content": {
              "application/json": {}
            },
            "description": "Method not allowed \u2014 use the documented read method"
          }
        },
        "summary": "Resolve one published card by exact SHA-256. This endpoint reads; it never mints.",
        "x-csoai-lifecycle": "METHOD_NOT_ALLOWED"
      }
    },
    "/api/verify": {
      "get": {
        "operationId": "get__api_verify",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* POST /api/verify \u2014 verify a posted measurement card. GET explains how.\n *\n * WHY THIS EXISTS. /api/verify answered 404 while six /interop manifests and four generators\n * pointed at it, and the esta"
      },
      "post": {
        "operationId": "post__api_verify",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* POST /api/verify \u2014 verify a posted measurement card. GET explains how.\n *\n * WHY THIS EXISTS. /api/verify answered 404 while six /interop manifests and four generators\n * pointed at it, and the esta"
      }
    },
    "/api/verify-batch": {
      "get": {
        "operationId": "get__api_verify-batch",
        "responses": {
          "501": {
            "content": {
              "application/json": {
                "example": {
                  "accepted": false,
                  "endpoint": "/api/verify-batch",
                  "persisted": false,
                  "schema": "csoai.capability-state/0.1",
                  "signed": false,
                  "state": "NOT_IMPLEMENTED"
                }
              }
            },
            "description": "Not implemented \u2014 no input was accepted, persisted, or signed"
          }
        },
        "summary": "* GET /api/verify-batch \u2014 not implemented; no cards are verified.",
        "x-csoai-lifecycle": "NOT_IMPLEMENTED"
      }
    },
    "/api/verify-card": {
      "get": {
        "operationId": "get__api_verify-card",
        "responses": {
          "501": {
            "content": {
              "application/json": {
                "example": {
                  "accepted": false,
                  "endpoint": "/api/verify-card",
                  "persisted": false,
                  "schema": "csoai.capability-state/0.1",
                  "signed": false,
                  "state": "NOT_IMPLEMENTED"
                }
              }
            },
            "description": "Not implemented \u2014 no input was accepted, persisted, or signed"
          }
        },
        "summary": "* GET /api/verify-card \u2014 not implemented; no card is verified.",
        "x-csoai-lifecycle": "NOT_IMPLEMENTED"
      }
    },
    "/api/verify-tally": {
      "get": {
        "operationId": "get__api_verify-tally",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      },
      "post": {
        "operationId": "post__api_verify-tally",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      }
    },
    "/api/wave-dashboard": {
      "get": {
        "operationId": "get__api_wave-dashboard",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": ""
      }
    },
    "/api/webhooks": {
      "delete": {
        "operationId": "delete__api_webhooks",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET/POST /api/webhooks \u2014 webhook CRUD (in-memory + KV if bound).\n * GET: returns array of { id, url, events, active, created_at }\n * POST: creates new webhook with { url, events }\n * DELETE: ?id=X r"
      },
      "get": {
        "operationId": "get__api_webhooks",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET/POST /api/webhooks \u2014 webhook CRUD (in-memory + KV if bound).\n * GET: returns array of { id, url, events, active, created_at }\n * POST: creates new webhook with { url, events }\n * DELETE: ?id=X r"
      },
      "post": {
        "operationId": "post__api_webhooks",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET/POST /api/webhooks \u2014 webhook CRUD (in-memory + KV if bound).\n * GET: returns array of { id, url, events, active, created_at }\n * POST: creates new webhook with { url, events }\n * DELETE: ?id=X r"
      }
    },
    "/api/witness": {
      "get": {
        "operationId": "get__api_witness",
        "responses": {
          "503": {
            "content": {
              "application/json": {}
            },
            "description": "Unavailable \u2014 quarantined pre-release; no evidence is manufactured"
          }
        },
        "summary": "* /api/witness \u2014 quarantined paid witness surface.\n *\n * @openapi-unavailable\n *\n * The implementation below is retained and tested as a fixture, but the public\n * handlers return 503 before parsing i",
        "x-csoai-lifecycle": "QUARANTINED_PRE_RELEASE"
      },
      "post": {
        "operationId": "post__api_witness",
        "responses": {
          "503": {
            "content": {
              "application/json": {}
            },
            "description": "Unavailable \u2014 quarantined pre-release; no evidence is manufactured"
          }
        },
        "summary": "* /api/witness \u2014 quarantined paid witness surface.\n *\n * @openapi-unavailable\n *\n * The implementation below is retained and tested as a fixture, but the public\n * handlers return 503 before parsing i",
        "x-csoai-lifecycle": "QUARANTINED_PRE_RELEASE"
      }
    },
    "/api/worker": {
      "get": {
        "operationId": "get__api_worker",
        "responses": {
          "501": {
            "content": {
              "application/json": {
                "example": {
                  "accepted": false,
                  "endpoint": "/api/worker",
                  "persisted": false,
                  "schema": "csoai.capability-state/0.1",
                  "signed": false,
                  "state": "NOT_IMPLEMENTED"
                }
              }
            },
            "description": "Not implemented \u2014 no input was accepted, persisted, or signed"
          }
        },
        "summary": "",
        "x-csoai-lifecycle": "NOT_IMPLEMENTED"
      },
      "post": {
        "operationId": "post__api_worker",
        "responses": {
          "501": {
            "content": {
              "application/json": {
                "example": {
                  "accepted": false,
                  "endpoint": "/api/worker",
                  "persisted": false,
                  "schema": "csoai.capability-state/0.1",
                  "signed": false,
                  "state": "NOT_IMPLEMENTED"
                }
              }
            },
            "description": "Not implemented \u2014 no input was accepted, persisted, or signed"
          }
        },
        "summary": "",
        "x-csoai-lifecycle": "NOT_IMPLEMENTED"
      }
    },
    "/api/x402": {
      "get": {
        "operationId": "get__api_x402",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/x402 \u2014 the machine catalog of the metered rail. NO AMOUNTS HERE.\n *\n * One resource per entry, each with a free preview and a 402 door. Amounts\n * surface only inside a 402 challenge (accep"
      }
    },
    "/api/x402-trust-seller": {
      "get": {
        "operationId": "get__api_x402-trust-seller",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/x402-trust-seller?host=<catalog-host>\n *\n * Per-skin seller-side trust page: a catalog owner sees a pointer at their own\n * verified-count door, sold as MCP `commission_card` (request-attes"
      }
    },
    "/api/xrpl": {
      "get": {
        "operationId": "get__api_xrpl",
        "responses": {
          "200": {
            "content": {
              "application/json": {}
            },
            "description": "OK"
          }
        },
        "security": [],
        "summary": "* GET /api/xrpl \u2014 reader of the committed public-root 16.\n *\n * 200 only when this deploy's /root.json plus /cards yield exactly the locked\n * 16 xrpl.asset.state leaves whose sha256 sit on that root."
      }
    }
  },
  "servers": [
    {
      "url": "https://councilof.ai"
    }
  ],
  "tags": [
    {
      "description": "HTTP 402 doors on the x402 rail \u2014 only inside each resource's 402 challenge (accepts[].amount) \u2014 never on this catalog, never in prose",
      "name": "x402"
    },
    {
      "description": "sells issuance of a signed artefact",
      "name": "issuance"
    },
    {
      "description": "sells assembly of already-public evidence",
      "name": "assembly"
    },
    {
      "description": "a 402 route priced at zero",
      "name": "free"
    }
  ],
  "x-x402": {
    "amounts": "only inside each resource's 402 challenge (accepts[].amount) \u2014 never on this catalog, never in prose",
    "asset": {
      "contract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "decimals": 6,
      "symbol": "USDC"
    },
    "catalog": "https://councilof.ai/api/x402",
    "doors": [
      "/api/free-door",
      "/api/request-attestation",
      "/api/evidence-bundle",
      "/api/eunomia-data",
      "/api/proof",
      "/api/rwa/evidence",
      "/api/art50/marking-evidence",
      "/api/feeds/provider-diff",
      "/api/receipts/batch"
    ],
    "facilitator": {
      "configured": true,
      "note": "the facilitator URL is a Cloudflare Pages env var (X402_FACILITATOR_URL) that no public surface publishes; /api/x402 reports only whether one is configured",
      "url": null
    },
    "mcp": "https://councilof.ai/mcp",
    "mode": "live",
    "mode_note": "A settled receipt (facilitator /verify then /settle) unlocks the paid artefact. Verification of every artefact stays free.",
    "network": "eip155:8453",
    "not": [
      "score",
      "certificate",
      "filled-cells",
      "pay-to-pass",
      "rank"
    ],
    "offer_receipt": {
      "alg": "EdDSA",
      "did_document": "https://csoai.org/.well-known/did.json",
      "formats_emitted": [
        "jws"
      ],
      "formats_not_emitted": [
        "eip712"
      ],
      "kid": "did:web:csoai.org#board-attestation-1",
      "receipts_by_payer": "https://councilof.ai/api/receipts?payer=0x\u2026",
      "spec": "https://github.com/x402-foundation/x402/blob/69652a69798f0b08f95bef33318896e36e210f7e/specs/extensions/extension-offer-and-receipt.md",
      "spec_commit": "69652a69798f0b08f95bef33318896e36e210f7e",
      "supported": true,
      "verify_hosted": "https://councilof.ai/api/receipts/verify",
      "verify_offline": "scripts/verify_receipt.py",
      "why_no_eip712": "the edge holds one Ed25519 signing key (a Cloudflare Pages secret) and no secp256k1 signer; eip712 would require a key nobody has provisioned, so we emit none rather than a format we cannot produce"
    },
    "payTo": "0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31",
    "public_operations": 90,
    "quarantined": [
      {
        "buyable": false,
        "free_status": "https://councilof.ai/api/witness/status?sha256=<64-hex>",
        "lifecycle": "QUARANTINED_PRE_RELEASE",
        "reason": "paid witness issuance is disabled until a release gate verifies leaf \u2192 signed root \u2192 sidecar \u2192 Rekor \u2192 OpenTimestamps",
        "url": "https://councilof.ai/api/witness?sha256=<64-hex>"
      }
    ],
    "revenue_truth": "https://councilof.ai/api/revenue",
    "schema_of_source": {
      "catalog": "csoai.x402-catalog/0.2",
      "well_known": "csoai.x402/0.2"
    },
    "scheme": "exact",
    "well_known": "https://councilof.ai/.well-known/x402.json"
  }
}
