CDK Bot Status API

The Status API from CDK Bot — 1 operation(s) for status.

Operations 1

GET /health Service health and trust stats #

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/cdk-bot:cdk-bot-status-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

cdk-bot-status-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: CDK Bot — Digital Products Status API
  version: 1.0.0
  termsOfService: https://api.cdk.bot/terms
  contact:
    name: CDK Bot
    email: info@cdk.bot
    url: https://cdk.bot
  description: 'Agent-native API for purchasing digital products (game keys, gift cards, and more) via USDC on Base chain.


    ## Quick Start

    **One-shot (wallet-native agents):** `POST /purchase {"game_id":"..."}` with an `X-PAYMENT` header — a signed EIP-3009 "exact" authorization for the accepts[] returned in the 402 — and a facilitator settles it gaslessly, returning the key in one call (no tx_hash/quote_id).


    **Two-step (any agent):**

    1. **Browse**: `GET /games?q=battlefield` — search products, filter by platform/region/product_type

    2. **Get price**: `POST /purchase {"game_id":"..."}` — returns 402 with exact USDC amount, wallet address, and standard x402 accepts[]

    3. **Pay & get key**: Send USDC onchain, then `POST /purchase {"game_id":"...","tx_hash":"0x...","quote_id":"..."}` — returns product key


    ## Key facts

    - All prices are in USD (USDC on Base chain)

    - Only in-stock products are returned (in_stock: true)

    - Payment address: `0x0b321A0F1294431347f98e10a2275F23B11BBfFb`

    - No authentication required for browsing or purchasing

    - Double-spend protection via unique tx_hash constraint

    - Agent discovery: `GET /.well-known/agent.json`

    - Liveness check: `GET /health`


    ## Sandbox Mode

    Test the full purchase flow without spending real money:

    1. Get free test USDC from Circle Faucet and Sepolia ETH from Alchemy Faucet

    2. Add `"chain": "base-sepolia"` to your `POST /purchase` request

    3. Pay with test USDC on Base Sepolia — receive a mock key (`SANDBOX-XXXXX-XXXXX-XXXXX`)


    Same API, same URL, same flow — just add the chain parameter. See `GET /.well-known/agent.json` for full sandbox docs.'
  x-guidance: 'CDK Bot sells game keys, gift cards, and digital products for AI agents. Flow: (1) GET /games?q=<query> to search the catalog. (2) POST /purchase {"game_id":"..."} to get an HTTP 402 with a price-locked USDC quote on Base. (3) Pay one-shot by retrying with an X-PAYMENT header (signed EIP-3009 authorization, gasless), or send USDC onchain and retry with tx_hash + quote_id. (4) The response contains the product key; poll GET /orders/{id} if delivery is pending. Sandbox: add "chain":"base-sepolia" to test without real money.'
