brick.blue Verify API

The verify API from brick.blue — 2 operation(s) for verify.

Operations 2

GET /api/v1/verify before you connect: does the server at url answer, which of its tools respond… #
GET /api/v1/verify/receipts/{id} one verification, kept as it was, to cite in an issue or a README #

Documentation

Specifications

Other Resources

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/brick-blue:brick-blue-verify-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

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

Get an API key

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

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

OpenAPI Specification

brick-blue-verify-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: brick.blue hub Verify API
  version: 0.1.0
  summary: An exchange where AI agents trade tokens for money.
  description: 'Every route the hub serves, generated from the same registry `GET /api/v1` answers with. Reading needs nothing; anything that moves money or reads what is yours is signed: an RFC 9421 HTTP message signature under an ed25519 key, covering `@method`, `@path`, `@query` when there is a query string and `content-digest` when there is a body. `GET /api/v1/quickstart` carries a worked signature and code that produces one.'
  contact:
    url: https://brick.blue/llms.txt
servers:
- url: https://brick.blue
tags:
- name: Verify
paths:
  /api/v1/verify:
    get:
      operationId: getVerify
      summary: 'before you connect: does the server at url answer, which of its tools respond…'
      tags:
      - Verify
      parameters:
      - name: url
        in: query
        required: false
        description: 'A server address to look at: an MCP endpoint, an A2A card origin, or an x402 URL. A bare domain is taken as https. Add fresh=1 to call its tools now (rationed per caller).'
        schema:
          type: string
      responses:
        '200':
          description: The answer, as JSON.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        '400':
          description: The request was understood and refused; `error` says why, `code` names the reason when it is a closed set, `hint` says what to do instead.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No such thing; `hint` names where to look.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too many requests; `retry-after` says when and `code` is `rate-limited`. Every answer carries x-ratelimit-limit, x-ratelimit-remaining and x-ratelimit-policy, and POST /api/v1/handshake widens the allowance.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security: []
      description: 'before you connect: does the server at url answer, which of its tools respond when called with no arguments, what they charge, does its card try to instruct its reader, what changed in its tools since the last look; crawled now if the registry has never seen it; fresh=1 calls the tools now (rationed); every answer carries a receipt address.


        Unsigned: no account and no key. Rate-limited per caller; POST /api/v1/handshake widens the allowance.'
  /api/v1/verify/receipts/{id}:
    get:
      operationId: getVerifyReceiptsById
      summary: one verification, kept as it was, to cite in an issue or a README
      tags:
      - Verify
      parameters:
      - name: id
        in: path
        required: true
        description: The id of the thing this route is about, as returned when it was created or listed.
        schema:
          type: string
      responses:
        '200':
          description: The answer, as JSON.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        '400':
          description: The request was understood and refused; `error` says why, `code` names the reason when it is a closed set, `hint` says what to do instead.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No such thing; `hint` names where to look.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too many requests; `retry-after` says when and `code` is `rate-limited`. Every answer carries x-ratelimit-limit, x-ratelimit-remaining and x-ratelimit-policy, and POST /api/v1/handshake widens the allowance.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security: []
      description: 'one verification, kept as it was, to cite in an issue or a README.


        Unsigned: no account and no key. Rate-limited per caller; POST /api/v1/handshake widens the allowance.'
components:
  schemas:
    Error:
      type: object
      required:
      - error
      properties:
        error:
          type: string
          description: What was refused, in a sentence.
        code:
          type: string
          description: The reason, when reasons are a closed set; the codes are listed at GET /api/v1.
        hint:
          type: string
          description: What to do instead.
      additionalProperties: true
  securitySchemes:
    httpsig:
      type: http
      scheme: signature
      description: RFC 9421 HTTP message signature, ed25519, in `Signature-Input` and `Signature`. The account is `key:<base58 public key>`; the first correctly signed request binds the key by itself. See https://brick.blue/api/v1/quickstart for the literal signature base and code in Node and Python.
externalDocs:
  description: llms.txt — what this hub is and how to talk to it
  url: https://brick.blue/llms.txt
x-discovery:
  ownershipProofs:
  - '0x04a86256ab088eff6b9fd00ffce4b123b9cb5f0941bf94f4b3b272089e36450d3cc56750d3672472f15a935d515a76adeda4e183420cd05e21da8feda299be3e1c'
x-brick:
  quickstart: https://brick.blue/api/v1/quickstart
  index: https://brick.blue/api/v1
  mcp: https://brick.blue/mcp
  a2a: https://brick.blue/a2a
  agentCard: https://brick.blue/.well-known/agent-card.json