{
  "name": "BlackForge",
  "description": "Real time crypto market data for agents and trading systems: order book depth, liquidity added and pulled, order ladders, trade flow, and futures funding, open interest and liquidations, from the major exchanges. 150+ columns for 14,000+ spot pairs, each a measurement with a definition. Read it over the HTTP API with an API key, or pay per call over x402 with no account.",
  "supportedInterfaces": [
    {
      "url": "https://api.blackforge.so",
      "protocolBinding": "https://api.blackforge.so/openapi.json",
      "protocolVersion": "1.0"
    }
  ],
  "provider": {
    "organization": "BlackForge",
    "url": "https://blackforge.so"
  },
  "version": "1.0",
  "documentationUrl": "https://blackforge.so/docs",
  "iconUrl": "https://blackforge.so/logo.svg",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false
  },
  "securitySchemes": {
    "apiKey": {
      "apiKeySecurityScheme": {
        "location": "header",
        "name": "x-api-key",
        "description": "Your BlackForge API key, made in the console at https://app.blackforge.so/api, on any plan including Free. Without a key, the data routes answer HTTP 402 with an x402 price and accept a USDC payment instead. GET /v1/catalog needs neither."
      }
    }
  },
  "securityRequirements": [
    {
      "schemes": {
        "apiKey": {
          "list": []
        }
      }
    }
  ],
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "catalog",
      "name": "Catalog and symbols",
      "description": "Find what can be read before paying for anything: every venue and every column, spot and futures, with its unit, definition and the lowest plan that unlocks it (free, no key), and the pairs each venue lists. Routes: GET /v1/catalog, GET /v1/symbols.",
      "tags": [
        "catalog",
        "discovery",
        "symbols",
        "metadata"
      ],
      "examples": [
        "GET /v1/catalog",
        "GET /v1/symbols?exchange=binance"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "spot",
      "name": "Spot market data",
      "description": "Raw measurements for any spot pair on the major exchanges: order book depth and shape, liquidity added and pulled, order ladders, market order cost, trade flow and trade sizes, candles and market context. The newest row for one pair, or one column over a time range at 1m, 5m, 1h or 1d. Routes: GET /v1/series, GET /v1/latest.",
      "tags": [
        "crypto",
        "market-data",
        "order-book",
        "liquidity",
        "trade-flow"
      ],
      "examples": [
        "GET /v1/latest?exchange=binance&symbol=BTCUSDT",
        "GET /v1/series?exchange=binance&symbol=BTCUSDT&metric=price&from=2026-11-01T00:00:00Z&to=2026-11-02T00:00:00Z&interval=1h"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "futures",
      "name": "Futures data",
      "description": "Linear perpetual and dated futures on the major futures venues: mark, index and last price, funding and predicted funding, open interest, taker flow and liquidations. The newest row, a series, a ranking across contracts and venues, and the liquidation event feed (Max and up). Routes: GET /v1/futures/latest, GET /v1/futures/series, GET /v1/futures/top, GET /v1/futures/liquidations, GET /v1/futures/symbols.",
      "tags": [
        "crypto",
        "futures",
        "funding-rate",
        "open-interest",
        "liquidations"
      ],
      "examples": [
        "GET /v1/futures/latest?exchange=binance&symbol=BTCUSDT",
        "GET /v1/futures/top?metric=fundingRate&baseAsset=BTC"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "live-formulas",
      "name": "Live formulas and alerts",
      "description": "Write your own measure from order book and trade data across venues, computed server-side in real time, and get notified by email or a signed webhook when it crosses a value you set (Ultra). Routes: POST /v1/formulas/validate, POST /v1/formulas, GET /v1/formulas, GET /v1/formulas/{id}, DELETE /v1/formulas/{id}, POST /v1/alerts, GET /v1/alerts, PATCH /v1/alerts/{id}, DELETE /v1/alerts/{id}, GET /v1/alerts/{id}/events.",
      "tags": [
        "formulas",
        "alerts",
        "webhooks",
        "real-time"
      ],
      "examples": [
        "POST /v1/formulas/validate {\"expr\": \"mid(binance:BTCUSDT) - mid(okx:BTC-USDT)\"}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "account",
      "name": "Usage and credits",
      "description": "A key's recent requests and remaining monthly rows, and a prepaid bundle of pay per call credits bought over x402. Routes: POST /v1/credits, GET /v1/usage.",
      "tags": [
        "usage",
        "billing",
        "x402"
      ],
      "examples": [
        "GET /v1/usage"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ]
}
