{
  "openapi": "3.1.0",
  "jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
  "info": {
    "title": "DEEPPLANE™ public JSON API",
    "version": "1.0.0",
    "summary": "The read-only JSON endpoints DEEPPLANE™ serves, described only where they exist.",
    "description": "Every path in this document is a route that is registered and returns JSON today; a test extracts the route literals from the server source and fails when a documented path is not among them. Endpoints behind a token, endpoints that do not return JSON, and write endpoints are deliberately absent. Where a response body is dynamic it is described as an object rather than given an invented field list.",
    "license": {
      "name": "CC BY 4.0",
      "identifier": "CC-BY-4.0",
      "url": "https://creativecommons.org/licenses/by/4.0/"
    },
    "contact": {
      "name": "DEEPPLANE™",
      "url": "https://deepplane.com/cite-us"
    },
    "termsOfService": "https://deepplane.com/terms"
  },
  "externalDocs": {
    "description": "How every figure on this site is measured.",
    "url": "https://deepplane.com/methodology"
  },
  "servers": [
    {
      "url": "https://deepplane.com",
      "description": "Production"
    }
  ],
  "x-machine-readable": {
    "llmsTxt": "https://deepplane.com/llms.txt",
    "llmsFullTxt": "https://deepplane.com/llms-full.txt",
    "aiPlugin": "https://deepplane.com/.well-known/ai-plugin.json",
    "mcp": "https://deepplane.com/.well-known/mcp.json",
    "datasetCatalog": "https://deepplane.com/api/v1/datasets/index.json",
    "answerCards": "https://deepplane.com/data/answers.json",
    "legacySpec": "https://deepplane.com/openapi.json"
  },
  "tags": [
    {
      "name": "Service",
      "description": "Liveness and small request-scoped lookups."
    },
    {
      "name": "Datasets",
      "description": "schema.org Dataset exports, CC BY 4.0, rows attached."
    },
    {
      "name": "Surgeons",
      "description": "Per-profile lookups keyed by slug or DPID."
    },
    {
      "name": "Answers",
      "description": "One dataset reduced to a question and its answer."
    }
  ],
  "paths": {
    "/api/health": {
      "get": {
        "operationId": "getHealth",
        "tags": [
          "Service"
        ],
        "summary": "Liveness of the web tier.",
        "responses": {
          "200": {
            "description": "`status` is \"ok\", or \"draining\" with HTTP 503 while the process is shutting down.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "ok",
                        "draining"
                      ]
                    },
                    "timestamp": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "status",
                    "timestamp"
                  ]
                }
              }
            }
          },
          "503": {
            "description": "The process is draining and is about to stop accepting requests.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/visitor-country": {
      "get": {
        "operationId": "getVisitorCountry",
        "tags": [
          "Service"
        ],
        "summary": "The caller's country, as the CDN edge reported it.",
        "responses": {
          "200": {
            "description": "`country` is a two-letter ISO code, or an empty string when the edge sent no usable header. Never cached.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "country": {
                      "type": "string",
                      "description": "ISO 3166-1 alpha-2, or \"\"."
                    }
                  },
                  "required": [
                    "country"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/exchange-rates": {
      "get": {
        "operationId": "getExchangeRates",
        "tags": [
          "Service"
        ],
        "summary": "The currency rates the price surfaces convert with.",
        "responses": {
          "200": {
            "description": "`rates` maps a currency code to its rate against USD. A small built-in fallback is returned if the rate file cannot be read, so this endpoint does not fail.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "rates": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "number"
                      }
                    }
                  },
                  "required": [
                    "rates"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/page-videos": {
      "get": {
        "operationId": "getPageVideos",
        "tags": [
          "Service"
        ],
        "summary": "The videos attached to one page path.",
        "parameters": [
          {
            "name": "path",
            "in": "query",
            "required": false,
            "description": "The site path to look up, for example /recovery.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`videos` is the list attached to the requested path; an empty list when none are.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "videos": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  },
                  "required": [
                    "videos"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/complication-transparency.json": {
      "get": {
        "operationId": "getComplicationTransparency",
        "tags": [
          "Datasets"
        ],
        "summary": "What listed surgeons disclose, by country.",
        "responses": {
          "200": {
            "description": "Four disclosure measures per country: dated before/after pairs, prose-stated complication or revision rates, self-supplied price bands and live Google ratings. Aggregate only; there is no per-surgeon row. It measures disclosure by the surgeons we list and makes no claim about what any country requires.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A schema.org Dataset node with the rows attached. The JSON-LD keys carry the provenance; `data` carries the records.",
                  "properties": {
                    "@context": {
                      "const": "https://schema.org"
                    },
                    "@type": {
                      "const": "Dataset"
                    },
                    "@id": {
                      "type": "string",
                      "format": "uri"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "creator": {
                      "type": "object"
                    },
                    "datePublished": {
                      "type": "string"
                    },
                    "dateModified": {
                      "type": "string"
                    },
                    "temporalCoverage": {
                      "type": "string"
                    },
                    "license": {
                      "type": "string",
                      "format": "uri"
                    },
                    "isAccessibleForFree": {
                      "type": "boolean"
                    },
                    "measurementTechnique": {
                      "type": "string"
                    },
                    "keywords": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "variableMeasured": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "spatialCoverage": {
                      "type": [
                        "object",
                        "array"
                      ]
                    },
                    "citation": {
                      "type": "string"
                    },
                    "distribution": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "@type": {
                            "const": "DataDownload"
                          },
                          "encodingFormat": {
                            "type": "string"
                          },
                          "contentUrl": {
                            "type": "string",
                            "format": "uri"
                          }
                        }
                      }
                    },
                    "data": {
                      "description": "The records. The row shape differs per dataset; see `variableMeasured`."
                    }
                  },
                  "required": [
                    "@context",
                    "@type",
                    "name",
                    "url",
                    "license",
                    "data"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/cost-by-country.json": {
      "get": {
        "operationId": "getCostByCountry",
        "tags": [
          "Datasets"
        ],
        "summary": "Deep plane facelift price bands by country.",
        "responses": {
          "200": {
            "description": "One row per country with a low and high band, the currency, and the count of listed specialists. The bands are DEEPPLANE™ editorial estimates and each row says so in `provenance`.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A schema.org Dataset node with the rows attached. The JSON-LD keys carry the provenance; `data` carries the records.",
                  "properties": {
                    "@context": {
                      "const": "https://schema.org"
                    },
                    "@type": {
                      "const": "Dataset"
                    },
                    "@id": {
                      "type": "string",
                      "format": "uri"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "creator": {
                      "type": "object"
                    },
                    "datePublished": {
                      "type": "string"
                    },
                    "dateModified": {
                      "type": "string"
                    },
                    "temporalCoverage": {
                      "type": "string"
                    },
                    "license": {
                      "type": "string",
                      "format": "uri"
                    },
                    "isAccessibleForFree": {
                      "type": "boolean"
                    },
                    "measurementTechnique": {
                      "type": "string"
                    },
                    "keywords": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "variableMeasured": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "spatialCoverage": {
                      "type": [
                        "object",
                        "array"
                      ]
                    },
                    "citation": {
                      "type": "string"
                    },
                    "distribution": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "@type": {
                            "const": "DataDownload"
                          },
                          "encodingFormat": {
                            "type": "string"
                          },
                          "contentUrl": {
                            "type": "string",
                            "format": "uri"
                          }
                        }
                      }
                    },
                    "data": {
                      "description": "The records. The row shape differs per dataset; see `variableMeasured`."
                    }
                  },
                  "required": [
                    "@context",
                    "@type",
                    "name",
                    "url",
                    "license",
                    "data"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/cost-comparison.json": {
      "get": {
        "operationId": "getCostComparison",
        "tags": [
          "Datasets"
        ],
        "summary": "Destination against home-country cost, per pair.",
        "responses": {
          "200": {
            "description": "One row per destination and home-country pair with both bands, the absolute and percentage saving, the surgeon counts on both sides, and the accredited-hospital count at the destination.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A schema.org Dataset node with the rows attached. The JSON-LD keys carry the provenance; `data` carries the records.",
                  "properties": {
                    "@context": {
                      "const": "https://schema.org"
                    },
                    "@type": {
                      "const": "Dataset"
                    },
                    "@id": {
                      "type": "string",
                      "format": "uri"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "creator": {
                      "type": "object"
                    },
                    "datePublished": {
                      "type": "string"
                    },
                    "dateModified": {
                      "type": "string"
                    },
                    "temporalCoverage": {
                      "type": "string"
                    },
                    "license": {
                      "type": "string",
                      "format": "uri"
                    },
                    "isAccessibleForFree": {
                      "type": "boolean"
                    },
                    "measurementTechnique": {
                      "type": "string"
                    },
                    "keywords": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "variableMeasured": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "spatialCoverage": {
                      "type": [
                        "object",
                        "array"
                      ]
                    },
                    "citation": {
                      "type": "string"
                    },
                    "distribution": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "@type": {
                            "const": "DataDownload"
                          },
                          "encodingFormat": {
                            "type": "string"
                          },
                          "contentUrl": {
                            "type": "string",
                            "format": "uri"
                          }
                        }
                      }
                    },
                    "data": {
                      "description": "The records. The row shape differs per dataset; see `variableMeasured`."
                    }
                  },
                  "required": [
                    "@context",
                    "@type",
                    "name",
                    "url",
                    "license",
                    "data"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/trip-cost.json": {
      "get": {
        "operationId": "getTripCost",
        "tags": [
          "Datasets"
        ],
        "summary": "Itemised trip costs by destination.",
        "responses": {
          "200": {
            "description": "One row per destination carrying a list of cost items, each with a low and high figure in USD, its unit, and whether the figure is an estimate.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A schema.org Dataset node with the rows attached. The JSON-LD keys carry the provenance; `data` carries the records.",
                  "properties": {
                    "@context": {
                      "const": "https://schema.org"
                    },
                    "@type": {
                      "const": "Dataset"
                    },
                    "@id": {
                      "type": "string",
                      "format": "uri"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "creator": {
                      "type": "object"
                    },
                    "datePublished": {
                      "type": "string"
                    },
                    "dateModified": {
                      "type": "string"
                    },
                    "temporalCoverage": {
                      "type": "string"
                    },
                    "license": {
                      "type": "string",
                      "format": "uri"
                    },
                    "isAccessibleForFree": {
                      "type": "boolean"
                    },
                    "measurementTechnique": {
                      "type": "string"
                    },
                    "keywords": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "variableMeasured": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "spatialCoverage": {
                      "type": [
                        "object",
                        "array"
                      ]
                    },
                    "citation": {
                      "type": "string"
                    },
                    "distribution": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "@type": {
                            "const": "DataDownload"
                          },
                          "encodingFormat": {
                            "type": "string"
                          },
                          "contentUrl": {
                            "type": "string",
                            "format": "uri"
                          }
                        }
                      }
                    },
                    "data": {
                      "description": "The records. The row shape differs per dataset; see `variableMeasured`."
                    }
                  },
                  "required": [
                    "@context",
                    "@type",
                    "name",
                    "url",
                    "license",
                    "data"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/surgeons-by-country-summary.json": {
      "get": {
        "operationId": "getSurgeonsByCountrySummary",
        "tags": [
          "Datasets"
        ],
        "summary": "Listed surgeons per country.",
        "responses": {
          "200": {
            "description": "Per country: listed surgeons, how many have a certifying board recorded, that share as a percentage, and the mean Google review count. A directory snapshot, not a census of every surgeon in a country.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A schema.org Dataset node with the rows attached. The JSON-LD keys carry the provenance; `data` carries the records.",
                  "properties": {
                    "@context": {
                      "const": "https://schema.org"
                    },
                    "@type": {
                      "const": "Dataset"
                    },
                    "@id": {
                      "type": "string",
                      "format": "uri"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "creator": {
                      "type": "object"
                    },
                    "datePublished": {
                      "type": "string"
                    },
                    "dateModified": {
                      "type": "string"
                    },
                    "temporalCoverage": {
                      "type": "string"
                    },
                    "license": {
                      "type": "string",
                      "format": "uri"
                    },
                    "isAccessibleForFree": {
                      "type": "boolean"
                    },
                    "measurementTechnique": {
                      "type": "string"
                    },
                    "keywords": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "variableMeasured": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "spatialCoverage": {
                      "type": [
                        "object",
                        "array"
                      ]
                    },
                    "citation": {
                      "type": "string"
                    },
                    "distribution": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "@type": {
                            "const": "DataDownload"
                          },
                          "encodingFormat": {
                            "type": "string"
                          },
                          "contentUrl": {
                            "type": "string",
                            "format": "uri"
                          }
                        }
                      }
                    },
                    "data": {
                      "description": "The records. The row shape differs per dataset; see `variableMeasured`."
                    }
                  },
                  "required": [
                    "@context",
                    "@type",
                    "name",
                    "url",
                    "license",
                    "data"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/surgeons-by-city-summary.json": {
      "get": {
        "operationId": "getSurgeonsByCitySummary",
        "tags": [
          "Datasets"
        ],
        "summary": "Listed surgeons per city.",
        "responses": {
          "200": {
            "description": "Per city: the country, the location slug, listed surgeons, board-certified count and share, and the mean Google review count.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A schema.org Dataset node with the rows attached. The JSON-LD keys carry the provenance; `data` carries the records.",
                  "properties": {
                    "@context": {
                      "const": "https://schema.org"
                    },
                    "@type": {
                      "const": "Dataset"
                    },
                    "@id": {
                      "type": "string",
                      "format": "uri"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "creator": {
                      "type": "object"
                    },
                    "datePublished": {
                      "type": "string"
                    },
                    "dateModified": {
                      "type": "string"
                    },
                    "temporalCoverage": {
                      "type": "string"
                    },
                    "license": {
                      "type": "string",
                      "format": "uri"
                    },
                    "isAccessibleForFree": {
                      "type": "boolean"
                    },
                    "measurementTechnique": {
                      "type": "string"
                    },
                    "keywords": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "variableMeasured": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "spatialCoverage": {
                      "type": [
                        "object",
                        "array"
                      ]
                    },
                    "citation": {
                      "type": "string"
                    },
                    "distribution": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "@type": {
                            "const": "DataDownload"
                          },
                          "encodingFormat": {
                            "type": "string"
                          },
                          "contentUrl": {
                            "type": "string",
                            "format": "uri"
                          }
                        }
                      }
                    },
                    "data": {
                      "description": "The records. The row shape differs per dataset; see `variableMeasured`."
                    }
                  },
                  "required": [
                    "@context",
                    "@type",
                    "name",
                    "url",
                    "license",
                    "data"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/surgeons-by-board.json": {
      "get": {
        "operationId": "getSurgeonsByBoard",
        "tags": [
          "Datasets"
        ],
        "summary": "Listed surgeons per certifying board.",
        "responses": {
          "200": {
            "description": "Per board: its abbreviation and full name, how many listed surgeons declare it, across how many countries, and their mean Google review count.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A schema.org Dataset node with the rows attached. The JSON-LD keys carry the provenance; `data` carries the records.",
                  "properties": {
                    "@context": {
                      "const": "https://schema.org"
                    },
                    "@type": {
                      "const": "Dataset"
                    },
                    "@id": {
                      "type": "string",
                      "format": "uri"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "creator": {
                      "type": "object"
                    },
                    "datePublished": {
                      "type": "string"
                    },
                    "dateModified": {
                      "type": "string"
                    },
                    "temporalCoverage": {
                      "type": "string"
                    },
                    "license": {
                      "type": "string",
                      "format": "uri"
                    },
                    "isAccessibleForFree": {
                      "type": "boolean"
                    },
                    "measurementTechnique": {
                      "type": "string"
                    },
                    "keywords": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "variableMeasured": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "spatialCoverage": {
                      "type": [
                        "object",
                        "array"
                      ]
                    },
                    "citation": {
                      "type": "string"
                    },
                    "distribution": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "@type": {
                            "const": "DataDownload"
                          },
                          "encodingFormat": {
                            "type": "string"
                          },
                          "contentUrl": {
                            "type": "string",
                            "format": "uri"
                          }
                        }
                      }
                    },
                    "data": {
                      "description": "The records. The row shape differs per dataset; see `variableMeasured`."
                    }
                  },
                  "required": [
                    "@context",
                    "@type",
                    "name",
                    "url",
                    "license",
                    "data"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/surgeon-languages.json": {
      "get": {
        "operationId": "getSurgeonLanguages",
        "tags": [
          "Datasets"
        ],
        "summary": "Languages the listed surgeons speak.",
        "responses": {
          "200": {
            "description": "Per language: how many listed surgeons speak it, across how many countries, how many are native speakers, and the countries contributing most of them.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A schema.org Dataset node with the rows attached. The JSON-LD keys carry the provenance; `data` carries the records.",
                  "properties": {
                    "@context": {
                      "const": "https://schema.org"
                    },
                    "@type": {
                      "const": "Dataset"
                    },
                    "@id": {
                      "type": "string",
                      "format": "uri"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "creator": {
                      "type": "object"
                    },
                    "datePublished": {
                      "type": "string"
                    },
                    "dateModified": {
                      "type": "string"
                    },
                    "temporalCoverage": {
                      "type": "string"
                    },
                    "license": {
                      "type": "string",
                      "format": "uri"
                    },
                    "isAccessibleForFree": {
                      "type": "boolean"
                    },
                    "measurementTechnique": {
                      "type": "string"
                    },
                    "keywords": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "variableMeasured": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "spatialCoverage": {
                      "type": [
                        "object",
                        "array"
                      ]
                    },
                    "citation": {
                      "type": "string"
                    },
                    "distribution": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "@type": {
                            "const": "DataDownload"
                          },
                          "encodingFormat": {
                            "type": "string"
                          },
                          "contentUrl": {
                            "type": "string",
                            "format": "uri"
                          }
                        }
                      }
                    },
                    "data": {
                      "description": "The records. The row shape differs per dataset; see `variableMeasured`."
                    }
                  },
                  "required": [
                    "@context",
                    "@type",
                    "name",
                    "url",
                    "license",
                    "data"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/datasets/demand-index.json": {
      "get": {
        "operationId": "getDemandIndex",
        "tags": [
          "Datasets"
        ],
        "summary": "The deep plane demand index.",
        "responses": {
          "200": {
            "description": "The demand index with its disclosure control attached: `disclosureControl` states the minimum cell size and the suppression rule, and `privacyStatement` says what was withheld and why.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A schema.org Dataset node with the rows attached. The JSON-LD keys carry the provenance; `data` carries the records.",
                  "properties": {
                    "@context": {
                      "const": "https://schema.org"
                    },
                    "@type": {
                      "const": "Dataset"
                    },
                    "@id": {
                      "type": "string",
                      "format": "uri"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "creator": {
                      "type": "object"
                    },
                    "datePublished": {
                      "type": "string"
                    },
                    "dateModified": {
                      "type": "string"
                    },
                    "temporalCoverage": {
                      "type": "string"
                    },
                    "license": {
                      "type": "string",
                      "format": "uri"
                    },
                    "isAccessibleForFree": {
                      "type": "boolean"
                    },
                    "measurementTechnique": {
                      "type": "string"
                    },
                    "keywords": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "variableMeasured": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "spatialCoverage": {
                      "type": [
                        "object",
                        "array"
                      ]
                    },
                    "citation": {
                      "type": "string"
                    },
                    "distribution": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "@type": {
                            "const": "DataDownload"
                          },
                          "encodingFormat": {
                            "type": "string"
                          },
                          "contentUrl": {
                            "type": "string",
                            "format": "uri"
                          }
                        }
                      }
                    },
                    "data": {
                      "description": "The records. The row shape differs per dataset; see `variableMeasured`."
                    }
                  },
                  "required": [
                    "@context",
                    "@type",
                    "name",
                    "url",
                    "license",
                    "data"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/datasets/credential-registry.json": {
      "get": {
        "operationId": "getCredentialRegistry",
        "tags": [
          "Datasets"
        ],
        "summary": "The verified credential registry.",
        "responses": {
          "200": {
            "description": "Credential rows plus an `evidenceStatement` giving how many rows are independently evidenced, the breakdown by source, and the rule under which candidate tokens were rejected.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A schema.org Dataset node with the rows attached. The JSON-LD keys carry the provenance; `data` carries the records.",
                  "properties": {
                    "@context": {
                      "const": "https://schema.org"
                    },
                    "@type": {
                      "const": "Dataset"
                    },
                    "@id": {
                      "type": "string",
                      "format": "uri"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "creator": {
                      "type": "object"
                    },
                    "datePublished": {
                      "type": "string"
                    },
                    "dateModified": {
                      "type": "string"
                    },
                    "temporalCoverage": {
                      "type": "string"
                    },
                    "license": {
                      "type": "string",
                      "format": "uri"
                    },
                    "isAccessibleForFree": {
                      "type": "boolean"
                    },
                    "measurementTechnique": {
                      "type": "string"
                    },
                    "keywords": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "variableMeasured": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "spatialCoverage": {
                      "type": [
                        "object",
                        "array"
                      ]
                    },
                    "citation": {
                      "type": "string"
                    },
                    "distribution": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "@type": {
                            "const": "DataDownload"
                          },
                          "encodingFormat": {
                            "type": "string"
                          },
                          "contentUrl": {
                            "type": "string",
                            "format": "uri"
                          }
                        }
                      }
                    },
                    "data": {
                      "description": "The records. The row shape differs per dataset; see `variableMeasured`."
                    }
                  },
                  "required": [
                    "@context",
                    "@type",
                    "name",
                    "url",
                    "license",
                    "data"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/report/2026.json": {
      "get": {
        "operationId": "getStateOfDeepPlaneReport",
        "tags": [
          "Datasets"
        ],
        "summary": "The State of Deep Plane 2026 report data.",
        "responses": {
          "200": {
            "description": "The report's figures as a citable Dataset. Companion citation files are served at the same stem with .bib and .ris extensions.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A schema.org Dataset node with the rows attached. The JSON-LD keys carry the provenance; `data` carries the records.",
                  "properties": {
                    "@context": {
                      "const": "https://schema.org"
                    },
                    "@type": {
                      "const": "Dataset"
                    },
                    "@id": {
                      "type": "string",
                      "format": "uri"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "creator": {
                      "type": "object"
                    },
                    "datePublished": {
                      "type": "string"
                    },
                    "dateModified": {
                      "type": "string"
                    },
                    "temporalCoverage": {
                      "type": "string"
                    },
                    "license": {
                      "type": "string",
                      "format": "uri"
                    },
                    "isAccessibleForFree": {
                      "type": "boolean"
                    },
                    "measurementTechnique": {
                      "type": "string"
                    },
                    "keywords": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "variableMeasured": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "spatialCoverage": {
                      "type": [
                        "object",
                        "array"
                      ]
                    },
                    "citation": {
                      "type": "string"
                    },
                    "distribution": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "@type": {
                            "const": "DataDownload"
                          },
                          "encodingFormat": {
                            "type": "string"
                          },
                          "contentUrl": {
                            "type": "string",
                            "format": "uri"
                          }
                        }
                      }
                    },
                    "data": {
                      "description": "The records. The row shape differs per dataset; see `variableMeasured`."
                    }
                  },
                  "required": [
                    "@context",
                    "@type",
                    "name",
                    "url",
                    "license",
                    "data"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/datasets/index.json": {
      "get": {
        "operationId": "getDatasetCatalog",
        "tags": [
          "Datasets"
        ],
        "summary": "The catalog of citable datasets.",
        "responses": {
          "200": {
            "description": "A schema.org DataCatalog. `dataset` lists the published datasets with their size; `forthcoming` names datasets that are specified but not yet published, so an agent does not mistake a plan for a file.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "@context": {
                      "const": "https://schema.org"
                    },
                    "@type": {
                      "const": "DataCatalog"
                    },
                    "@id": {
                      "type": "string",
                      "format": "uri"
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "license": {
                      "type": "string",
                      "format": "uri"
                    },
                    "usageInfo": {
                      "type": "string",
                      "format": "uri"
                    },
                    "isAccessibleForFree": {
                      "type": "boolean"
                    },
                    "dataset": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "forthcoming": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  },
                  "required": [
                    "@context",
                    "@type",
                    "dataset"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/index.json": {
      "get": {
        "operationId": "getApiIndex",
        "tags": [
          "Datasets"
        ],
        "summary": "The index of v1 JSON endpoints.",
        "responses": {
          "200": {
            "description": "The machine-readable list of v1 endpoints this site serves. Dynamic; treat it as an object of links rather than a fixed field list.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/verify/{slug}.json": {
      "get": {
        "operationId": "getVerification",
        "tags": [
          "Surgeons"
        ],
        "summary": "Whether one listed surgeon is verified, and when that was last checked.",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "description": "The surgeon's profile slug, without the .json suffix.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The verification state of one profile: whether it is verified, its public level, whether the badge is live, when the badge link was last checked, and the URLs of the profile, the certificate and the methodology.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "slug": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "verified": {
                      "type": "boolean"
                    },
                    "publicLevel": {
                      "type": "string"
                    },
                    "badgeLive": {
                      "type": "boolean"
                    },
                    "linkLastCheckedAt": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "profileUrl": {
                      "type": "string",
                      "format": "uri"
                    },
                    "certificateUrl": {
                      "type": "string",
                      "format": "uri"
                    },
                    "methodologyUrl": {
                      "type": "string",
                      "format": "uri"
                    },
                    "license": {
                      "type": "string"
                    },
                    "publisher": {
                      "const": "DEEPPLANE™"
                    },
                    "retrievedAt": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "slug",
                    "verified",
                    "profileUrl",
                    "retrievedAt"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "`error` is one of unknown_slug, not_listed or no_longer_listed. The three are kept apart on purpose: a delisted surgeon is not the same as one who never existed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "503": {
            "description": "`error` is not_measurable: the check could not run, and no verdict is invented.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/datasets/credential-registry/{dpid}.json": {
      "get": {
        "operationId": "getCredentialRegistryEntry",
        "tags": [
          "Surgeons"
        ],
        "summary": "One credential-registry entry, as a schema.org Person.",
        "parameters": [
          {
            "name": "dpid",
            "in": "path",
            "required": true,
            "description": "A DEEPPLANE™ person id in the form DPID-NNNNNN, without the .json suffix.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A Person node carrying the DPID as an identifier, the `sameAs` links held for that person, and `hasCredential` entries naming each credential and the body that recognises it.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "@context": {
                      "const": "https://schema.org"
                    },
                    "@type": {
                      "const": "Person"
                    },
                    "@id": {
                      "type": "string",
                      "format": "uri"
                    },
                    "name": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "identifier": {
                      "type": "object"
                    },
                    "sameAs": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uri"
                      }
                    },
                    "hasCredential": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "isPartOf": {
                      "type": "object"
                    },
                    "data": {
                      "type": "object"
                    }
                  },
                  "required": [
                    "@context",
                    "@type",
                    "name"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "The DPID was malformed. The expected form is DPID-NNNNNN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "No entry carries that DPID.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/data/{key}/answer": {
      "get": {
        "operationId": "getDatasetAnswer",
        "tags": [
          "Answers"
        ],
        "summary": "One dataset reduced to a question and its answer.",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "required": true,
            "description": "One of the dataset keys: demand-index, credential-registry, cost-by-country, trip-cost, surgeons-by-country, surgeons-by-board, surgeon-languages, research-corpus, before-after-stats, before-after-provenance, state-of-deep-plane, complication-transparency. The same list is served at /data/answers.json.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A small card holding the question the dataset answers, the answer with its headline number computed from the dataset at request time, the date the dataset was last modified, the dataset URL, and a citation. When the dataset cannot be read, `status` is not_measurable and `answer` is null.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "One dataset reduced to a single question and its answer, for an assistant that wants the headline without parsing the dataset.",
                  "properties": {
                    "question": {
                      "type": "string",
                      "description": "The question this dataset answers."
                    },
                    "answer": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "The answer, with its headline number computed from the dataset payload at request time. Null when the dataset could not be read, never a stand-in number."
                    },
                    "asOf": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "The dataset's own dateModified, or its datePublished when it has never been modified."
                    },
                    "source": {
                      "type": "string",
                      "format": "uri",
                      "description": "The dataset JSON this answer was computed from."
                    },
                    "citeAs": {
                      "type": "string",
                      "description": "A ready-to-paste citation for the answer."
                    },
                    "license": {
                      "type": "string",
                      "format": "uri"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "measured",
                        "not_measurable"
                      ],
                      "description": "`not_measurable` means the dataset was unreachable or carried no headline; `answer` is then null."
                    }
                  },
                  "required": [
                    "question",
                    "answer",
                    "source",
                    "citeAs",
                    "status"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "`error` is unknown_dataset, and `known` lists the valid keys.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/data/answers.json": {
      "get": {
        "operationId": "getDatasetAnswerIndex",
        "tags": [
          "Answers"
        ],
        "summary": "Every answer card in one request.",
        "responses": {
          "200": {
            "description": "`answers` holds one card per dataset, in the order the datasets are declared. A dataset that could not be read appears with status not_measurable rather than being omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "type": "integer"
                    },
                    "answers": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "description": "One dataset reduced to a single question and its answer, for an assistant that wants the headline without parsing the dataset.",
                        "properties": {
                          "question": {
                            "type": "string",
                            "description": "The question this dataset answers."
                          },
                          "answer": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "The answer, with its headline number computed from the dataset payload at request time. Null when the dataset could not be read, never a stand-in number."
                          },
                          "asOf": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "The dataset's own dateModified, or its datePublished when it has never been modified."
                          },
                          "source": {
                            "type": "string",
                            "format": "uri",
                            "description": "The dataset JSON this answer was computed from."
                          },
                          "citeAs": {
                            "type": "string",
                            "description": "A ready-to-paste citation for the answer."
                          },
                          "license": {
                            "type": "string",
                            "format": "uri"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "measured",
                              "not_measurable"
                            ],
                            "description": "`not_measurable` means the dataset was unreachable or carried no headline; `answer` is then null."
                          }
                        },
                        "required": [
                          "question",
                          "answer",
                          "source",
                          "citeAs",
                          "status"
                        ]
                      }
                    }
                  },
                  "required": [
                    "count",
                    "answers"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/openapi.json": {
      "get": {
        "operationId": "getOpenApiSpec",
        "tags": [
          "Service"
        ],
        "summary": "This document.",
        "responses": {
          "200": {
            "description": "The OpenAPI 3.1 description of the endpoints listed here.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    }
  }
}