KeepBal Discovery API

Unauthenticated metadata.

GitHub OpenAPI

Operations 18

GET /openapi/openapi.yaml Public OpenAPI document #
GET /openapi.yaml Public OpenAPI document #
GET /server.json MCP registry server document #
GET /.well-known/mcp/server-card.json KeepBal MCP server card #
GET /docs/quickstart Quickstart in HTML or Markdown through Accept negotiation #
GET /llms.txt Agent-oriented product index (plain text) #
GET /SKILL.md Agent setup skill (set up https://keepbal.com/SKILL.md). #
GET /llms-full.txt Expanded agent documentation (plain text) #
GET /catalog.json Machine-readable model and tool catalog with KeepBal prices #
GET /pricing Human-readable pricing and limits (HTML or markdown) #
GET /faq FAQ page with FAQPage JSON-LD #
GET /docs Getting started in three steps #
GET /quickstart Redirect to getting started #
GET /.well-known/security.txt security.txt #
GET /capabilities Configured route availability (not an upstream health probe) #
GET /healthz Liveness, upstream mode, and canonical public_base_url #
GET /.well-known/agent-card.json Informational agent card stub (no A2A transport) #
GET /.well-known/mcp.json Tool manifest (MCP Streamable HTTP is live) #

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/keepbal-com:keepbal-com-discovery-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

keepbal-com-discovery-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: KeepBal Discovery API
  version: 0.1.0
  summary: One key and one prepaid wallet for agent tools.
  description: 'Hosted MCP: https://keepbal.com/mcp (Streamable HTTP, bearer key). Setup: https://keepbal.com/docs/mcp.

    Search for a tool, inspect its price, and run it with a KeepBal key.

    Tool search status: live. Model inference status: live.

    Read /catalog.json for status and available on each model, tool, and operation.

    Signup includes $1 free credit, once. Top up $10, $20, $50, or $100 in Console Wallet with Paddle.

    Top-up fee: 8% of the credit, rounded up to the cent, + $0.35 before tax.

    Only the credit amount is added to your wallet. No subscription.

    Fixed tools show the per-call price; variable tools bill provider price plus 35%. Inspect returns pricing metadata, not a quote.

    Fixed tools charge the published per-call price. Variable tools charge the provider''s reported actual cost plus the disclosed markup (currently 35%). Missing actual cost on variable tools charges $0. Quotes are estimates, labelled estimated_price; completed price is the settlement debit. Failed, blocked, or timed-out runs cost $0.

    Charges settle after calls. Daily limits are not available. Catalog calls support max_cost_usd spending caps.

    Model charges require returned token usage. Chat Completions, Responses and Messages support SSE on configured live routes. Catalog streams may be buffered until usage settlement is durable. Embeddings do not stream. Image pricing is not implemented.

    MCP is live via Streamable HTTP; A2A transport is not live. Request formats and current availability: /llms.txt and /SKILL.md.

    KeepBal errors use the OpenAI error format. Upstream error bodies may differ.

    Authenticate protected requests with Authorization: Bearer dgk_live_...

    KeepBal error envelope: {"error":{"message","type","code","param","request_id"}}.

    A 503 provider_unavailable is never billed.

    Use x-keepbal-request-id and x-keepbal-cost-micros when present. Catalog responses omit private routing and provider-mode headers.

    Streaming responses have no final cost header; check Usage after the call is recorded.

    Approximate x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset, and retry-after headers are exposed to browsers.

    Primary public host: https://keepbal.com. See /llms-full.txt for the technical reference.'
  contact:
    name: KeepBal
    url: https://keepbal.com
    email: hello@keepbal.com
servers:
- url: https://keepbal.com
  description: KeepBal (canonical public origin)
security:
- bearerAuth: []
tags:
- name: Discovery
  description: Unauthenticated metadata.
paths:
  /openapi/openapi.yaml:
    get:
      tags:
      - Discovery
      security: []
      summary: Public OpenAPI document
      responses:
        '200':
          description: YAML specification
      operationId: getOpenapiOpenapiYaml
      x-operation-id-source: derived
  /openapi.yaml:
    get:
      tags:
      - Discovery
      security: []
      summary: Public OpenAPI document
      responses:
        '200':
          description: YAML specification
      operationId: getOpenapiYaml
      x-operation-id-source: derived
  /server.json:
    get:
      tags:
      - Discovery
      security: []
      summary: MCP registry server document
      responses:
        '200':
          description: Versioned MCP registry document with Streamable HTTP remote
      operationId: getServerJson
      x-operation-id-source: derived
  /.well-known/mcp/server-card.json:
    get:
      tags:
      - Discovery
      security: []
      summary: KeepBal MCP server card
      responses:
        '200':
          description: Server identity and four meta-tools with input schemas and authentication
      operationId: getWellKnownMcpServerCardJson
      x-operation-id-source: derived
  /docs/quickstart:
    get:
      tags:
      - Discovery
      security: []
      summary: Quickstart in HTML or Markdown through Accept negotiation
      responses:
        '200':
          description: Account setup and first tool and model calls
      operationId: getDocsQuickstart
      x-operation-id-source: derived
  /llms.txt:
    get:
      tags:
      - Discovery
      security: []
      summary: Agent-oriented product index (plain text)
      responses:
        '200':
          description: llms.txt
      operationId: getLlmsTxt
      x-operation-id-source: derived
  /SKILL.md:
    get:
      tags:
      - Discovery
      security: []
      summary: Agent setup skill (set up https://keepbal.com/SKILL.md).
      responses:
        '200':
          description: SKILL.md
      operationId: getSKILLMd
      x-operation-id-source: derived
  /llms-full.txt:
    get:
      tags:
      - Discovery
      security: []
      operationId: getLlmsFull
      summary: Expanded agent documentation (plain text)
      responses:
        '200':
          description: llms-full.txt
  /catalog.json:
    get:
      tags:
      - Discovery
      security: []
      operationId: getCatalog
      summary: Machine-readable model and tool catalog with KeepBal prices
      description: Catalog mode returns tool pages of up to 200 records; follow next_page until null. Models and operations accompany each page. Legacy mode can omit pagination fields and return its complete catalog.
      parameters:
      - name: page
        in: query
        required: false
        schema:
          type: integer
          default: 1
          minimum: 1
      responses:
        '200':
          description: Catalog JSON
          content:
            application/json:
              schema:
                type: object
                required:
                - product
                - company
                - models
                - tools
                - operations
                properties:
                  product:
                    type: string
                    example: KeepBal
                  company:
                    type: string
                    example: KeepBal
                  mcp_transport:
                    type: string
                    example: streamable-http
                  total:
                    type: integer
                    minimum: 0
                    description: Total number of tools in catalog mode
                  page:
                    type: integer
                    minimum: 1
                  page_size:
                    type: integer
                    const: 200
                  next_page:
                    type:
                    - integer
                    - 'null'
                    minimum: 1
                    description: Next tool page; null terminates pagination
                  models:
                    type: array
                    items:
                      $ref: '#/components/schemas/CatalogModel'
                  tools:
                    type: array
                    items:
                      type: object
                  operations:
                    type: array
                    items:
                      type: object
  /pricing:
    get:
      tags:
      - Discovery
      security: []
      operationId: getPricingPage
      summary: Human-readable pricing and limits (HTML or markdown)
      responses:
        '200':
          description: Pricing page
  /faq:
    get:
      tags:
      - Discovery
      security: []
      operationId: getFaqPage
      summary: FAQ page with FAQPage JSON-LD
      responses:
        '200':
          description: FAQ page
  /docs:
    get:
      tags:
      - Discovery
      security: []
      operationId: getDocsIndex
      summary: Getting started in three steps
      responses:
        '200':
          description: Docs index
  /quickstart:
    get:
      tags:
      - Discovery
      security: []
      operationId: getQuickstart
      summary: Redirect to getting started
      responses:
        '301':
          description: Redirect to /docs/quickstart
  /.well-known/security.txt:
    get:
      tags:
      - Discovery
      security: []
      operationId: getSecurityTxt
      summary: security.txt
      responses:
        '200':
          description: security.txt
  /capabilities:
    get:
      tags:
      - Discovery
      security: []
      summary: Configured route availability (not an upstream health probe)
      responses:
        '200':
          description: Capabilities, catalog counts, and customer pricing
      operationId: getCapabilities
      x-operation-id-source: derived
  /healthz:
    get:
      tags:
      - Discovery
      security: []
      summary: Liveness, upstream mode, and canonical public_base_url
      responses:
        '200':
          description: OK
      operationId: getHealthz
      x-operation-id-source: derived
  /.well-known/agent-card.json:
    get:
      tags:
      - Discovery
      security: []
      summary: Informational agent card stub (no A2A transport)
      responses:
        '200':
          description: OK
      operationId: getWellKnownAgentCardJson
      x-operation-id-source: derived
  /.well-known/mcp.json:
    get:
      tags:
      - Discovery
      security: []
      summary: Tool manifest (MCP Streamable HTTP is live)
      responses:
        '200':
          description: OK
      operationId: getWellKnownMcpJson
      x-operation-id-source: derived
components:
  schemas:
    CatalogModel:
      type: object
      description: Raw compatibility token rates in micro-USD per million tokens. The legacy output_micros_per_m field remains present for embeddings but is inapplicable; embeddings bill input tokens only. Cache rates apply to generation endpoints when known; zero is a known rate, while absent/null is unknown.
      properties:
        id:
          type: string
        endpoint:
          type: string
        input_micros_per_m:
          type: integer
          minimum: 0
        output_micros_per_m:
          type: integer
          minimum: 0
          description: Inapplicable for embeddings; retained for compatibility
        cache_read_micros_per_m:
          type:
          - integer
          - 'null'
          minimum: 0
        cache_write_micros_per_m:
          type:
          - integer
          - 'null'
          minimum: 0
      additionalProperties: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: dgk_live_...