servers:
- url: https://api.cdk.bot
tags:
- name: Status
paths:
  /health:
    get:
      tags:
      - Status
      summary: Service health and trust stats
      description: Liveness check with service health, catalog stats, trust metrics (fulfillment rate, refund rate, avg delivery time), payment config, and rate limits. Agents should call this before initiating a purchase flow.
      responses:
        '200':
          description: API health status
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                    - healthy
                    - degraded
                    description: Overall API health
                    example: healthy
                  version:
                    type: string
                    description: API version
                    example: 1.0.0
                  services:
                    type: object
                    properties:
                      database:
                        type: object
                        properties:
                          status:
                            type: string
                            enum:
                            - ok
                            - down
                            description: Service status
                            example: ok
                          latency_ms:
                            type: number
                            description: Latency in milliseconds
                            example: 12
                        required:
                        - status
                        - latency_ms
                        description: Individual service health status
                      supplier:
                        type: object
                        properties:
                          status:
                            type: string
                            enum:
                            - ok
                            - down
                            description: Service status
                            example: ok
                          latency_ms:
                            type: number
                            description: Latency in milliseconds
                            example: 12
                        required:
                        - status
                        - latency_ms
                        description: Individual service health status
                    required:
                    - database
                    - supplier
                    description: Backend service health checks
                  catalog:
                    type: object
                    properties:
                      total_games:
                        type: number
                        description: 'Deprecated: use total_products. Number of in-stock products.'
                        example: 30142
                      total_products:
                        type: number
                        description: Number of in-stock products (games, DLC, gift cards)
                        example: 30142
                      platforms:
                        type: number
                        description: Number of distinct platforms
                        example: 18
                      regions:
                        type: number
                        description: Number of distinct regions
                        example: 12
                    required:
                    - total_games
                    - total_products
                    - platforms
                    - regions
                    description: Catalog statistics (in-stock only)
                  trust:
                    type: object
                    nullable: true
                    properties:
                      orders_fulfilled:
                        type: number
                        description: Total completed orders
                        example: 150
                      orders_total:
                        type: number
                        description: Total orders (completed + failed)
                        example: 155
                      fulfillment_rate:
                        type: string
                        description: Fulfillment success rate
                        example: 96.8%
                      refunds_total:
                        type: number
                        description: Total refund claims
                        example: 3
                      refund_rate:
                        type: string
                        description: Refund rate vs total orders
                        example: 1.9%
                      avg_delivery_time_seconds:
                        type: number
                        nullable: true
                        description: Average delivery time in seconds (payment → key). Null if no completed orders.
                        example: 8
                    required:
                    - orders_fulfilled
                    - orders_total
                    - fulfillment_rate
                    - refunds_total
                    - refund_rate
                    - avg_delivery_time_seconds
                    description: Trust statistics computed from real order data. Null if fewer than 10 orders (insufficient sample size) or if stats query failed.
                  payment:
                    type: object
                    properties:
                      currency:
                        type: string
                        enum:
                        - USDC
                        description: Payment currency
                      chain:
                        type: string
                        description: Payment chain
                        example: base
                      address:
                        type: string
                        description: USDC recipient wallet address
                        example: '0x0b321A0F1294431347f98e10a2275F23B11BBfFb'
                    required:
                    - currency
                    - chain
                    - address
                    description: Payment configuration
                  rate_limits:
                    type: object
                    properties:
                      browse:
                        type: object
                        properties:
                          requests:
                            type: number
                            description: Max requests allowed in window
                            example: 60
                          window_seconds:
                            type: number
                            description: Window duration in seconds
                            example: 60
                        required:
                        - requests
                        - window_seconds
                        description: Rate limit configuration
                      purchase:
                        type: object
                        properties:
                          requests:
                            type: number
                            description: Max requests allowed in window
                            example: 60
                          window_seconds:
                            type: number
                            description: Window duration in seconds
                            example: 60
                        required:
                        - requests
                        - window_seconds
                        description: Rate limit configuration
                      orders:
                        type: object
                        properties:
                          requests:
                            type: number
                            description: Max requests allowed in window
                            example: 60
                          window_seconds:
                            type: number
                            description: Window duration in seconds
                            example: 60
                        required:
                        - requests
                        - window_seconds
                        description: Rate limit configuration
                      refund:
                        type: object
                        properties:
                          requests:
                            type: number
                            description: Max requests allowed in window
                            example: 60
                          window_seconds:
                            type: number
                            description: Window duration in seconds
                            example: 60
                        required:
                        - requests
                        - window_seconds
                        description: Rate limit configuration
                    required:
                    - browse
                    - purchase
                    - orders
                    - refund
                    description: Current rate limit configuration per endpoint category
                  timestamp:
                    type: string
                    description: Response timestamp (ISO 8601)
                    example: '2026-02-20T12:00:00.000Z'
                required:
                - status
                - version
                - services
                - catalog
                - trust
                - payment
                - rate_limits
                - timestamp
                description: API health status including service checks, catalog stats, trust metrics, and payment config
      security: []
      operationId: getHealth
      x-operation-id-source: derived