{
  "openapi": "3.1.0",
  "info": {
    "title": "DAP Compute Market Tracker API",
    "version": "1.2.0",
    "summary": "GPU rental list prices and reference records for compute derivatives: contracts, the indices they settle against, venues and regulator events.",
    "description": "The records behind the Compute Market Tracker at https://dap.solutions/compute/, for agents and systems that call HTTP rather than MCP. Every fact is tied to its source and published by a fixed rule only when a machine has found it there. List prices are each provider's own; the price per GPU-hour is derived from the listed price per instance-hour. Index values belong to their publishers and are never returned. People read the same facts free on the tracker pages, and agents can call the MCP endpoint at https://dap.solutions/compute/mcp. Priced from the first call at $0.01 in USDC on Base, paid per call with x402 v2 (exact scheme) through DAP Agent Payments: call without payment, read the price from the PAYMENT-REQUIRED header of the 402, and call again with a signed payment in PAYMENT-SIGNATURE. The answer is released after the payment settles, with the settlement record in PAYMENT-RESPONSE. A request refused before or after payment is never charged. A licensed institution sends its DAP licence key instead and is invoiced for what it used; one DAP licence covers this API and DAP Bellwether. This is a public information service. It is not investment, trading or legal advice.",
    "termsOfService": "https://dap.solutions/terms/api/",
    "x-guidance": "For one question, call a small answer (gpu-price, cheapest-gpu-hour, price-changes, contract, regulator-actions) at $0.01; a lookup that matches nothing answers 404 and is not charged. Call without payment, read the price from the 402, and call again with a signed x402 payment. A DAP licence key in Authorization: Bearer answers without payment. coverage is free.",
    "contact": {
      "name": "Dartmouth Advisory Partners",
      "email": "info@dap.solutions",
      "url": "https://dap.solutions/compute/"
    },
    "license": {
      "name": "CC BY 4.0",
      "url": "https://creativecommons.org/licenses/by/4.0/"
    }
  },
  "servers": [
    {
      "url": "https://dap.solutions"
    }
  ],
  "externalDocs": {
    "description": "DAP Agent Payments",
    "url": "https://dap.solutions/solutions/systems/agent-payments/"
  },
  "security": [
    {},
    {
      "licenceKey": []
    },
    {
      "licenceKeyHeader": []
    }
  ],
  "paths": {
    "/compute/api/contracts": {
      "get": {
        "operationId": "searchComputeContracts",
        "summary": "Search compute derivative contracts by venue, status, index publisher, jurisdiction, settlement or name.",
        "description": "Use when you need to find compute derivative contracts. Searches futures and options on GPU rental indices by venue, status, index publisher, jurisdiction, settlement or name. $0.01 USDC on Base per call via x402; a refused lookup is free.",
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.01"
          }
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": false,
            "description": "Words matched against the contract name, code, venue and index, for example \"H100\" or \"NYMEX\".",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "venue",
            "in": "query",
            "required": false,
            "description": "Restrict to one venue by short name, for example NYMEX or ICE.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Restrict to one status.",
            "schema": {
              "type": "string",
              "enum": [
                "announced",
                "filed",
                "under-review",
                "approved",
                "listed",
                "not-approved",
                "withdrawn"
              ]
            }
          },
          {
            "name": "index_publisher",
            "in": "query",
            "required": false,
            "description": "Restrict to contracts settling against one publisher's index, for example \"Silicon Data\".",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jurisdiction",
            "in": "query",
            "required": false,
            "description": "Two letter country code of the listing venue, for example US.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "settlement",
            "in": "query",
            "required": false,
            "description": "Restrict by settlement method.",
            "schema": {
              "type": "string",
              "enum": [
                "cash",
                "physical"
              ]
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Maximum contracts to return.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The answer.",
            "headers": {
              "PAYMENT-RESPONSE": {
                "description": "The x402 settlement record, base64 JSON. Present on a paid answer.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The structured answer of the matching MCP tool, with the snapshot id and date it was read from.",
                  "required": [
                    "snapshot_id",
                    "as_of"
                  ],
                  "properties": {
                    "snapshot_id": {
                      "type": "string"
                    },
                    "as_of": {
                      "type": "string"
                    },
                    "licence": {
                      "type": "string"
                    },
                    "notice": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "The request was refused before any payment. Never charged.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "A DAP licence key was sent and is not recognized or has been revoked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Payment required. The x402 v2 price is in the PAYMENT-REQUIRED header (base64 JSON) and repeated in the body.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "503": {
            "description": "No snapshot is published yet, or the payment service or licence check is unavailable. Nothing was charged. Retry shortly."
          }
        }
      }
    },
    "/compute/api/events": {
      "get": {
        "operationId": "computeMarketEvents",
        "summary": "Announcements, exchange filings and regulator actions on compute derivatives, newest first, with dates still to come.",
        "description": "Use when you need dated events on compute derivatives. Lists announcements, filings, regulator actions and dates still to come, filtered by date, type or contract. $0.01 USDC on Base per call via x402; a refused lookup is free.",
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.01"
          }
        },
        "parameters": [
          {
            "name": "since",
            "in": "query",
            "required": false,
            "description": "ISO date, YYYY-MM-DD. Only events on or after this date.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "until",
            "in": "query",
            "required": false,
            "description": "ISO date, YYYY-MM-DD. Only events on or before this date.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "required": false,
            "description": "Restrict to one event type.",
            "schema": {
              "type": "string",
              "enum": [
                "announced",
                "filed",
                "regulator",
                "regulator-due",
                "approved",
                "listed",
                "withdrawn"
              ]
            }
          },
          {
            "name": "contract",
            "in": "query",
            "required": false,
            "description": "Restrict to events about one contract id (ct-).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "upcoming_only",
            "in": "query",
            "required": false,
            "description": "Only dates after the snapshot date.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Maximum events to return.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The answer.",
            "headers": {
              "PAYMENT-RESPONSE": {
                "description": "The x402 settlement record, base64 JSON. Present on a paid answer.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The structured answer of the matching MCP tool, with the snapshot id and date it was read from.",
                  "required": [
                    "snapshot_id",
                    "as_of"
                  ],
                  "properties": {
                    "snapshot_id": {
                      "type": "string"
                    },
                    "as_of": {
                      "type": "string"
                    },
                    "licence": {
                      "type": "string"
                    },
                    "notice": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "The request was refused before any payment. Never charged.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "A DAP licence key was sent and is not recognized or has been revoked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Payment required. The x402 v2 price is in the PAYMENT-REQUIRED header (base64 JSON) and repeated in the body.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "503": {
            "description": "No snapshot is published yet, or the payment service or licence check is unavailable. Nothing was charged. Retry shortly."
          }
        }
      }
    },
    "/compute/api/prices": {
      "get": {
        "operationId": "computeListPrices",
        "summary": "GPU rental list prices from each cloud provider's own price feed, one line per provider and instance, never averaged: per instance-hour as listed, per GPU-hour derived, every change, and history with history=true.",
        "description": "Use when you need GPU rental list prices with their history. Every AWS and Azure line, one per region and instance, never averaged, per instance-hour and per GPU-hour, with every change since 2020. $0.01 USDC on Base per call via x402; a refused lookup is free.",
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.01"
          }
        },
        "parameters": [
          {
            "name": "gpu",
            "in": "query",
            "required": false,
            "description": "GPU family, for example H100, A100, H200, B200, B300 or GB200. Each line is the list price the provider publishes in its own feed (AWS Price List, one price list a month back to October 2020; Azure Retail Prices, with the date each price took effect), one line per region and instance, never averaged.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "provider",
            "in": "query",
            "required": false,
            "description": "Cloud provider, for example AWS or Azure.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instance",
            "in": "query",
            "required": false,
            "description": "One instance type, for example p5.48xlarge or Standard_ND96isr_H100_v5. The price per GPU-hour is derived: the listed price per instance-hour divided by the GPUs on the provider's specification page.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "region",
            "in": "query",
            "required": false,
            "description": "One region, by code or name, for example us-east-1 or East US.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "price_type",
            "in": "query",
            "required": false,
            "description": "On-demand or Spot.",
            "schema": {
              "type": "string",
              "enum": [
                "on-demand",
                "spot"
              ],
              "default": "on-demand"
            }
          },
          {
            "name": "since",
            "in": "query",
            "required": false,
            "description": "ISO date, YYYY-MM-DD. History from this date; the price holding on that date is included.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "until",
            "in": "query",
            "required": false,
            "description": "ISO date, YYYY-MM-DD. History up to this date.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "history",
            "in": "query",
            "required": false,
            "description": "Include every price point in the window, not only the latest price and the changes.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The answer.",
            "headers": {
              "PAYMENT-RESPONSE": {
                "description": "The x402 settlement record, base64 JSON. Present on a paid answer.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The structured answer of the matching MCP tool, with the snapshot id and date it was read from.",
                  "required": [
                    "snapshot_id",
                    "as_of"
                  ],
                  "properties": {
                    "snapshot_id": {
                      "type": "string"
                    },
                    "as_of": {
                      "type": "string"
                    },
                    "licence": {
                      "type": "string"
                    },
                    "notice": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "The request was refused before any payment. Never charged.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "A DAP licence key was sent and is not recognized or has been revoked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Payment required. The x402 v2 price is in the PAYMENT-REQUIRED header (base64 JSON) and repeated in the body.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "503": {
            "description": "No snapshot is published yet, or the payment service or licence check is unavailable. Nothing was charged. Retry shortly."
          }
        }
      }
    },
    "/compute/api/record": {
      "get": {
        "operationId": "getComputeRecord",
        "summary": "One contract, index series, market participant or event in full, with its DAP Standard classification, history and sources.",
        "description": "Use when you have a record id (ct-, ser-, ent- or ev-) and need it in full. Returns its classification, status history, held-back fields and every source. $0.01 USDC on Base per call via x402; a refused lookup is free. A lookup that matches nothing answers 404 and is never charged.",
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.01"
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": true,
            "description": "A record id from a search, an event list or list_compute_coverage.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The answer.",
            "headers": {
              "PAYMENT-RESPONSE": {
                "description": "The x402 settlement record, base64 JSON. Present on a paid answer.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The structured answer of the matching MCP tool, with the snapshot id and date it was read from.",
                  "required": [
                    "snapshot_id",
                    "as_of"
                  ],
                  "properties": {
                    "snapshot_id": {
                      "type": "string"
                    },
                    "as_of": {
                      "type": "string"
                    },
                    "licence": {
                      "type": "string"
                    },
                    "notice": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "The request was refused before any payment. Never charged.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "A DAP licence key was sent and is not recognized or has been revoked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Payment required. The x402 v2 price is in the PAYMENT-REQUIRED header (base64 JSON) and repeated in the body.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Nothing matches. Never charged.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "No snapshot is published yet, or the payment service or licence check is unavailable. Nothing was charged. Retry shortly."
          }
        }
      }
    },
    "/compute/api/query": {
      "get": {
        "operationId": "computeQuery",
        "summary": "The compute market console's query in the console's own URL form: the same parameters as a dap.solutions/compute/ link, the same result the console draws. Each price is one provider's own, never averaged.",
        "description": "Use when you need to filter, group, rank or chart compute market data in one call. Takes the console's query object and returns lines, headline numbers, a league table, contracts, events and sources. $0.01 USDC on Base per call via x402; a refused lookup is free. A query that does not validate answers 400 before any payment is asked for.",
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.01"
          }
        },
        "parameters": [
          {
            "name": "f",
            "in": "query",
            "required": false,
            "description": "Filters: leaves joined by ; (and), groups as and(...), or(...), not(...). A leaf is field.op(args): chip.in(h100-80,a100-40); provider.nin(azure); usd_per_gpu_hour.between(2,10); first_listed.gte(2024-01-01); text.contains(p5).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "g",
            "in": "query",
            "required": false,
            "description": "Group by: line, provider, chip, model, region, geo, price_type, venue, status or layer. Default line.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "m",
            "in": "query",
            "required": false,
            "description": "Metric: usd_per_gpu_hour, usd_per_instance_hour, usd_per_gib_hour (GPU rental), usd_per_m_tokens (model tokens), price_per_mwh (power), usd_per_coin (compute network tokens), rebased, drawdown, change_12m, lines or contracts. A price metric scopes the lines to those priced in its unit. Default usd_per_gpu_hour.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "r",
            "in": "query",
            "required": false,
            "description": "Time range: 30d, 90d, 1y, 3y, 5y, ytd or all (default), or from..to as YYYY-MM-DD..YYYY-MM-DD.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "s",
            "in": "query",
            "required": false,
            "description": "Sort: a key such as usd_per_gpu_hour or change_30d; a leading - sorts high to low.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "p",
            "in": "query",
            "required": false,
            "description": "Page of lines, from 1.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "n",
            "in": "query",
            "required": false,
            "description": "Lines per page, 5 to 100. Default 25.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The answer.",
            "headers": {
              "PAYMENT-RESPONSE": {
                "description": "The x402 settlement record, base64 JSON. Present on a paid answer.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The structured answer of the matching MCP tool, with the snapshot id and date it was read from.",
                  "required": [
                    "snapshot_id",
                    "as_of"
                  ],
                  "properties": {
                    "snapshot_id": {
                      "type": "string"
                    },
                    "as_of": {
                      "type": "string"
                    },
                    "licence": {
                      "type": "string"
                    },
                    "notice": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "The request was refused before any payment. Never charged.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "A DAP licence key was sent and is not recognized or has been revoked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Payment required. The x402 v2 price is in the PAYMENT-REQUIRED header (base64 JSON) and repeated in the body.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "503": {
            "description": "No snapshot is published yet, or the payment service or licence check is unavailable. Nothing was charged. Retry shortly."
          }
        }
      }
    },
    "/compute/api/gpu-price": {
      "get": {
        "operationId": "getGpuPrice",
        "summary": "The current list price per GPU-hour for one chip, provider, region and price type, with the last change, the source URL and when it was read.",
        "description": "Use when you need what one cloud charges to rent a GPU in one region now. Returns the price per GPU-hour, the last change, the source URL and when it was read. $0.01 USDC on Base per call via x402; a refused lookup is free. A lookup that matches nothing answers 404 and is never charged.",
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.01"
          }
        },
        "parameters": [
          {
            "name": "chip",
            "in": "query",
            "required": true,
            "description": "GPU family, for example H100, A100, H200, B200, B300 or GB200.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "provider",
            "in": "query",
            "required": true,
            "description": "Cloud provider: AWS or Azure.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "region",
            "in": "query",
            "required": true,
            "description": "One region, by code or name, for example us-east-1, eastus or East US.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "price_type",
            "in": "query",
            "required": false,
            "description": "On-demand (default) or Spot.",
            "schema": {
              "type": "string",
              "enum": [
                "on-demand",
                "spot"
              ],
              "default": "on-demand"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The answer.",
            "headers": {
              "PAYMENT-RESPONSE": {
                "description": "The x402 settlement record, base64 JSON. Present on a paid answer.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The structured answer of the matching MCP tool, with the snapshot id and date it was read from.",
                  "required": [
                    "snapshot_id",
                    "as_of"
                  ],
                  "properties": {
                    "snapshot_id": {
                      "type": "string"
                    },
                    "as_of": {
                      "type": "string"
                    },
                    "licence": {
                      "type": "string"
                    },
                    "notice": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "The request was refused before any payment. Never charged.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "A DAP licence key was sent and is not recognized or has been revoked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Payment required. The x402 v2 price is in the PAYMENT-REQUIRED header (base64 JSON) and repeated in the body.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Nothing matches. Never charged.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "No snapshot is published yet, or the payment service or licence check is unavailable. Nothing was charged. Retry shortly."
          }
        }
      }
    },
    "/compute/api/cheapest-gpu-hour": {
      "get": {
        "operationId": "findCheapestGpuHour",
        "summary": "The cheapest current list price per GPU-hour for one chip across every tracked provider, optionally in one region, with its source.",
        "description": "Use when you need the cheapest place to rent a given GPU. Compares every tracked provider's current list price per GPU-hour, optionally in one region, and returns the cheapest with its source. $0.01 USDC on Base per call via x402; a refused lookup is free. A lookup that matches nothing answers 404 and is never charged.",
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.01"
          }
        },
        "parameters": [
          {
            "name": "chip",
            "in": "query",
            "required": true,
            "description": "GPU family, for example H100, A100, H200, B200, B300 or GB200.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "region",
            "in": "query",
            "required": false,
            "description": "Only lines in this region, by code or name. Leave out to compare every region.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "price_type",
            "in": "query",
            "required": false,
            "description": "On-demand (default) or Spot.",
            "schema": {
              "type": "string",
              "enum": [
                "on-demand",
                "spot"
              ],
              "default": "on-demand"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The answer.",
            "headers": {
              "PAYMENT-RESPONSE": {
                "description": "The x402 settlement record, base64 JSON. Present on a paid answer.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The structured answer of the matching MCP tool, with the snapshot id and date it was read from.",
                  "required": [
                    "snapshot_id",
                    "as_of"
                  ],
                  "properties": {
                    "snapshot_id": {
                      "type": "string"
                    },
                    "as_of": {
                      "type": "string"
                    },
                    "licence": {
                      "type": "string"
                    },
                    "notice": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "The request was refused before any payment. Never charged.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "A DAP licence key was sent and is not recognized or has been revoked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Payment required. The x402 v2 price is in the PAYMENT-REQUIRED header (base64 JSON) and repeated in the body.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Nothing matches. Never charged.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "No snapshot is published yet, or the payment service or licence check is unavailable. Nothing was charged. Retry shortly."
          }
        }
      }
    },
    "/compute/api/price-changes": {
      "get": {
        "operationId": "listPriceChanges",
        "summary": "List price changes since a date for one chip or provider, newest first, at most 100 rows, each with its source.",
        "description": "Use when you need to know whether GPU rental prices moved. Lists list-price changes since a date for one chip or provider, newest first, up to 100 rows, each with its source. $0.01 USDC on Base per call via x402; a refused lookup is free. A lookup that matches nothing answers 404 and is never charged.",
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.01"
          }
        },
        "parameters": [
          {
            "name": "since",
            "in": "query",
            "required": true,
            "description": "ISO date, YYYY-MM-DD. Changes after this date.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "chip",
            "in": "query",
            "required": false,
            "description": "GPU family, for example H100. Give chip, provider or both.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "provider",
            "in": "query",
            "required": false,
            "description": "Cloud provider: AWS or Azure. Give chip, provider or both.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "price_type",
            "in": "query",
            "required": false,
            "description": "On-demand (default) or Spot.",
            "schema": {
              "type": "string",
              "enum": [
                "on-demand",
                "spot"
              ],
              "default": "on-demand"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Most rows to return, newest first. At most 100.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The answer.",
            "headers": {
              "PAYMENT-RESPONSE": {
                "description": "The x402 settlement record, base64 JSON. Present on a paid answer.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The structured answer of the matching MCP tool, with the snapshot id and date it was read from.",
                  "required": [
                    "snapshot_id",
                    "as_of"
                  ],
                  "properties": {
                    "snapshot_id": {
                      "type": "string"
                    },
                    "as_of": {
                      "type": "string"
                    },
                    "licence": {
                      "type": "string"
                    },
                    "notice": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "The request was refused before any payment. Never charged.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "A DAP licence key was sent and is not recognized or has been revoked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Payment required. The x402 v2 price is in the PAYMENT-REQUIRED header (base64 JSON) and repeated in the body.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Nothing matches. Never charged.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "No snapshot is published yet, or the payment service or licence check is unavailable. Nothing was charged. Retry shortly."
          }
        }
      }
    },
    "/compute/api/contract": {
      "get": {
        "operationId": "getComputeContract",
        "summary": "One compute derivative contract in full, with the index it settles against and its venue, and the source of each fact. Index values are never returned.",
        "description": "Use when you need one compute derivative contract in full. Returns its terms, status history, the index it settles against and its venue, with sources. Index values are not returned. $0.01 USDC on Base per call via x402; a refused lookup is free. A lookup that matches nothing answers 404 and is never charged.",
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.01"
          }
        },
        "parameters": [
          {
            "name": "contract",
            "in": "query",
            "required": true,
            "description": "The contract id (ct-), its exchange code or its full name, for example ct-nymex-gpu1.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The answer.",
            "headers": {
              "PAYMENT-RESPONSE": {
                "description": "The x402 settlement record, base64 JSON. Present on a paid answer.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The structured answer of the matching MCP tool, with the snapshot id and date it was read from.",
                  "required": [
                    "snapshot_id",
                    "as_of"
                  ],
                  "properties": {
                    "snapshot_id": {
                      "type": "string"
                    },
                    "as_of": {
                      "type": "string"
                    },
                    "licence": {
                      "type": "string"
                    },
                    "notice": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "The request was refused before any payment. Never charged.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "A DAP licence key was sent and is not recognized or has been revoked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Payment required. The x402 v2 price is in the PAYMENT-REQUIRED header (base64 JSON) and repeated in the body.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Nothing matches. Never charged.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "No snapshot is published yet, or the payment service or licence check is unavailable. Nothing was charged. Retry shortly."
          }
        }
      }
    },
    "/compute/api/regulator-actions": {
      "get": {
        "operationId": "listRegulatorActions",
        "summary": "Regulator actions and due dates on compute derivatives since a date, newest first, with sources.",
        "description": "Use when you need what regulators have done about traded compute. Lists regulator actions and due dates on compute derivatives since a date, newest first, with sources. $0.01 USDC on Base per call via x402; a refused lookup is free. A lookup that matches nothing answers 404 and is never charged.",
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.01"
          }
        },
        "parameters": [
          {
            "name": "since",
            "in": "query",
            "required": true,
            "description": "ISO date, YYYY-MM-DD. Actions and due dates on or after this date.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "regulator",
            "in": "query",
            "required": false,
            "description": "Only actions by one regulator, by short name or full name, for example CFTC.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Most rows to return, newest first. At most 100.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The answer.",
            "headers": {
              "PAYMENT-RESPONSE": {
                "description": "The x402 settlement record, base64 JSON. Present on a paid answer.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The structured answer of the matching MCP tool, with the snapshot id and date it was read from.",
                  "required": [
                    "snapshot_id",
                    "as_of"
                  ],
                  "properties": {
                    "snapshot_id": {
                      "type": "string"
                    },
                    "as_of": {
                      "type": "string"
                    },
                    "licence": {
                      "type": "string"
                    },
                    "notice": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "The request was refused before any payment. Never charged.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "A DAP licence key was sent and is not recognized or has been revoked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Payment required. The x402 v2 price is in the PAYMENT-REQUIRED header (base64 JSON) and repeated in the body.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "Nothing matches. Never charged.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "No snapshot is published yet, or the payment service or licence check is unavailable. Nothing was charged. Retry shortly."
          }
        }
      }
    },
    "/compute/holdings/": {
      "get": {
        "operationId": "consoleHoldings",
        "summary": "Use when you need the whole compute holdings tree and every line behind it in one call. Returns the console's holdings for a query: the tree, its parents and the lines behind each node. $0.25 USDC on Base per call via x402.",
        "description": "$0.25 per call. The console page reaches this path free with its own page token; an agent pays, or sends a DAP licence key. A query that does not validate answers 400 before any payment is asked for.",
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.25"
          }
        },
        "parameters": [
          {
            "name": "f",
            "in": "query",
            "required": false,
            "description": "Filters: leaves joined by ; (and), groups as and(...), or(...), not(...). A leaf is field.op(args): chip.in(h100-80,a100-40); provider.nin(azure); usd_per_gpu_hour.between(2,10); first_listed.gte(2024-01-01); text.contains(p5).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "g",
            "in": "query",
            "required": false,
            "description": "Group by: line, provider, chip, model, region, geo, price_type, venue, status or layer. Default line.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "m",
            "in": "query",
            "required": false,
            "description": "Metric: usd_per_gpu_hour, usd_per_instance_hour, usd_per_gib_hour (GPU rental), usd_per_m_tokens (model tokens), price_per_mwh (power), usd_per_coin (compute network tokens), rebased, drawdown, change_12m, lines or contracts. A price metric scopes the lines to those priced in its unit. Default usd_per_gpu_hour.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "r",
            "in": "query",
            "required": false,
            "description": "Time range: 30d, 90d, 1y, 3y, 5y, ytd or all (default), or from..to as YYYY-MM-DD..YYYY-MM-DD.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "s",
            "in": "query",
            "required": false,
            "description": "Sort: a key such as usd_per_gpu_hour or change_30d; a leading - sorts high to low.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "p",
            "in": "query",
            "required": false,
            "description": "Page of lines, from 1.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "n",
            "in": "query",
            "required": false,
            "description": "Lines per page, 5 to 100. Default 25.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The console's answer.",
            "headers": {
              "PAYMENT-RESPONSE": {
                "description": "The x402 settlement record, base64 JSON. Present on a paid answer.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "The request was refused before any payment. Never charged.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "A DAP licence key was sent and is not recognized or has been revoked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Payment required. The x402 v2 price is in the PAYMENT-REQUIRED header (base64 JSON) and repeated in the body.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "503": {
            "description": "No snapshot is published yet, or the payment service or licence check is unavailable. Nothing was charged. Retry shortly."
          }
        }
      }
    },
    "/compute/query/": {
      "get": {
        "operationId": "consoleQuery",
        "summary": "Use when you need the console's full answer to one query as JSON or CSV. Returns lines, headline numbers, the league table, chart series, contracts, events and sources. $0.01 USDC on Base per call via x402.",
        "description": "$0.01 per call. The console page reaches this path free with its own page token; an agent pays, or sends a DAP licence key. A query that does not validate answers 400 before any payment is asked for.",
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.01"
          }
        },
        "parameters": [
          {
            "name": "f",
            "in": "query",
            "required": false,
            "description": "Filters: leaves joined by ; (and), groups as and(...), or(...), not(...). A leaf is field.op(args): chip.in(h100-80,a100-40); provider.nin(azure); usd_per_gpu_hour.between(2,10); first_listed.gte(2024-01-01); text.contains(p5).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "g",
            "in": "query",
            "required": false,
            "description": "Group by: line, provider, chip, model, region, geo, price_type, venue, status or layer. Default line.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "m",
            "in": "query",
            "required": false,
            "description": "Metric: usd_per_gpu_hour, usd_per_instance_hour, usd_per_gib_hour (GPU rental), usd_per_m_tokens (model tokens), price_per_mwh (power), usd_per_coin (compute network tokens), rebased, drawdown, change_12m, lines or contracts. A price metric scopes the lines to those priced in its unit. Default usd_per_gpu_hour.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "r",
            "in": "query",
            "required": false,
            "description": "Time range: 30d, 90d, 1y, 3y, 5y, ytd or all (default), or from..to as YYYY-MM-DD..YYYY-MM-DD.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "s",
            "in": "query",
            "required": false,
            "description": "Sort: a key such as usd_per_gpu_hour or change_30d; a leading - sorts high to low.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "p",
            "in": "query",
            "required": false,
            "description": "Page of lines, from 1.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "n",
            "in": "query",
            "required": false,
            "description": "Lines per page, 5 to 100. Default 25.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "csv for the CSV of the view in v.",
            "schema": {
              "type": "string",
              "enum": [
                "csv"
              ]
            }
          },
          {
            "name": "v",
            "in": "query",
            "required": false,
            "description": "The view whose CSV to return, for example screener.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The console's answer.",
            "headers": {
              "PAYMENT-RESPONSE": {
                "description": "The x402 settlement record, base64 JSON. Present on a paid answer.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "The request was refused before any payment. Never charged.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "A DAP licence key was sent and is not recognized or has been revoked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Payment required. The x402 v2 price is in the PAYMENT-REQUIRED header (base64 JSON) and repeated in the body.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "503": {
            "description": "No snapshot is published yet, or the payment service or licence check is unavailable. Nothing was charged. Retry shortly."
          }
        }
      },
      "post": {
        "operationId": "consoleQueryAgentShape",
        "summary": "Use when you need the console's full answer to one query as JSON or CSV. Returns lines, headline numbers, the league table, chart series, contracts, events and sources. $0.01 USDC on Base per call via x402.",
        "description": "$0.01 per call. The console page reaches this path free with its own page token; an agent pays, or sends a DAP licence key. A query that does not validate answers 400 before any payment is asked for.",
        "x-payment-info": {
          "protocols": [
            {
              "x402": {}
            }
          ],
          "price": {
            "mode": "fixed",
            "currency": "USD",
            "amount": "0.01"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "query"
                ],
                "properties": {
                  "query": {
                    "type": "object",
                    "description": "The console query object (compute_query)."
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The console's answer.",
            "headers": {
              "PAYMENT-RESPONSE": {
                "description": "The x402 settlement record, base64 JSON. Present on a paid answer.",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "description": "The request was refused before any payment. Never charged.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "A DAP licence key was sent and is not recognized or has been revoked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Payment required. The x402 v2 price is in the PAYMENT-REQUIRED header (base64 JSON) and repeated in the body.",
            "headers": {
              "PAYMENT-REQUIRED": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "503": {
            "description": "No snapshot is published yet, or the payment service or licence check is unavailable. Nothing was charged. Retry shortly."
          }
        }
      }
    },
    "/compute/api/coverage": {
      "get": {
        "operationId": "listComputeCoverage",
        "summary": "What the current snapshot covers: its date, counts, every source and when it was checked. Free.",
        "security": [
          {}
        ],
        "responses": {
          "200": {
            "description": "Coverage.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "The structured answer of the matching MCP tool, with the snapshot id and date it was read from.",
                  "required": [
                    "snapshot_id",
                    "as_of"
                  ],
                  "properties": {
                    "snapshot_id": {
                      "type": "string"
                    },
                    "as_of": {
                      "type": "string"
                    },
                    "licence": {
                      "type": "string"
                    },
                    "notice": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": true
                }
              }
            }
          },
          "400": {
            "description": "The request was refused before any payment. Never charged.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "No snapshot is published yet, or the payment service or licence check is unavailable. Nothing was charged. Retry shortly."
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Error": {
        "type": "object",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        }
      }
    },
    "securitySchemes": {
      "licenceKey": {
        "type": "http",
        "scheme": "bearer",
        "description": "A DAP licence key (dapk_...), issued to an institution under a licence and invoiced by usage. One licence covers this API and DAP Bellwether. Contact info@dap.solutions."
      },
      "licenceKeyHeader": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key",
        "description": "The same DAP licence key, for platforms that set an API key header."
      }
    }
  }
}