openapi: 3.2.0 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 — never a grade. 22 axes measured · 14 model fleets · 3 public leader scores · 8 fact runs · TIE is TIE · 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 — Public Free API version: 0.2+820f7aa0ad7a x-guidance: 'Free board: GET /api/gspc — 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. Offer & Receipt emission is conditional: a 402 carries server-signed offers only when the Pages signing key is available; a settled 200 carries a signed receipt only when settlement exposes the required payer and transaction evidence and that key is available. The extension uses 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 · 14 model fleets · 3 public leader scores · 8 fact runs · TIE is TIE · not a certificate.' servers: - url: https://councilof.ai tags: - description: a 402 route priced at zero name: free paths: /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 — 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 — 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 — 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' csoai_pricing: campaign_id: null fresh_compute_excluded: true normal_amount_atomic: '0' offered_amount_atomic: '0' pricing_basis: STANDARD product_id: csoai.product.request_attestation sku_id: request_attestation tier: per_request 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 — a grade is never sold. Paid artefacts are catalogued at https://councilof.ai/api/x402. Measurement, not certification.' extra: decimals: 6 name: USD Coin symbol: USDC version: '2' maxAmountRequired: '0' maxTimeoutSeconds: 300 mimeType: application/json network: eip155:8453 payTo: '0x212686404A7D1E1fD88F35eD6200c3aF7A78ae31' resource: https://councilof.ai/api/free-door scheme: exact error: Payment required extensions: bazaar: info: input: method: GET type: http output: example: board: https://councilof.ai/api/gspc price_usdc: 0 root: https://councilof.ai/root.json schema: csoai.free-door/0.1 verify: https://councilof.ai/gspc-verify type: json schema: $schema: https://json-schema.org/draft/2020-12/schema properties: input: additionalProperties: false properties: method: enum: - GET type: string type: const: http type: string required: - type - method type: object output: properties: type: type: string required: - type type: object required: - input type: object offer-receipt: info: offers: - acceptIndex: 0 format: jws signature: eyJhbGciOiJFZERTQSIsImtpZCI6ImRpZDp3ZWI6Y3NvYWkub3JnI2JvYXJkLWF0dGVzdGF0aW9uLTEifQ.eyJhbW91bnQiOiIwIiwiYXNzZXQiOiIweDgzMzU4OWZDRDZlRGI2RTA4ZjRjN0MzMkQ0ZjcxYjU0YmRBMDI5MTMiLCJuZXR3b3JrIjoiZWlwMTU1Ojg0NTMiLCJwYXlUbyI6IjB4MjEyNjg2NDA0QTdEMUUxZkQ4OEYzNWVENjIwMGMzYUY3QTc4YWUzMSIsInJlc291cmNlVXJsIjoiaHR0cHM6Ly9jb3VuY2lsb2YuYWkvYXBpL2ZyZWUtZG9vciIsInNjaGVtZSI6ImV4YWN0IiwidmFsaWRVbnRpbCI6MTc4OTMxNTE3NywidmVyc2lvbiI6MX0.lW-HS7lvIRiLxgPjAxxF7sRm-N__mBM-ZwJpwhd3jainz_LP-xj4UaVi47S4tMQc5cnqCsaOr6IWIEOP2YbOCw 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: '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 — a grade is never sold. Paid artefacts are catalogued at https://councilof.ai/api/x402. Measurement, not certification.' mimeType: application/json serviceName: CSOAI Free Door url: https://councilof.ai/api/free-door x402Version: 2 schema: $ref: '#/components/schemas/X402PaymentRequired' description: Payment required — 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 Free Door tags: - free x-csoai: challenge: amount_source: captured live 402 (challenges/free_door.json) captured: true payment_required_header_bytes: 5380 door: https://councilof.ai/api/free-door indexed_in: x402 Bazaar (PayAI) paid_for: null x-payment-info: protocols: - x402 components: schemas: 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' — a compact EdDSA JWS whose payload is the offer (x402 Offer & Receipt extension §4.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 (§4.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 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 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 githubOidc: bearerFormat: JWT description: GitHub Actions OIDC token satisfying the handler's issuer, audience, repository and workflow checks. scheme: bearer type: http operatorBearer: description: Operation-specific configured operator or writer credential. Not interchangeable across operations. scheme: bearer type: http x-x402: amounts: only inside each resource's 402 challenge (accepts[].amount) — 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/wrapper - /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… 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: 104 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 → signed root → sidecar → Rekor → 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