{
  "openapi": "3.1.0",
  "info": {
    "title": "agent-helper",
    "version": "1.0.0",
    "description": "Generated from the same endpoint table that routes requests. Guide: /agents.md",
    "contact": {
      "email": "abuse@agent-helper.org",
      "url": "https://agent-helper.org/about"
    }
  },
  "servers": [
    {
      "url": "https://agent-helper.org"
    }
  ],
  "paths": {
    "/": {
      "get": {
        "operationId": "get_",
        "summary": "What this is, for whom, and where everything is",
        "tags": [
          "docs"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "doc",
        "x-cost": "static",
        "x-examples": [
          "/"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/agents.md": {
      "get": {
        "operationId": "get_agents_md",
        "summary": "Full guide for machine clients (Markdown)",
        "tags": [
          "docs"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "doc",
        "x-cost": "static",
        "x-examples": [
          "/agents.md"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/llms.txt": {
      "get": {
        "operationId": "get_llms_txt",
        "summary": "The guide in llms.txt format",
        "tags": [
          "docs"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "doc",
        "x-cost": "static",
        "x-examples": [
          "/llms.txt"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/endpoints": {
      "get": {
        "operationId": "get_endpoints",
        "summary": "Every path with a one-line description",
        "tags": [
          "docs"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "doc",
        "x-cost": "static",
        "x-examples": [
          "/endpoints"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/openapi.json": {
      "get": {
        "operationId": "get_openapi_json",
        "summary": "OpenAPI 3.1 specification",
        "tags": [
          "docs"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "doc",
        "x-cost": "static",
        "x-examples": [
          "/openapi.json"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/limits": {
      "get": {
        "operationId": "get_limits",
        "summary": "Current rate limits, input caps and time budget",
        "tags": [
          "docs"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "doc",
        "x-cost": "static",
        "x-examples": [
          "/limits"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/sources": {
      "get": {
        "operationId": "get_sources",
        "summary": "Data sources: publisher, terms, refresh interval, current freshness",
        "tags": [
          "docs"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "doc",
        "x-cost": "static",
        "x-examples": [
          "/sources"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/elsewhere": {
      "get": {
        "operationId": "get_elsewhere",
        "summary": "Services with no key and no sign-up for what this service deliberately does not relay",
        "tags": [
          "docs"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "doc",
        "x-cost": "static",
        "x-examples": [
          "/elsewhere"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/about": {
      "get": {
        "operationId": "get_about",
        "summary": "Who runs this, why, what is logged, retention, publication, lifetime, contact",
        "tags": [
          "docs"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "doc",
        "x-cost": "static",
        "x-examples": [
          "/about"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/robots.txt": {
      "get": {
        "operationId": "get_robots_txt",
        "summary": "Everything is allowed",
        "tags": [
          "docs"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "doc",
        "x-cost": "static",
        "x-examples": [
          "/robots.txt"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/sitemap.xml": {
      "get": {
        "operationId": "get_sitemap_xml",
        "summary": "All static addresses",
        "tags": [
          "docs"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "doc",
        "x-cost": "static",
        "x-examples": [
          "/sitemap.xml"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/security.txt": {
      "get": {
        "operationId": "get__well_known_security_txt",
        "summary": "Security and abuse contact (RFC 9116)",
        "tags": [
          "docs"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "doc",
        "x-cost": "static",
        "x-examples": [
          "/.well-known/security.txt"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/health": {
      "get": {
        "operationId": "get_health",
        "summary": "Liveness check: 'ok' and the age of each data set",
        "tags": [
          "docs"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "doc",
        "x-cost": "static",
        "x-examples": [
          "/health"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/utc": {
      "get": {
        "operationId": "get_utc",
        "summary": "Current UTC time, ISO 8601",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "precision",
            "in": "query",
            "required": false,
            "description": "seconds (default), milliseconds or microseconds",
            "schema": {
              "type": "string",
              "enum": [
                "seconds",
                "milliseconds",
                "microseconds"
              ]
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "static",
        "x-examples": [
          "/utc",
          "/utc?precision=milliseconds"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/time/now": {
      "get": {
        "operationId": "get_time_now",
        "summary": "Current time in a timezone, with offset and DST state",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "tz",
            "in": "query",
            "required": true,
            "description": "IANA timezone name",
            "schema": {
              "type": "string"
            },
            "example": "Europe/Berlin"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "static",
        "x-examples": [
          "/time/now?tz=Europe/Berlin",
          "/time/now?tz=America/New_York"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/time/unix": {
      "get": {
        "operationId": "get_time_unix",
        "summary": "Current Unix time",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "unit",
            "in": "query",
            "required": false,
            "description": "s (default), ms, us or ns",
            "schema": {
              "type": "string",
              "enum": [
                "s",
                "ms",
                "us",
                "ns"
              ]
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "static",
        "x-examples": [
          "/time/unix",
          "/time/unix?unit=ms"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/time/from-unix": {
      "get": {
        "operationId": "get_time_from_unix",
        "summary": "Unix timestamp to ISO 8601 (UTC, or a timezone if given)",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "Unix timestamp",
            "schema": {
              "type": "string"
            },
            "example": "1789480000"
          },
          {
            "name": "unit",
            "in": "query",
            "required": false,
            "description": "s (default), ms, us or ns",
            "schema": {
              "type": "string",
              "enum": [
                "s",
                "ms",
                "us",
                "ns"
              ]
            }
          },
          {
            "name": "tz",
            "in": "query",
            "required": false,
            "description": "optional IANA timezone for the output",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/time/from-unix?value=1789480000",
          "/time/from-unix?value=1789480000123&unit=ms&tz=Asia/Tokyo"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/time/to-unix": {
      "get": {
        "operationId": "get_time_to_unix",
        "summary": "ISO 8601 date-time to Unix seconds",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "ISO 8601 date-time with offset, or without offset plus tz ('+' is kept literally)",
            "schema": {
              "type": "string"
            },
            "example": "2026-09-15T14:00:00+02:00"
          },
          {
            "name": "tz",
            "in": "query",
            "required": false,
            "description": "IANA timezone name, e.g. Europe/Berlin",
            "schema": {
              "type": "string"
            },
            "example": "Europe/Berlin"
          },
          {
            "name": "ambiguous",
            "in": "query",
            "required": false,
            "description": "for a wall-clock time that occurs twice (clocks go back): earlier or later",
            "schema": {
              "type": "string",
              "enum": [
                "earlier",
                "later"
              ]
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/time/to-unix?value=2026-09-15T14:00:00Z",
          "/time/to-unix?value=2026-09-15T14:00&tz=Europe/Berlin"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/time/parse": {
      "get": {
        "operationId": "get_time_parse",
        "summary": "Parse a date/time in almost any format into ISO 8601",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "date/time text, e.g. 'March 5 2026 2:30pm' or '05.03.2026 14:30' ('+' is kept literally)",
            "schema": {
              "type": "string"
            },
            "example": "March 5 2026 2:30pm"
          },
          {
            "name": "tz",
            "in": "query",
            "required": false,
            "description": "IANA timezone to attach when the text has no offset",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dayfirst",
            "in": "query",
            "required": false,
            "description": "true or false; required when the text is ambiguous like 03/05/2026",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ambiguous",
            "in": "query",
            "required": false,
            "description": "for a wall-clock time that occurs twice (clocks go back): earlier or later",
            "schema": {
              "type": "string",
              "enum": [
                "earlier",
                "later"
              ]
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/time/parse?value=March%205%202026%202:30pm",
          "/time/parse?value=05.03.2026%2014:30&dayfirst=true&tz=Europe/Moscow",
          "/time/parse?value=Tue,%2015%20Sep%202026%2014:03:22%20GMT"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/time/convert": {
      "get": {
        "operationId": "get_time_convert",
        "summary": "Convert a date-time between timezones (DST-aware)",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "ISO 8601 date-time; offset optional if from= is given ('+' is kept literally)",
            "schema": {
              "type": "string"
            },
            "example": "2026-09-15T14:00"
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "IANA timezone of value when it has no offset",
            "schema": {
              "type": "string"
            },
            "example": "Europe/Moscow"
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "target IANA timezone",
            "schema": {
              "type": "string"
            },
            "example": "America/New_York"
          },
          {
            "name": "ambiguous",
            "in": "query",
            "required": false,
            "description": "for a wall-clock time that occurs twice (clocks go back): earlier or later",
            "schema": {
              "type": "string",
              "enum": [
                "earlier",
                "later"
              ]
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/time/convert?value=2026-09-15T14:00&from=Europe/Moscow&to=America/New_York",
          "/time/convert?value=2026-09-15T14:00:00Z&to=Asia/Kolkata"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/time/diff": {
      "get": {
        "operationId": "get_time_diff",
        "summary": "Difference between two instants or dates (exact and calendar)",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "ISO 8601 date or date-time ('+' is kept literally)",
            "schema": {
              "type": "string"
            },
            "example": "2026-01-01T00:00:00Z"
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "ISO 8601 date or date-time ('+' is kept literally)",
            "schema": {
              "type": "string"
            },
            "example": "2026-09-15T14:03:22Z"
          },
          {
            "name": "tz",
            "in": "query",
            "required": false,
            "description": "IANA timezone for values without offset",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ambiguous",
            "in": "query",
            "required": false,
            "description": "for a wall-clock time that occurs twice (clocks go back): earlier or later",
            "schema": {
              "type": "string",
              "enum": [
                "earlier",
                "later"
              ]
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/time/diff?from=2026-01-01T00:00:00Z&to=2026-09-15T14:03:22Z",
          "/time/diff?from=2026-03-01&to=2026-09-15",
          "/time/diff?from=2026-03-28T12:00&to=2026-03-29T12:00&tz=Europe/Berlin"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/time/add": {
      "get": {
        "operationId": "get_time_add",
        "summary": "Add an ISO 8601 duration to a date or date-time (calendar arithmetic)",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "ISO 8601 date or date-time ('+' is kept literally)",
            "schema": {
              "type": "string"
            },
            "example": "2026-01-31"
          },
          {
            "name": "duration",
            "in": "query",
            "required": true,
            "description": "ISO 8601 duration, may start with '-', e.g. P1M, PT36H, -P2W",
            "schema": {
              "type": "string"
            },
            "example": "P1M"
          },
          {
            "name": "tz",
            "in": "query",
            "required": false,
            "description": "IANA timezone: wall-clock arithmetic in that zone",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ambiguous",
            "in": "query",
            "required": false,
            "description": "for a wall-clock time that occurs twice (clocks go back): earlier or later",
            "schema": {
              "type": "string",
              "enum": [
                "earlier",
                "later"
              ]
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/time/add?value=2026-01-31&duration=P1M",
          "/time/add?value=2026-03-28T12:00&duration=P1D&tz=Europe/Berlin",
          "/time/add?value=2026-09-15T14:00:00Z&duration=-PT90M"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/time/week": {
      "get": {
        "operationId": "get_time_week",
        "summary": "ISO week, day of year, quarter and weekday of a date",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "date",
            "in": "query",
            "required": true,
            "description": "ISO date YYYY-MM-DD",
            "schema": {
              "type": "string"
            },
            "example": "2026-09-15"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/time/week?date=2026-09-15",
          "/time/week?date=2027-01-01"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/time/leap-year/{year}": {
      "get": {
        "operationId": "get_time_leap_year_year",
        "summary": "Whether a year is a leap year (proleptic Gregorian)",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "year",
            "in": "path",
            "required": true,
            "description": "year, e.g. 2028",
            "schema": {
              "type": "string"
            },
            "example": "2028"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/time/leap-year/2028",
          "/time/leap-year/1900"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/time/julian-day": {
      "get": {
        "operationId": "get_time_julian_day",
        "summary": "Julian Day and Modified Julian Day of an instant",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "ISO 8601 date-time with offset (or plus tz) ('+' is kept literally)",
            "schema": {
              "type": "string"
            },
            "example": "2026-09-15T12:00:00Z"
          },
          {
            "name": "tz",
            "in": "query",
            "required": false,
            "description": "IANA timezone name, e.g. Europe/Berlin",
            "schema": {
              "type": "string"
            },
            "example": "Europe/Berlin"
          },
          {
            "name": "ambiguous",
            "in": "query",
            "required": false,
            "description": "for a wall-clock time that occurs twice (clocks go back): earlier or later",
            "schema": {
              "type": "string",
              "enum": [
                "earlier",
                "later"
              ]
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/time/julian-day?value=2026-09-15T12:00:00Z"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/time/cron": {
      "get": {
        "operationId": "get_time_cron",
        "summary": "Next firing times of a cron expression in a timezone",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "expr",
            "in": "query",
            "required": true,
            "description": "cron expression, 5 fields (6 with seconds)",
            "schema": {
              "type": "string"
            },
            "example": "*/15 9-17 * * mon-fri"
          },
          {
            "name": "tz",
            "in": "query",
            "required": true,
            "description": "IANA timezone the schedule runs in",
            "schema": {
              "type": "string"
            },
            "example": "Europe/Berlin"
          },
          {
            "name": "n",
            "in": "query",
            "required": false,
            "description": "how many firings, 1-100",
            "schema": {
              "type": "integer",
              "default": 5
            }
          },
          {
            "name": "after",
            "in": "query",
            "required": false,
            "description": "ISO 8601 instant, exclusive: firings strictly after it (default: now) ('+' is kept literally)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "heavy",
        "x-examples": [
          "/time/cron?expr=*/15%209-17%20*%20*%20mon-fri&tz=Europe/Berlin",
          "/time/cron?expr=0%203%20*%20*%20*&tz=UTC&n=3"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/time/rrule": {
      "get": {
        "operationId": "get_time_rrule",
        "summary": "Occurrences of an iCalendar RRULE in a timezone",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "rule",
            "in": "query",
            "required": true,
            "description": "RFC 5545 RRULE, e.g. FREQ=MONTHLY;BYDAY=-1FR",
            "schema": {
              "type": "string"
            },
            "example": "FREQ=MONTHLY;BYDAY=-1FR"
          },
          {
            "name": "start",
            "in": "query",
            "required": true,
            "description": "first occurrence as local date-time without offset",
            "schema": {
              "type": "string"
            },
            "example": "2026-09-25T10:00"
          },
          {
            "name": "tz",
            "in": "query",
            "required": true,
            "description": "IANA timezone of start",
            "schema": {
              "type": "string"
            },
            "example": "Europe/London"
          },
          {
            "name": "n",
            "in": "query",
            "required": false,
            "description": "how many occurrences, 1-100",
            "schema": {
              "type": "integer",
              "default": 10
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "heavy",
        "x-examples": [
          "/time/rrule?rule=FREQ=MONTHLY;BYDAY=-1FR&start=2026-09-25T10:00&tz=Europe/London&n=5"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/time/duration": {
      "get": {
        "operationId": "get_time_duration",
        "summary": "Break down an ISO 8601 duration; exact seconds when unambiguous",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "ISO 8601 duration, e.g. P1Y2M10DT2H30M",
            "schema": {
              "type": "string"
            },
            "example": "P3DT4H5M"
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "optional ISO 8601 start instant to resolve years and months ('+' is kept literally)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tz",
            "in": "query",
            "required": false,
            "description": "IANA timezone name, e.g. Europe/Berlin",
            "schema": {
              "type": "string"
            },
            "example": "Europe/Berlin"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/time/duration?value=P3DT4H5M",
          "/time/duration?value=P1M&from=2026-02-01T00:00:00Z"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/time/age": {
      "get": {
        "operationId": "get_time_age",
        "summary": "Age in years, months and days on a given date",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "birth",
            "in": "query",
            "required": true,
            "description": "birth date YYYY-MM-DD",
            "schema": {
              "type": "string"
            },
            "example": "1990-05-17"
          },
          {
            "name": "on",
            "in": "query",
            "required": true,
            "description": "date to compute the age on, YYYY-MM-DD",
            "schema": {
              "type": "string"
            },
            "example": "2026-09-15"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/time/age?birth=1990-05-17&on=2026-09-15"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/time/until": {
      "get": {
        "operationId": "get_time_until",
        "summary": "Time remaining from now until an instant",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "ISO 8601 date-time (offset, or plus tz) ('+' is kept literally)",
            "schema": {
              "type": "string"
            },
            "example": "2027-01-01T00:00"
          },
          {
            "name": "tz",
            "in": "query",
            "required": false,
            "description": "IANA timezone name, e.g. Europe/Berlin",
            "schema": {
              "type": "string"
            },
            "example": "Europe/Berlin"
          },
          {
            "name": "ambiguous",
            "in": "query",
            "required": false,
            "description": "for a wall-clock time that occurs twice (clocks go back): earlier or later",
            "schema": {
              "type": "string",
              "enum": [
                "earlier",
                "later"
              ]
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "static",
        "x-examples": [
          "/time/until?to=2027-01-01T00:00&tz=Europe/Berlin",
          "/time/until?to=2026-12-31T23:59:59Z"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/time/business-days/add": {
      "get": {
        "operationId": "get_time_business_days_add",
        "summary": "Add N business days to a date for a country's calendar",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "date",
            "in": "query",
            "required": true,
            "description": "start date YYYY-MM-DD",
            "schema": {
              "type": "string"
            },
            "example": "2026-12-23"
          },
          {
            "name": "days",
            "in": "query",
            "required": true,
            "description": "business days to add (negative subtracts), max 1000",
            "schema": {
              "type": "integer"
            },
            "example": "3"
          },
          {
            "name": "country",
            "in": "query",
            "required": true,
            "description": "ISO 3166-1 alpha-2",
            "schema": {
              "type": "string"
            },
            "example": "de"
          },
          {
            "name": "region",
            "in": "query",
            "required": false,
            "description": "ISO 3166-2 subdivision to include regional holidays, e.g. DE-BY",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "weekend",
            "in": "query",
            "required": false,
            "description": "override weekend days, e.g. fri,sat",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "light",
        "x-examples": [
          "/time/business-days/add?date=2026-12-23&days=3&country=de",
          "/time/business-days/add?date=2026-12-30&days=1&country=ru"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "nager"
        ]
      }
    },
    "/time/business-days/count": {
      "get": {
        "operationId": "get_time_business_days_count",
        "summary": "Count business days between two dates (both inclusive)",
        "tags": [
          "time"
        ],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "first date YYYY-MM-DD, inclusive",
            "schema": {
              "type": "string"
            },
            "example": "2026-12-01"
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "last date YYYY-MM-DD, inclusive",
            "schema": {
              "type": "string"
            },
            "example": "2026-12-31"
          },
          {
            "name": "country",
            "in": "query",
            "required": true,
            "description": "ISO 3166-1 alpha-2",
            "schema": {
              "type": "string"
            },
            "example": "ru"
          },
          {
            "name": "region",
            "in": "query",
            "required": false,
            "description": "ISO 3166-2 subdivision to include regional holidays, e.g. DE-BY",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "weekend",
            "in": "query",
            "required": false,
            "description": "override weekend days, e.g. fri,sat",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "light",
        "x-examples": [
          "/time/business-days/count?from=2026-12-01&to=2026-12-31&country=ru",
          "/time/business-days/count?from=2026-01-01&to=2026-01-31&country=us"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "nager"
        ]
      }
    },
    "/calc": {
      "get": {
        "operationId": "get_calc",
        "summary": "Evaluate an arithmetic expression with arbitrary precision (never float)",
        "tags": [
          "calc"
        ],
        "parameters": [
          {
            "name": "expr",
            "in": "query",
            "required": true,
            "description": "expression: + - * / // % ^ ( ) and functions sqrt ln log10 log(x,b) exp sin cos tan abs floor ceil round min max factorial gcd lcm; constants pi e tau ('+' is kept literally)",
            "schema": {
              "type": "string"
            },
            "example": "(1.1+2.2)*3"
          },
          {
            "name": "precision",
            "in": "query",
            "required": false,
            "description": "significant digits, 1-100000 (the digits of the result are what the cap applies to)",
            "schema": {
              "type": "integer",
              "default": 50
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "heavy",
        "x-examples": [
          "/calc?expr=0.1+0.2",
          "/calc?expr=sqrt(2)&precision=100",
          "/calc?expr=(1.07^10-1)*100"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/calc/exact": {
      "get": {
        "operationId": "get_calc_exact",
        "summary": "Evaluate with exact rational arithmetic; result as a fraction and repeating decimal",
        "tags": [
          "calc"
        ],
        "parameters": [
          {
            "name": "expr",
            "in": "query",
            "required": true,
            "description": "expression with + - * / // % ^ (integer powers) ( ) abs floor ceil min max factorial gcd lcm ('+' is kept literally)",
            "schema": {
              "type": "string"
            },
            "example": "1/3+1/6"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "heavy",
        "x-examples": [
          "/calc/exact?expr=1/3+1/6",
          "/calc/exact?expr=22/7-3",
          "/calc/exact?expr=0.1+0.2"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/calc/round": {
      "get": {
        "operationId": "get_calc_round",
        "summary": "Round a decimal number with an explicit rule",
        "tags": [
          "calc"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "decimal number",
            "schema": {
              "type": "string"
            },
            "example": "2.675"
          },
          {
            "name": "places",
            "in": "query",
            "required": false,
            "description": "decimal places (negative rounds to tens, hundreds...)",
            "schema": {
              "type": "integer",
              "default": 0
            }
          },
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "description": "rounding rule",
            "schema": {
              "type": "string",
              "enum": [
                "half-even",
                "half-up",
                "half-down",
                "down",
                "up",
                "floor",
                "ceiling"
              ],
              "default": "half-even"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/calc/round?value=2.675&places=2&mode=half-up",
          "/calc/round?value=2.5&mode=half-even",
          "/calc/round?value=1234&places=-2"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/calc/base": {
      "get": {
        "operationId": "get_calc_base",
        "summary": "Convert an integer between bases 2-36",
        "tags": [
          "calc"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "integer written in base from; 0x/0o/0b prefixes accepted",
            "schema": {
              "type": "string"
            },
            "example": "ff"
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "source base 2-36",
            "schema": {
              "type": "integer",
              "default": 10
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "target base 2-36",
            "schema": {
              "type": "integer",
              "default": 10
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/calc/base?value=ff&from=16&to=2",
          "/calc/base?value=255&to=16",
          "/calc/base?value=0b1010"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/calc/bitwise": {
      "get": {
        "operationId": "get_calc_bitwise",
        "summary": "Bitwise and, or, xor, not, shifts on integers of a given width",
        "tags": [
          "calc"
        ],
        "parameters": [
          {
            "name": "op",
            "in": "query",
            "required": true,
            "description": "and, or, xor, not, shl, shr",
            "schema": {
              "type": "string",
              "enum": [
                "and",
                "or",
                "xor",
                "not",
                "shl",
                "shr"
              ]
            }
          },
          {
            "name": "a",
            "in": "query",
            "required": true,
            "description": "integer (decimal, or 0x/0b prefixed)",
            "schema": {
              "type": "string"
            },
            "example": "0b1100"
          },
          {
            "name": "b",
            "in": "query",
            "required": false,
            "description": "second integer, or shift amount",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "bits",
            "in": "query",
            "required": false,
            "description": "word width 1-512; required for not and shl so the result is well defined",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/calc/bitwise?op=and&a=0b1100&b=0b1010",
          "/calc/bitwise?op=not&a=5&bits=8",
          "/calc/bitwise?op=shl&a=1&b=31&bits=32"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/calc/percent": {
      "get": {
        "operationId": "get_calc_percent",
        "summary": "A percentage of a value",
        "tags": [
          "calc"
        ],
        "parameters": [
          {
            "name": "percent",
            "in": "query",
            "required": true,
            "description": "percentage, e.g. 15",
            "schema": {
              "type": "string"
            },
            "example": "15"
          },
          {
            "name": "of",
            "in": "query",
            "required": true,
            "description": "the base value",
            "schema": {
              "type": "string"
            },
            "example": "200"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/calc/percent?percent=15&of=200",
          "/calc/percent?percent=0.5&of=1234.56"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/calc/percent-change": {
      "get": {
        "operationId": "get_calc_percent_change",
        "summary": "Percentage change from one value to another",
        "tags": [
          "calc"
        ],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "old value",
            "schema": {
              "type": "string"
            },
            "example": "80"
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "new value",
            "schema": {
              "type": "string"
            },
            "example": "100"
          },
          {
            "name": "precision",
            "in": "query",
            "required": false,
            "description": "significant digits",
            "schema": {
              "type": "integer",
              "default": 12
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/calc/percent-change?from=80&to=100"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/calc/vat": {
      "get": {
        "operationId": "get_calc_vat",
        "summary": "Add VAT/sales tax to a net amount, or extract it from a gross amount",
        "tags": [
          "calc"
        ],
        "parameters": [
          {
            "name": "amount",
            "in": "query",
            "required": true,
            "description": "amount",
            "schema": {
              "type": "string"
            },
            "example": "100"
          },
          {
            "name": "rate",
            "in": "query",
            "required": true,
            "description": "tax rate in percent",
            "schema": {
              "type": "string"
            },
            "example": "20"
          },
          {
            "name": "mode",
            "in": "query",
            "required": true,
            "description": "add (amount is net) or extract (amount is gross)",
            "schema": {
              "type": "string",
              "enum": [
                "add",
                "extract"
              ]
            }
          },
          {
            "name": "places",
            "in": "query",
            "required": false,
            "description": "decimal places of the rounded result",
            "schema": {
              "type": "integer",
              "default": 2
            }
          },
          {
            "name": "rounding",
            "in": "query",
            "required": false,
            "description": "rounding rule",
            "schema": {
              "type": "string",
              "enum": [
                "half-even",
                "half-up",
                "half-down",
                "down",
                "up",
                "floor",
                "ceiling"
              ],
              "default": "half-even"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/calc/vat?amount=100&rate=20&mode=add",
          "/calc/vat?amount=119.99&rate=19&mode=extract&rounding=half-up"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/calc/compound": {
      "get": {
        "operationId": "get_calc_compound",
        "summary": "Compound interest: future value",
        "tags": [
          "calc"
        ],
        "parameters": [
          {
            "name": "principal",
            "in": "query",
            "required": true,
            "description": "starting amount",
            "schema": {
              "type": "string"
            },
            "example": "1000"
          },
          {
            "name": "rate",
            "in": "query",
            "required": true,
            "description": "nominal annual rate in percent",
            "schema": {
              "type": "string"
            },
            "example": "5"
          },
          {
            "name": "years",
            "in": "query",
            "required": true,
            "description": "duration in years",
            "schema": {
              "type": "string"
            },
            "example": "10"
          },
          {
            "name": "per_year",
            "in": "query",
            "required": false,
            "description": "compounding periods per year, or 'continuous'",
            "schema": {
              "type": "string",
              "default": "12"
            }
          },
          {
            "name": "places",
            "in": "query",
            "required": false,
            "description": "decimal places of the rounded result",
            "schema": {
              "type": "integer",
              "default": 2
            }
          },
          {
            "name": "rounding",
            "in": "query",
            "required": false,
            "description": "rounding rule",
            "schema": {
              "type": "string",
              "enum": [
                "half-even",
                "half-up",
                "half-down",
                "down",
                "up",
                "floor",
                "ceiling"
              ],
              "default": "half-even"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/calc/compound?principal=1000&rate=5&years=10",
          "/calc/compound?principal=1000&rate=5&years=10&per_year=continuous"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/calc/loan": {
      "get": {
        "operationId": "get_calc_loan",
        "summary": "Annuity loan: monthly payment and optional amortisation schedule",
        "tags": [
          "calc"
        ],
        "parameters": [
          {
            "name": "principal",
            "in": "query",
            "required": true,
            "description": "loan amount",
            "schema": {
              "type": "string"
            },
            "example": "250000"
          },
          {
            "name": "rate",
            "in": "query",
            "required": true,
            "description": "nominal annual interest rate in percent",
            "schema": {
              "type": "string"
            },
            "example": "4.5"
          },
          {
            "name": "months",
            "in": "query",
            "required": true,
            "description": "number of monthly payments, 1-1200",
            "schema": {
              "type": "integer"
            },
            "example": "360"
          },
          {
            "name": "schedule",
            "in": "query",
            "required": false,
            "description": "true to list every month",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "places",
            "in": "query",
            "required": false,
            "description": "decimal places of the rounded result",
            "schema": {
              "type": "integer",
              "default": 2
            }
          },
          {
            "name": "rounding",
            "in": "query",
            "required": false,
            "description": "rounding rule",
            "schema": {
              "type": "string",
              "enum": [
                "half-even",
                "half-up",
                "half-down",
                "down",
                "up",
                "floor",
                "ceiling"
              ],
              "default": "half-even"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/calc/loan?principal=250000&rate=4.5&months=360",
          "/calc/loan?principal=10000&rate=7&months=12&schedule=true"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/calc/prime/{n}": {
      "get": {
        "operationId": "get_calc_prime_n",
        "summary": "Whether an integer is prime (deterministic below 3.3e24)",
        "tags": [
          "calc"
        ],
        "parameters": [
          {
            "name": "n",
            "in": "path",
            "required": true,
            "description": "integer up to 5000 digits",
            "schema": {
              "type": "string"
            },
            "example": "2147483647"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "heavy",
        "x-examples": [
          "/calc/prime/2147483647",
          "/calc/prime/561"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/calc/factor/{n}": {
      "get": {
        "operationId": "get_calc_factor_n",
        "summary": "Prime factorisation (trial division + Pollard-Brent rho)",
        "tags": [
          "calc"
        ],
        "parameters": [
          {
            "name": "n",
            "in": "path",
            "required": true,
            "description": "positive integer up to 60 digits",
            "schema": {
              "type": "string"
            },
            "example": "600851475143"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "heavy",
        "x-examples": [
          "/calc/factor/600851475143",
          "/calc/factor/1000000007"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/calc/next-prime/{n}": {
      "get": {
        "operationId": "get_calc_next_prime_n",
        "summary": "Smallest prime greater than n",
        "tags": [
          "calc"
        ],
        "parameters": [
          {
            "name": "n",
            "in": "path",
            "required": true,
            "description": "integer",
            "schema": {
              "type": "string"
            },
            "example": "1000000"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "heavy",
        "x-examples": [
          "/calc/next-prime/1000000"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/calc/prev-prime/{n}": {
      "get": {
        "operationId": "get_calc_prev_prime_n",
        "summary": "Largest prime smaller than n",
        "tags": [
          "calc"
        ],
        "parameters": [
          {
            "name": "n",
            "in": "path",
            "required": true,
            "description": "integer greater than 2",
            "schema": {
              "type": "string"
            },
            "example": "1000000"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "heavy",
        "x-examples": [
          "/calc/prev-prime/1000000"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/calc/gcd": {
      "get": {
        "operationId": "get_calc_gcd",
        "summary": "Greatest common divisor of integers",
        "tags": [
          "calc"
        ],
        "parameters": [
          {
            "name": "values",
            "in": "query",
            "required": true,
            "description": "comma-separated integers",
            "schema": {
              "type": "string"
            },
            "example": "12,18,24"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/calc/gcd?values=12,18,24"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/calc/lcm": {
      "get": {
        "operationId": "get_calc_lcm",
        "summary": "Least common multiple of integers",
        "tags": [
          "calc"
        ],
        "parameters": [
          {
            "name": "values",
            "in": "query",
            "required": true,
            "description": "comma-separated integers",
            "schema": {
              "type": "string"
            },
            "example": "4,6,10"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/calc/lcm?values=4,6,10"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/calc/modpow": {
      "get": {
        "operationId": "get_calc_modpow",
        "summary": "Modular exponentiation base^exp mod m",
        "tags": [
          "calc"
        ],
        "parameters": [
          {
            "name": "base",
            "in": "query",
            "required": true,
            "description": "integer",
            "schema": {
              "type": "string"
            },
            "example": "4"
          },
          {
            "name": "exp",
            "in": "query",
            "required": true,
            "description": "integer (negative uses the modular inverse)",
            "schema": {
              "type": "string"
            },
            "example": "13"
          },
          {
            "name": "mod",
            "in": "query",
            "required": true,
            "description": "positive modulus",
            "schema": {
              "type": "string"
            },
            "example": "497"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/calc/modpow?base=4&exp=13&mod=497"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/calc/modinv": {
      "get": {
        "operationId": "get_calc_modinv",
        "summary": "Modular multiplicative inverse",
        "tags": [
          "calc"
        ],
        "parameters": [
          {
            "name": "a",
            "in": "query",
            "required": true,
            "description": "integer",
            "schema": {
              "type": "string"
            },
            "example": "3"
          },
          {
            "name": "mod",
            "in": "query",
            "required": true,
            "description": "positive modulus",
            "schema": {
              "type": "string"
            },
            "example": "11"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/calc/modinv?a=3&mod=11"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/calc/stats": {
      "get": {
        "operationId": "get_calc_stats",
        "summary": "Descriptive statistics of a list of numbers",
        "tags": [
          "calc"
        ],
        "parameters": [
          {
            "name": "values",
            "in": "query",
            "required": true,
            "description": "comma-separated numbers",
            "schema": {
              "type": "string"
            },
            "example": "2,4,4,4,5,5,7,9"
          },
          {
            "name": "stat",
            "in": "query",
            "required": false,
            "description": "return only one statistic",
            "schema": {
              "type": "string",
              "enum": [
                "count",
                "sum",
                "mean",
                "median",
                "min",
                "max",
                "range",
                "stdev",
                "pstdev",
                "variance",
                "pvariance",
                "p25",
                "p75",
                "p90",
                "p95",
                "p99",
                "iqr",
                "mode"
              ]
            }
          },
          {
            "name": "precision",
            "in": "query",
            "required": false,
            "description": "significant digits for inexact results",
            "schema": {
              "type": "integer",
              "default": 15
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/calc/stats?values=2,4,4,4,5,5,7,9",
          "/calc/stats?values=1.5,2.5,10&stat=median"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/calc/regression": {
      "get": {
        "operationId": "get_calc_regression",
        "summary": "Least-squares linear regression y = a*x + b",
        "tags": [
          "calc"
        ],
        "parameters": [
          {
            "name": "x",
            "in": "query",
            "required": true,
            "description": "comma-separated numbers",
            "schema": {
              "type": "string"
            },
            "example": "1,2,3,4,5"
          },
          {
            "name": "y",
            "in": "query",
            "required": true,
            "description": "comma-separated numbers, same count as x",
            "schema": {
              "type": "string"
            },
            "example": "2.1,3.9,6.2,7.8,10.1"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/calc/regression?x=1,2,3,4,5&y=2.1,3.9,6.2,7.8,10.1"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/convert/{value}/{from}/{to}": {
      "get": {
        "operationId": "get_convert_value_from_to",
        "summary": "Convert a value between units (exact SI coefficients)",
        "tags": [
          "convert"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "path",
            "required": true,
            "description": "decimal number",
            "schema": {
              "type": "string"
            },
            "example": "10"
          },
          {
            "name": "from",
            "in": "path",
            "required": true,
            "description": "unit symbol, e.g. km, lb, C, psi, MiB; units containing '/' need %2F or the query form",
            "schema": {
              "type": "string"
            },
            "example": "km"
          },
          {
            "name": "to",
            "in": "path",
            "required": true,
            "description": "unit symbol",
            "schema": {
              "type": "string"
            },
            "example": "mi"
          },
          {
            "name": "precision",
            "in": "query",
            "required": false,
            "description": "significant digits when the result does not terminate",
            "schema": {
              "type": "integer",
              "default": 15
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/convert/10/km/mi",
          "/convert/98.6/F/C",
          "/convert/1/GiB/MB",
          "/convert/30/psi/bar"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/convert": {
      "get": {
        "operationId": "get_convert",
        "summary": "Convert a value between units (query form, for units such as km/h)",
        "tags": [
          "convert"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "decimal number",
            "schema": {
              "type": "string"
            },
            "example": "100"
          },
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "unit",
            "schema": {
              "type": "string"
            },
            "example": "km/h"
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "unit",
            "schema": {
              "type": "string"
            },
            "example": "mph"
          },
          {
            "name": "precision",
            "in": "query",
            "required": false,
            "description": "significant digits when the result does not terminate",
            "schema": {
              "type": "integer",
              "default": 15
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/convert?value=100&from=km/h&to=mph",
          "/convert?value=8&from=l/100km&to=mpg"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/convert/units": {
      "get": {
        "operationId": "get_convert_units",
        "summary": "Every supported unit by dimension, with aliases",
        "tags": [
          "convert"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/convert/units"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/check/iban/{value}": {
      "get": {
        "operationId": "get_check_iban_value",
        "summary": "IBAN: country length and mod-97 check digits",
        "tags": [
          "check"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "path",
            "required": true,
            "description": "the IBAN to check; spaces and hyphens are ignored",
            "schema": {
              "type": "string"
            },
            "example": "DE89370400440532013000"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/check/iban/DE89370400440532013000",
          "/check/iban/GB82%20WEST%201234%205698%207654%2032"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/check/bic/{value}": {
      "get": {
        "operationId": "get_check_bic_value",
        "summary": "BIC/SWIFT code structure (no check digit exists)",
        "tags": [
          "check"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "path",
            "required": true,
            "description": "the BIC to check; spaces and hyphens are ignored",
            "schema": {
              "type": "string"
            },
            "example": "DEUTDEFF500"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/check/bic/DEUTDEFF500",
          "/check/bic/NWBKGB2L"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/check/isbn/{value}": {
      "get": {
        "operationId": "get_check_isbn_value",
        "summary": "ISBN-10 or ISBN-13 check digit, with conversion",
        "tags": [
          "check"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "path",
            "required": true,
            "description": "the ISBN to check; spaces and hyphens are ignored",
            "schema": {
              "type": "string"
            },
            "example": "978-0-306-40615-7"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/check/isbn/978-0-306-40615-7",
          "/check/isbn/0306406152"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/check/ean/{value}": {
      "get": {
        "operationId": "get_check_ean_value",
        "summary": "EAN-8, UPC-A, EAN-13 or GTIN-14 check digit",
        "tags": [
          "check"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "path",
            "required": true,
            "description": "the EAN to check; spaces and hyphens are ignored",
            "schema": {
              "type": "string"
            },
            "example": "4006381333931"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/check/ean/4006381333931",
          "/check/ean/036000291452"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/check/card/{value}": {
      "get": {
        "operationId": "get_check_card_value",
        "summary": "Payment card number: Luhn check and brand by range (not stored)",
        "tags": [
          "check"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "path",
            "required": true,
            "description": "the CARD to check; spaces and hyphens are ignored",
            "schema": {
              "type": "string"
            },
            "example": "4111111111111111"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/check/card/4111111111111111"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/check/luhn/{value}": {
      "get": {
        "operationId": "get_check_luhn_value",
        "summary": "Generic Luhn (mod 10) check",
        "tags": [
          "check"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "path",
            "required": true,
            "description": "the LUHN to check; spaces and hyphens are ignored",
            "schema": {
              "type": "string"
            },
            "example": "79927398713"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/check/luhn/79927398713"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/check/imei/{value}": {
      "get": {
        "operationId": "get_check_imei_value",
        "summary": "IMEI Luhn check digit (or compute it for 14 digits)",
        "tags": [
          "check"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "path",
            "required": true,
            "description": "the IMEI to check; spaces and hyphens are ignored",
            "schema": {
              "type": "string"
            },
            "example": "490154203237518"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/check/imei/490154203237518"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/check/vin/{value}": {
      "get": {
        "operationId": "get_check_vin_value",
        "summary": "Vehicle identification number: characters and check digit",
        "tags": [
          "check"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "path",
            "required": true,
            "description": "the VIN to check; spaces and hyphens are ignored",
            "schema": {
              "type": "string"
            },
            "example": "1M8GDM9AXKP042788"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/check/vin/1M8GDM9AXKP042788"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/check/vat/{value}": {
      "get": {
        "operationId": "get_check_vat_value",
        "summary": "EU VAT number format by country (no registry lookup)",
        "tags": [
          "check"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "path",
            "required": true,
            "description": "the VAT to check; spaces and hyphens are ignored",
            "schema": {
              "type": "string"
            },
            "example": "DE123456789"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/check/vat/DE123456789",
          "/check/vat/NL123456789B01"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/check/inn/{value}": {
      "get": {
        "operationId": "get_check_inn_value",
        "summary": "Russian ИНН (INN) check digits, 10 or 12 digits",
        "tags": [
          "check"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "path",
            "required": true,
            "description": "the INN to check; spaces and hyphens are ignored",
            "schema": {
              "type": "string"
            },
            "example": "7707083893"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/check/inn/7707083893",
          "/check/inn/500100732259"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/check/snils/{value}": {
      "get": {
        "operationId": "get_check_snils_value",
        "summary": "Russian СНИЛС (SNILS) check number",
        "tags": [
          "check"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "path",
            "required": true,
            "description": "the SNILS to check; spaces and hyphens are ignored",
            "schema": {
              "type": "string"
            },
            "example": "112-233-445%2095"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/check/snils/112-233-445%2095"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/check/ogrn/{value}": {
      "get": {
        "operationId": "get_check_ogrn_value",
        "summary": "Russian ОГРН / ОГРНИП check digit",
        "tags": [
          "check"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "path",
            "required": true,
            "description": "the OGRN to check; spaces and hyphens are ignored",
            "schema": {
              "type": "string"
            },
            "example": "1027700132195"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/check/ogrn/1027700132195"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/check/kpp/{value}": {
      "get": {
        "operationId": "get_check_kpp_value",
        "summary": "Russian КПП (KPP) structure",
        "tags": [
          "check"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "path",
            "required": true,
            "description": "the KPP to check; spaces and hyphens are ignored",
            "schema": {
              "type": "string"
            },
            "example": "773601001"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/check/kpp/773601001"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/check/uuid/{value}": {
      "get": {
        "operationId": "get_check_uuid_value",
        "summary": "UUID layout, version, variant and embedded timestamp",
        "tags": [
          "check"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "path",
            "required": true,
            "description": "the UUID to check; spaces and hyphens are ignored",
            "schema": {
              "type": "string"
            },
            "example": "01890a5d-ac96-774b-bcce-b302099a8057"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/check/uuid/01890a5d-ac96-774b-bcce-b302099a8057",
          "/check/uuid/550e8400-e29b-41d4-a716-446655440000"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/check/isin/{value}": {
      "get": {
        "operationId": "get_check_isin_value",
        "summary": "ISIN check digit (Luhn over expanded letters)",
        "tags": [
          "check"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "path",
            "required": true,
            "description": "the ISIN to check; spaces and hyphens are ignored",
            "schema": {
              "type": "string"
            },
            "example": "US0378331005"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/check/isin/US0378331005"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/check/lei/{value}": {
      "get": {
        "operationId": "get_check_lei_value",
        "summary": "Legal Entity Identifier mod-97 check digits",
        "tags": [
          "check"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "path",
            "required": true,
            "description": "the LEI to check; spaces and hyphens are ignored",
            "schema": {
              "type": "string"
            },
            "example": "5493001KJTIIGC8Y1R12"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/check/lei/5493001KJTIIGC8Y1R12"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/check/mac/{value}": {
      "get": {
        "operationId": "get_check_mac_value",
        "summary": "MAC address format, unicast/multicast and local/universal bits",
        "tags": [
          "check"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "path",
            "required": true,
            "description": "the MAC to check; spaces and hyphens are ignored",
            "schema": {
              "type": "string"
            },
            "example": "00:1A:2B:3C:4D:5E"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/check/mac/00:1A:2B:3C:4D:5E",
          "/check/mac/f2-00-00-00-00-01"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/check/phone/{value}": {
      "get": {
        "operationId": "get_check_phone_value",
        "summary": "Telephone number against the numbering plan: validity, type, E.164",
        "tags": [
          "check"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "path",
            "required": true,
            "description": "number, ideally international (+CC...); '+' may be written literally in the path",
            "schema": {
              "type": "string"
            },
            "example": "+14155552671"
          },
          {
            "name": "region",
            "in": "query",
            "required": false,
            "description": "ISO 3166 alpha-2 country for numbers written without +CC",
            "schema": {
              "type": "string"
            },
            "example": "DE"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/check/phone/+14155552671",
          "/check/phone/030%2012345678?region=DE",
          "/check/phone/+79161234567"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/encode/base64": {
      "get": {
        "operationId": "get_encode_base64",
        "summary": "Encode bytes as RFC 4648 base64, standard alphabet, with padding",
        "tags": [
          "encode"
        ],
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": false,
            "description": "input as UTF-8 text (in a URL write '+' as %2B, space as %20)",
            "schema": {
              "type": "string"
            },
            "example": "hello world"
          },
          {
            "name": "hex",
            "in": "query",
            "required": false,
            "description": "input bytes as hex, instead of text",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "b64",
            "in": "query",
            "required": false,
            "description": "input bytes as base64, instead of text ('+' is kept literally) ('+' is kept literally)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/encode/base64?text=hello%20world",
          "/encode/base64?hex=00ff10"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/encode/base64url": {
      "get": {
        "operationId": "get_encode_base64url",
        "summary": "Encode bytes as RFC 4648 base64url (-_ alphabet)",
        "tags": [
          "encode"
        ],
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": false,
            "description": "input as UTF-8 text (in a URL write '+' as %2B, space as %20)",
            "schema": {
              "type": "string"
            },
            "example": "hello world"
          },
          {
            "name": "hex",
            "in": "query",
            "required": false,
            "description": "input bytes as hex, instead of text",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "b64",
            "in": "query",
            "required": false,
            "description": "input bytes as base64, instead of text ('+' is kept literally) ('+' is kept literally)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "padding",
            "in": "query",
            "required": false,
            "description": "include '=' padding",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/encode/base64url?text=hello%20world",
          "/encode/base64url?hex=00ff10"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/encode/base32": {
      "get": {
        "operationId": "get_encode_base32",
        "summary": "Encode bytes as RFC 4648 base32",
        "tags": [
          "encode"
        ],
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": false,
            "description": "input as UTF-8 text (in a URL write '+' as %2B, space as %20)",
            "schema": {
              "type": "string"
            },
            "example": "hello world"
          },
          {
            "name": "hex",
            "in": "query",
            "required": false,
            "description": "input bytes as hex, instead of text",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "b64",
            "in": "query",
            "required": false,
            "description": "input bytes as base64, instead of text ('+' is kept literally) ('+' is kept literally)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "padding",
            "in": "query",
            "required": false,
            "description": "include '=' padding",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/encode/base32?text=hello%20world",
          "/encode/base32?hex=00ff10"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/encode/base58": {
      "get": {
        "operationId": "get_encode_base58",
        "summary": "Encode bytes as base58, Bitcoin alphabet, no checksum",
        "tags": [
          "encode"
        ],
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": false,
            "description": "input as UTF-8 text (in a URL write '+' as %2B, space as %20)",
            "schema": {
              "type": "string"
            },
            "example": "hello world"
          },
          {
            "name": "hex",
            "in": "query",
            "required": false,
            "description": "input bytes as hex, instead of text",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "b64",
            "in": "query",
            "required": false,
            "description": "input bytes as base64, instead of text ('+' is kept literally) ('+' is kept literally)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/encode/base58?text=hello%20world",
          "/encode/base58?hex=00ff10"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/encode/hex": {
      "get": {
        "operationId": "get_encode_hex",
        "summary": "Encode bytes as lowercase hexadecimal",
        "tags": [
          "encode"
        ],
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": false,
            "description": "input as UTF-8 text (in a URL write '+' as %2B, space as %20)",
            "schema": {
              "type": "string"
            },
            "example": "hello world"
          },
          {
            "name": "hex",
            "in": "query",
            "required": false,
            "description": "input bytes as hex, instead of text",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "b64",
            "in": "query",
            "required": false,
            "description": "input bytes as base64, instead of text ('+' is kept literally) ('+' is kept literally)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/encode/hex?text=hello%20world",
          "/encode/hex?hex=00ff10"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/decode/base64": {
      "get": {
        "operationId": "get_decode_base64",
        "summary": "Decode base64 (standard or URL-safe, padding optional) to text (or hex if not UTF-8)",
        "tags": [
          "encode"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "base64 string ('+' is kept literally)",
            "schema": {
              "type": "string"
            },
            "example": "aGVsbG8gd29ybGQ="
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/decode/base64?value=aGVsbG8gd29ybGQ="
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/decode/base64url": {
      "get": {
        "operationId": "get_decode_base64url",
        "summary": "Decode base64url to text (or hex if not UTF-8)",
        "tags": [
          "encode"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "base64url string ('+' is kept literally)",
            "schema": {
              "type": "string"
            },
            "example": "aGVsbG8gd29ybGQ"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/decode/base64url?value=aGVsbG8gd29ybGQ"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/decode/base32": {
      "get": {
        "operationId": "get_decode_base32",
        "summary": "Decode base32 to text (or hex if not UTF-8)",
        "tags": [
          "encode"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "base32 string ('+' is kept literally)",
            "schema": {
              "type": "string"
            },
            "example": "NBSWY3DPEB3W64TMMQ======"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/decode/base32?value=NBSWY3DPEB3W64TMMQ======"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/decode/base58": {
      "get": {
        "operationId": "get_decode_base58",
        "summary": "Decode base58 (Bitcoin alphabet) to text (or hex if not UTF-8)",
        "tags": [
          "encode"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "base58 string ('+' is kept literally)",
            "schema": {
              "type": "string"
            },
            "example": "StV1DL6CwTryKyV"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/decode/base58?value=StV1DL6CwTryKyV"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/decode/hex": {
      "get": {
        "operationId": "get_decode_hex",
        "summary": "Decode hex to text (or hex if not UTF-8)",
        "tags": [
          "encode"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "hex string ('+' is kept literally)",
            "schema": {
              "type": "string"
            },
            "example": "68656c6c6f20776f726c64"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/decode/hex?value=68656c6c6f20776f726c64"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/encode/url": {
      "get": {
        "operationId": "get_encode_url",
        "summary": "Percent-encode text (RFC 3986), stating which characters stay unencoded",
        "tags": [
          "encode"
        ],
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "description": "text to encode",
            "schema": {
              "type": "string"
            },
            "example": "a b&c/d?é"
          },
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "description": "component (encode everything but A-Z a-z 0-9 -._~), path (also keep /), form (space becomes +)",
            "schema": {
              "type": "string",
              "enum": [
                "component",
                "path",
                "form"
              ],
              "default": "component"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/encode/url?text=a%20b%26c%2Fd%3F%C3%A9",
          "/encode/url?text=a%20b%2Fc&mode=path"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/decode/url": {
      "get": {
        "operationId": "get_decode_url",
        "summary": "Decode percent-encoding",
        "tags": [
          "encode"
        ],
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "description": "percent-encoded text; to pass it here, encode it once more (%25 for %)",
            "schema": {
              "type": "string"
            },
            "example": "a%2520b"
          },
          {
            "name": "plus",
            "in": "query",
            "required": false,
            "description": "treat + as space (form encoding)",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/decode/url?value=caf%25C3%25A9%2520au%2520lait",
          "/decode/url?value=a%2Bb&plus=true"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/encode/punycode": {
      "get": {
        "operationId": "get_encode_punycode",
        "summary": "Internationalised domain name to ASCII (IDNA 2008 / punycode)",
        "tags": [
          "encode"
        ],
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "description": "Unicode domain name",
            "schema": {
              "type": "string"
            },
            "example": "bücher.example"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/encode/punycode?domain=b%C3%BCcher.example",
          "/encode/punycode?domain=%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80.%D1%80%D1%84"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/decode/punycode": {
      "get": {
        "operationId": "get_decode_punycode",
        "summary": "ASCII (xn--) domain name to Unicode",
        "tags": [
          "encode"
        ],
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "description": "ASCII domain with xn-- labels",
            "schema": {
              "type": "string"
            },
            "example": "xn--bcher-kva.example"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/decode/punycode?domain=xn--bcher-kva.example"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/encode/hash/{alg}": {
      "get": {
        "operationId": "get_encode_hash_alg",
        "summary": "Hash digest: md5, sha1, sha256, sha512, sha3, blake2, blake3, crc32...",
        "tags": [
          "encode"
        ],
        "parameters": [
          {
            "name": "alg",
            "in": "path",
            "required": true,
            "description": "one of md5, sha1, sha224, sha256, sha384, sha512, sha3-256, sha3-512, blake2b, blake2s, blake3, crc32, adler32",
            "schema": {
              "type": "string",
              "enum": [
                "md5",
                "sha1",
                "sha224",
                "sha256",
                "sha384",
                "sha512",
                "sha3-256",
                "sha3-512",
                "blake2b",
                "blake2s",
                "blake3",
                "crc32",
                "adler32"
              ]
            },
            "example": "sha256"
          },
          {
            "name": "text",
            "in": "query",
            "required": false,
            "description": "input as UTF-8 text (in a URL write '+' as %2B, space as %20)",
            "schema": {
              "type": "string"
            },
            "example": "hello world"
          },
          {
            "name": "hex",
            "in": "query",
            "required": false,
            "description": "input bytes as hex, instead of text",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "b64",
            "in": "query",
            "required": false,
            "description": "input bytes as base64, instead of text ('+' is kept literally) ('+' is kept literally)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "output",
            "in": "query",
            "required": false,
            "description": "hex (default) or base64",
            "schema": {
              "type": "string",
              "enum": [
                "hex",
                "base64"
              ],
              "default": "hex"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/encode/hash/sha256?text=hello",
          "/encode/hash/crc32?text=hello",
          "/encode/hash/blake3?hex=00"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/encode/hmac/{alg}": {
      "get": {
        "operationId": "get_encode_hmac_alg",
        "summary": "HMAC of a message with a key",
        "tags": [
          "encode"
        ],
        "parameters": [
          {
            "name": "alg",
            "in": "path",
            "required": true,
            "description": "one of sha1, sha256, sha384, sha512, sha3-256, md5",
            "schema": {
              "type": "string",
              "enum": [
                "sha1",
                "sha256",
                "sha384",
                "sha512",
                "sha3-256",
                "md5"
              ]
            },
            "example": "sha256"
          },
          {
            "name": "text",
            "in": "query",
            "required": false,
            "description": "input as UTF-8 text (in a URL write '+' as %2B, space as %20)",
            "schema": {
              "type": "string"
            },
            "example": "hello world"
          },
          {
            "name": "hex",
            "in": "query",
            "required": false,
            "description": "input bytes as hex, instead of text",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "b64",
            "in": "query",
            "required": false,
            "description": "input bytes as base64, instead of text ('+' is kept literally) ('+' is kept literally)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key",
            "in": "query",
            "required": true,
            "description": "key as UTF-8 text",
            "schema": {
              "type": "string"
            },
            "example": "secret"
          },
          {
            "name": "output",
            "in": "query",
            "required": false,
            "description": "hex (default) or base64",
            "schema": {
              "type": "string",
              "enum": [
                "hex",
                "base64"
              ],
              "default": "hex"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/encode/hmac/sha256?text=message&key=secret"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/encode/hmac/{alg}/verify": {
      "get": {
        "operationId": "get_encode_hmac_alg_verify",
        "summary": "Check an HMAC signature (constant-time comparison)",
        "tags": [
          "encode"
        ],
        "parameters": [
          {
            "name": "alg",
            "in": "path",
            "required": true,
            "description": "one of sha1, sha256, sha384, sha512, sha3-256, md5",
            "schema": {
              "type": "string",
              "enum": [
                "sha1",
                "sha256",
                "sha384",
                "sha512",
                "sha3-256",
                "md5"
              ]
            },
            "example": "sha256"
          },
          {
            "name": "text",
            "in": "query",
            "required": false,
            "description": "input as UTF-8 text (in a URL write '+' as %2B, space as %20)",
            "schema": {
              "type": "string"
            },
            "example": "hello world"
          },
          {
            "name": "hex",
            "in": "query",
            "required": false,
            "description": "input bytes as hex, instead of text",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "b64",
            "in": "query",
            "required": false,
            "description": "input bytes as base64, instead of text ('+' is kept literally) ('+' is kept literally)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key",
            "in": "query",
            "required": true,
            "description": "key as UTF-8 text",
            "schema": {
              "type": "string"
            },
            "example": "secret"
          },
          {
            "name": "signature",
            "in": "query",
            "required": true,
            "description": "expected HMAC, hex or base64 ('+' is kept literally)",
            "schema": {
              "type": "string"
            },
            "example": "8b5f48702995c1598c573db1e21866a9b825d4a794d169d7060a03605796360b"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/encode/hmac/sha256/verify?text=message&key=secret&signature=8b5f48702995c1598c573db1e21866a9b825d4a794d169d7060a03605796360b"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/decode/jwt": {
      "get": {
        "operationId": "get_decode_jwt",
        "summary": "Decode a JWT header and payload (signature NOT verified)",
        "tags": [
          "encode"
        ],
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "description": "JSON Web Token",
            "schema": {
              "type": "string"
            },
            "example": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwiaWF0IjoxNTE2MjM5MDIyfQ.sig"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/decode/jwt?token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwiaWF0IjoxNTE2MjM5MDIyfQ.sig"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/format/json/validate": {
      "get": {
        "operationId": "get_format_json_validate",
        "summary": "Validate JSON; errors give line, column and context",
        "tags": [
          "format"
        ],
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "description": "JSON document (URL-encoded)",
            "schema": {
              "type": "string"
            },
            "example": "{\"a\":[1,2,3]}"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/format/json/validate?text=%7B%22a%22%3A%5B1%2C2%2C3%5D%7D",
          "/format/json/validate?text=%7B%22a%22%3A%5B1%2C2%2C%5D%7D"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/format/json/pretty": {
      "get": {
        "operationId": "get_format_json_pretty",
        "summary": "Pretty-print JSON",
        "tags": [
          "format"
        ],
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "description": "JSON document (URL-encoded)",
            "schema": {
              "type": "string"
            },
            "example": "{\"a\":[1,2,3]}"
          },
          {
            "name": "indent",
            "in": "query",
            "required": false,
            "description": "spaces, 0-8",
            "schema": {
              "type": "integer",
              "default": 2
            }
          },
          {
            "name": "sort_keys",
            "in": "query",
            "required": false,
            "description": "sort object keys",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/format/json/pretty?text=%7B%22b%22%3A1%2C%22a%22%3A%5B1%2C2%5D%7D&sort_keys=true"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/format/json/minify": {
      "get": {
        "operationId": "get_format_json_minify",
        "summary": "Minify JSON",
        "tags": [
          "format"
        ],
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "description": "JSON document (URL-encoded)",
            "schema": {
              "type": "string"
            },
            "example": "{\"a\":[1,2,3]}"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/format/json/minify?text=%7B%20%22a%22%20%3A%20%5B1%2C%202%5D%20%7D"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/format/jsonpath": {
      "get": {
        "operationId": "get_format_jsonpath",
        "summary": "Query JSON with JSONPath (filters supported)",
        "tags": [
          "format"
        ],
        "parameters": [
          {
            "name": "json",
            "in": "query",
            "required": true,
            "description": "JSON document",
            "schema": {
              "type": "string"
            },
            "example": "{\"items\":[{\"n\":\"a\",\"qty\":2},{\"n\":\"b\",\"qty\":0}]}"
          },
          {
            "name": "path",
            "in": "query",
            "required": true,
            "description": "JSONPath expression",
            "schema": {
              "type": "string"
            },
            "example": "$.items[?(@.qty > 0)].n"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "heavy",
        "x-examples": [
          "/format/jsonpath?json=%7B%22items%22%3A%5B%7B%22n%22%3A%22a%22%2C%22qty%22%3A2%7D%2C%7B%22n%22%3A%22b%22%2C%22qty%22%3A0%7D%5D%7D&path=%24.items%5B%3F(%40.qty%20%3E%200)%5D.n"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/format/json-schema": {
      "get": {
        "operationId": "get_format_json_schema",
        "summary": "Validate a JSON document against a JSON Schema",
        "tags": [
          "format"
        ],
        "parameters": [
          {
            "name": "json",
            "in": "query",
            "required": true,
            "description": "JSON document",
            "schema": {
              "type": "string"
            },
            "example": "{\"age\":-1}"
          },
          {
            "name": "schema",
            "in": "query",
            "required": true,
            "description": "JSON Schema; draft from $schema, default 2020-12; remote $ref is never fetched",
            "schema": {
              "type": "string"
            },
            "example": "{\"type\":\"object\",\"properties\":{\"age\":{\"type\":\"integer\",\"minimum\":0}}}"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "heavy",
        "x-examples": [
          "/format/json-schema?json=%7B%22age%22%3A-1%7D&schema=%7B%22type%22%3A%22object%22%2C%22properties%22%3A%7B%22age%22%3A%7B%22type%22%3A%22integer%22%2C%22minimum%22%3A0%7D%7D%7D"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/format/yaml/to-json": {
      "get": {
        "operationId": "get_format_yaml_to_json",
        "summary": "YAML to JSON (safe loader only)",
        "tags": [
          "format"
        ],
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "description": "YAML document",
            "schema": {
              "type": "string"
            },
            "example": "a: 1\nb: [x, y]"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/format/yaml/to-json?text=a%3A%201%0Ab%3A%20%5Bx%2C%20y%5D"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/format/json/to-yaml": {
      "get": {
        "operationId": "get_format_json_to_yaml",
        "summary": "JSON to YAML",
        "tags": [
          "format"
        ],
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "description": "JSON document",
            "schema": {
              "type": "string"
            },
            "example": "{\"a\":1,\"b\":[\"x\",\"y\"]}"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/format/json/to-yaml?text=%7B%22a%22%3A1%2C%22b%22%3A%5B%22x%22%2C%22y%22%5D%7D"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/format/toml/to-json": {
      "get": {
        "operationId": "get_format_toml_to_json",
        "summary": "TOML to JSON",
        "tags": [
          "format"
        ],
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "description": "TOML document",
            "schema": {
              "type": "string"
            },
            "example": "title = \"x\"\n[owner]\nname = \"y\""
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/format/toml/to-json?text=title%20%3D%20%22x%22%0A%5Bowner%5D%0Aname%20%3D%20%22y%22"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/format/json/to-toml": {
      "get": {
        "operationId": "get_format_json_to_toml",
        "summary": "JSON object to TOML",
        "tags": [
          "format"
        ],
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "description": "JSON document",
            "schema": {
              "type": "string"
            },
            "example": "{\"title\":\"x\",\"owner\":{\"name\":\"y\"}}"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/format/json/to-toml?text=%7B%22title%22%3A%22x%22%2C%22owner%22%3A%7B%22name%22%3A%22y%22%7D%7D"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/format/csv/to-json": {
      "get": {
        "operationId": "get_format_csv_to_json",
        "summary": "CSV to JSON (header row becomes keys)",
        "tags": [
          "format"
        ],
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "description": "CSV document",
            "schema": {
              "type": "string"
            },
            "example": "name,qty\napple,3\npear,5"
          },
          {
            "name": "delimiter",
            "in": "query",
            "required": false,
            "description": "field delimiter; detected if omitted",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "header",
            "in": "query",
            "required": false,
            "description": "first row is a header",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/format/csv/to-json?text=name%2Cqty%0Aapple%2C3%0Apear%2C5"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/format/json/to-csv": {
      "get": {
        "operationId": "get_format_json_to_csv",
        "summary": "JSON array of objects to CSV",
        "tags": [
          "format"
        ],
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "description": "JSON document",
            "schema": {
              "type": "string"
            },
            "example": "[{\"name\":\"apple\",\"qty\":3},{\"name\":\"pear\",\"qty\":5}]"
          },
          {
            "name": "delimiter",
            "in": "query",
            "required": false,
            "description": "field delimiter",
            "schema": {
              "type": "string",
              "default": ","
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/format/json/to-csv?text=%5B%7B%22name%22%3A%22apple%22%2C%22qty%22%3A3%7D%2C%7B%22name%22%3A%22pear%22%2C%22qty%22%3A5%7D%5D"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/format/diff": {
      "get": {
        "operationId": "get_format_diff",
        "summary": "Unified diff of two texts",
        "tags": [
          "format"
        ],
        "parameters": [
          {
            "name": "a",
            "in": "query",
            "required": true,
            "description": "original text",
            "schema": {
              "type": "string"
            },
            "example": "one\ntwo\nthree"
          },
          {
            "name": "b",
            "in": "query",
            "required": true,
            "description": "changed text",
            "schema": {
              "type": "string"
            },
            "example": "one\n2\nthree"
          },
          {
            "name": "context",
            "in": "query",
            "required": false,
            "description": "context lines, 0-20",
            "schema": {
              "type": "integer",
              "default": 3
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "heavy",
        "x-examples": [
          "/format/diff?a=one%0Atwo%0Athree&b=one%0A2%0Athree"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/format/regex/test": {
      "get": {
        "operationId": "get_format_regex_test",
        "summary": "Run a regular expression over text on the RE2 engine: matches, positions, groups",
        "tags": [
          "format"
        ],
        "parameters": [
          {
            "name": "pattern",
            "in": "query",
            "required": true,
            "description": "regular expression, RE2 syntax (no backreferences, no lookaround: they are what makes backtracking catastrophic) ('+' is kept literally)",
            "schema": {
              "type": "string"
            },
            "example": "(\\d{4})-(\\d{2})"
          },
          {
            "name": "text",
            "in": "query",
            "required": true,
            "description": "text to search",
            "schema": {
              "type": "string"
            },
            "example": "from 2026-09 to 2027-01"
          },
          {
            "name": "flags",
            "in": "query",
            "required": false,
            "description": "any of i m s U",
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "maximum matches, 1-1000",
            "schema": {
              "type": "integer",
              "default": 100
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "heavy",
        "x-examples": [
          "/format/regex/test?pattern=(%5Cd%7B4%7D)-(%5Cd%7B2%7D)&text=from%202026-09%20to%202027-01"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/text/normalize": {
      "get": {
        "operationId": "get_text_normalize",
        "summary": "Unicode normalisation NFC, NFD, NFKC or NFKD",
        "tags": [
          "text"
        ],
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "description": "text",
            "schema": {
              "type": "string"
            },
            "example": "ﬁ café"
          },
          {
            "name": "form",
            "in": "query",
            "required": true,
            "description": "NFC, NFD, NFKC or NFKD",
            "schema": {
              "type": "string",
              "enum": [
                "nfc",
                "nfd",
                "nfkc",
                "nfkd"
              ]
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/text/normalize?text=%EF%AC%81%20cafe%CC%81&form=NFKC",
          "/text/normalize?text=caf%C3%A9&form=NFD"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/text/codepoints": {
      "get": {
        "operationId": "get_text_codepoints",
        "summary": "Every character with code point, name and category",
        "tags": [
          "text"
        ],
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "description": "text, up to 500 characters",
            "schema": {
              "type": "string"
            },
            "example": "A é 😀"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/text/codepoints?text=A%20e%CC%81%20%F0%9F%98%80"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/text/char/{char}": {
      "get": {
        "operationId": "get_text_char_char",
        "summary": "Properties of one character (by U+XXXX, hex, or the character itself)",
        "tags": [
          "text"
        ],
        "parameters": [
          {
            "name": "char",
            "in": "path",
            "required": true,
            "description": "U+1F600, 1F600, or a single character",
            "schema": {
              "type": "string"
            },
            "example": "U+1F600"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/text/char/U+1F600",
          "/text/char/%C3%A9",
          "/text/char/U+200B"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/text/invisible": {
      "get": {
        "operationId": "get_text_invisible",
        "summary": "Find invisible, bidi-control, tag and non-standard space characters",
        "tags": [
          "text"
        ],
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "description": "text",
            "schema": {
              "type": "string"
            },
            "example": "pay​pal‮"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/text/invisible?text=pay%E2%80%8Bpal%E2%80%AEtxt.exe",
          "/text/invisible?text=plain%20text"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/text/confusables": {
      "get": {
        "operationId": "get_text_confusables",
        "summary": "Characters that look like others (homoglyphs) and mixed scripts",
        "tags": [
          "text"
        ],
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "description": "text, e.g. a domain or username",
            "schema": {
              "type": "string"
            },
            "example": "pаypal"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/text/confusables?text=p%D0%B0ypal",
          "/text/confusables?text=paypal"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "confusables"
        ]
      }
    },
    "/text/confusable": {
      "get": {
        "operationId": "get_text_confusable",
        "summary": "Whether two strings are visually confusable (same UTS #39 skeleton)",
        "tags": [
          "text"
        ],
        "parameters": [
          {
            "name": "a",
            "in": "query",
            "required": true,
            "description": "first string",
            "schema": {
              "type": "string"
            },
            "example": "paypal"
          },
          {
            "name": "b",
            "in": "query",
            "required": true,
            "description": "second string",
            "schema": {
              "type": "string"
            },
            "example": "pаypal"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/text/confusable?a=paypal&b=p%D0%B0ypal"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "confusables"
        ]
      }
    },
    "/text/length": {
      "get": {
        "operationId": "get_text_length",
        "summary": "Length in code points, grapheme clusters, UTF-8 bytes and UTF-16 units",
        "tags": [
          "text"
        ],
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "description": "text",
            "schema": {
              "type": "string"
            },
            "example": "👩‍👩‍👧 é"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/text/length?text=%F0%9F%91%A9%E2%80%8D%F0%9F%91%A9%E2%80%8D%F0%9F%91%A7%20e%CC%81"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/text/translit": {
      "get": {
        "operationId": "get_text_translit",
        "summary": "Transliterate Cyrillic to Latin: ISO 9, GOST 7.79 B, Russian passport",
        "tags": [
          "text"
        ],
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "description": "text",
            "schema": {
              "type": "string"
            },
            "example": "Щукин Юрий"
          },
          {
            "name": "system",
            "in": "query",
            "required": true,
            "description": "iso9, gost-b or passport",
            "schema": {
              "type": "string",
              "enum": [
                "iso9",
                "gost-b",
                "passport"
              ]
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/text/translit?text=%D0%A9%D1%83%D0%BA%D0%B8%D0%BD%20%D0%AE%D1%80%D0%B8%D0%B9&system=passport",
          "/text/translit?text=%D0%A9%D1%83%D0%BA%D0%B8%D0%BD%20%D0%AE%D1%80%D0%B8%D0%B9&system=iso9"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/text/slug": {
      "get": {
        "operationId": "get_text_slug",
        "summary": "URL slug from text, with explicit transliteration",
        "tags": [
          "text"
        ],
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "description": "text",
            "schema": {
              "type": "string"
            },
            "example": "Привет, мир! Café"
          },
          {
            "name": "translit",
            "in": "query",
            "required": false,
            "description": "iso9, gost-b, passport or none",
            "schema": {
              "type": "string",
              "enum": [
                "iso9",
                "gost-b",
                "passport",
                "none"
              ],
              "default": "passport"
            }
          },
          {
            "name": "separator",
            "in": "query",
            "required": false,
            "description": "separator",
            "schema": {
              "type": "string",
              "default": "-"
            }
          },
          {
            "name": "max_length",
            "in": "query",
            "required": false,
            "description": "0 for no limit",
            "schema": {
              "type": "integer",
              "default": 0
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/text/slug?text=%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%2C%20%D0%BC%D0%B8%D1%80!%20Caf%C3%A9"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/text/detect-encoding": {
      "get": {
        "operationId": "get_text_detect_encoding",
        "summary": "Guess the character encoding of bytes (charset-normalizer)",
        "tags": [
          "text"
        ],
        "parameters": [
          {
            "name": "hex",
            "in": "query",
            "required": false,
            "description": "input bytes as hex, instead of text",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "b64",
            "in": "query",
            "required": false,
            "description": "input bytes as base64, instead of text ('+' is kept literally) ('+' is kept literally)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "heavy",
        "x-examples": [
          "/text/detect-encoding?hex=cff0e8e2e5f220ece8f02c20fdf2ee20f2e5f1f220eaeee4e8f0eee2eae8",
          "/text/detect-encoding?b64=SGVsbG8="
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/text/transcode": {
      "get": {
        "operationId": "get_text_transcode",
        "summary": "Convert bytes from one encoding to another (result as base64 and text preview)",
        "tags": [
          "text"
        ],
        "parameters": [
          {
            "name": "hex",
            "in": "query",
            "required": false,
            "description": "input bytes as hex, instead of text",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "b64",
            "in": "query",
            "required": false,
            "description": "input bytes as base64, instead of text ('+' is kept literally) ('+' is kept literally)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "source encoding, e.g. cp1251",
            "schema": {
              "type": "string"
            },
            "example": "cp1251"
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "target encoding",
            "schema": {
              "type": "string",
              "default": "utf-8"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/text/transcode?hex=cff0e8e2e5f2&from=cp1251"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/net/ip/{ip}": {
      "get": {
        "operationId": "get_net_ip_ip",
        "summary": "Classify an IP address: normal forms, special-purpose block (IANA), mapped forms",
        "tags": [
          "net"
        ],
        "parameters": [
          {
            "name": "ip",
            "in": "path",
            "required": true,
            "description": "IPv4 or IPv6 address",
            "schema": {
              "type": "string"
            },
            "example": "192.168.1.10"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/net/ip/192.168.1.10",
          "/net/ip/2001:db8::1",
          "/net/ip/::ffff:8.8.8.8",
          "/net/ip/100.64.0.1"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "iana-registries"
        ]
      }
    },
    "/net/cidr/{prefix}": {
      "get": {
        "operationId": "get_net_cidr_prefix",
        "summary": "Prefix arithmetic: network, mask, broadcast, first/last host, size",
        "tags": [
          "net"
        ],
        "parameters": [
          {
            "name": "prefix",
            "in": "path",
            "required": true,
            "description": "address/length, e.g. 10.1.2.3/20 or 2001:db8::/48",
            "schema": {
              "type": "string"
            },
            "example": "10.1.2.3/20"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/net/cidr/10.1.2.3/20",
          "/net/cidr/2001:db8::/48",
          "/net/cidr/192.0.2.0/31"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/net/contains": {
      "get": {
        "operationId": "get_net_contains",
        "summary": "Relation between two prefixes or a prefix and an address: equal, contains, inside, disjoint",
        "tags": [
          "net"
        ],
        "parameters": [
          {
            "name": "a",
            "in": "query",
            "required": true,
            "description": "prefix or address",
            "schema": {
              "type": "string"
            },
            "example": "10.0.0.0/8"
          },
          {
            "name": "b",
            "in": "query",
            "required": true,
            "description": "prefix or address",
            "schema": {
              "type": "string"
            },
            "example": "10.20.0.0/16"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/net/contains?a=10.0.0.0/8&b=10.20.0.0/16",
          "/net/contains?a=192.168.0.0/24&b=192.168.1.7"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/net/aggregate": {
      "get": {
        "operationId": "get_net_aggregate",
        "summary": "Merge a list of prefixes into the fewest covering prefixes",
        "tags": [
          "net"
        ],
        "parameters": [
          {
            "name": "prefixes",
            "in": "query",
            "required": true,
            "description": "comma-separated prefixes or addresses",
            "schema": {
              "type": "string"
            },
            "example": "10.0.0.0/24,10.0.1.0/24,10.0.2.0/23"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/net/aggregate?prefixes=10.0.0.0/24,10.0.1.0/24,10.0.2.0/23,192.168.1.1"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/net/subnets/{prefix}": {
      "get": {
        "operationId": "get_net_subnets_prefix",
        "summary": "Split a prefix into subnets of a given length",
        "tags": [
          "net"
        ],
        "parameters": [
          {
            "name": "prefix",
            "in": "path",
            "required": true,
            "description": "prefix to split",
            "schema": {
              "type": "string"
            },
            "example": "10.0.0.0/22"
          },
          {
            "name": "length",
            "in": "query",
            "required": true,
            "description": "new prefix length",
            "schema": {
              "type": "integer"
            },
            "example": "24"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/net/subnets/10.0.0.0/22?length=24"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/net/range": {
      "get": {
        "operationId": "get_net_range",
        "summary": "Convert an address range to the minimal list of prefixes",
        "tags": [
          "net"
        ],
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "required": true,
            "description": "first address",
            "schema": {
              "type": "string"
            },
            "example": "192.168.0.10"
          },
          {
            "name": "end",
            "in": "query",
            "required": true,
            "description": "last address",
            "schema": {
              "type": "string"
            },
            "example": "192.168.0.40"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/net/range?start=192.168.0.10&end=192.168.0.40"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/net/url": {
      "get": {
        "operationId": "get_net_url",
        "summary": "Parse and normalise a URL (RFC 3986) without fetching it",
        "tags": [
          "net"
        ],
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "absolute URL (URL-encode it once when passing it here)",
            "schema": {
              "type": "string"
            },
            "example": "HTTPS://User@Example.COM:443/a/./b/../c?x=1&y=%7e#frag"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/net/url?url=HTTPS%3A%2F%2FUser%40Example.COM%3A443%2Fa%2F.%2Fb%2F..%2Fc%3Fx%3D1%26y%3D%257e%23frag"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "psl"
        ]
      }
    },
    "/net/domain/{host}": {
      "get": {
        "operationId": "get_net_domain_host",
        "summary": "Registrable domain and public suffix (Public Suffix List), TLD validity",
        "tags": [
          "net"
        ],
        "parameters": [
          {
            "name": "host",
            "in": "path",
            "required": true,
            "description": "host name",
            "schema": {
              "type": "string"
            },
            "example": "www.bbc.co.uk"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/net/domain/www.bbc.co.uk",
          "/net/domain/foo.github.io",
          "/net/domain/%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80.%D1%80%D1%84"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "psl",
          "iana-tld"
        ]
      }
    },
    "/net/useragent": {
      "get": {
        "operationId": "get_net_useragent",
        "summary": "Parse a User-Agent string (yours if ua= is omitted), including AI agents and HTTP libraries",
        "tags": [
          "net"
        ],
        "parameters": [
          {
            "name": "ua",
            "in": "query",
            "required": false,
            "description": "User-Agent string; defaults to the one your client sent",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/net/useragent?ua=Mozilla%2F5.0%20(Windows%20NT%2010.0%3B%20Win64%3B%20x64)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F140.0.0.0%20Safari%2F537.36",
          "/net/useragent"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/random/uuid": {
      "get": {
        "operationId": "get_random_uuid",
        "summary": "Random UUID version 4",
        "tags": [
          "random"
        ],
        "parameters": [
          {
            "name": "count",
            "in": "query",
            "required": false,
            "description": "how many, 1-1000",
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "uncacheable",
        "x-examples": [
          "/random/uuid",
          "/random/uuid?count=5"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/random/uuid/v7": {
      "get": {
        "operationId": "get_random_uuid_v7",
        "summary": "UUID version 7: sortable by creation time (Unix ms) plus 74 random bits",
        "tags": [
          "random"
        ],
        "parameters": [
          {
            "name": "count",
            "in": "query",
            "required": false,
            "description": "how many, 1-1000",
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "uncacheable",
        "x-examples": [
          "/random/uuid/v7",
          "/random/uuid/v7?count=3"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/random/int": {
      "get": {
        "operationId": "get_random_int",
        "summary": "Uniform random integers in an inclusive range (no modulo bias)",
        "tags": [
          "random"
        ],
        "parameters": [
          {
            "name": "min",
            "in": "query",
            "required": true,
            "description": "lowest value, inclusive",
            "schema": {
              "type": "integer"
            },
            "example": "1"
          },
          {
            "name": "max",
            "in": "query",
            "required": true,
            "description": "highest value, inclusive",
            "schema": {
              "type": "integer"
            },
            "example": "6"
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "description": "how many, 1-1000",
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "uncacheable",
        "x-examples": [
          "/random/int?min=1&max=6",
          "/random/int?min=0&max=999999&count=10"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/random/choice": {
      "get": {
        "operationId": "get_random_choice",
        "summary": "Pick items from a list, with replacement",
        "tags": [
          "random"
        ],
        "parameters": [
          {
            "name": "items",
            "in": "query",
            "required": true,
            "description": "comma-separated items",
            "schema": {
              "type": "string"
            },
            "example": "red,green,blue"
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "description": "how many, 1-1000",
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "uncacheable",
        "x-examples": [
          "/random/choice?items=red,green,blue",
          "/random/choice?items=heads,tails&count=10"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/random/sample": {
      "get": {
        "operationId": "get_random_sample",
        "summary": "Pick distinct items from a list, without replacement",
        "tags": [
          "random"
        ],
        "parameters": [
          {
            "name": "items",
            "in": "query",
            "required": true,
            "description": "comma-separated items",
            "schema": {
              "type": "string"
            },
            "example": "a,b,c,d,e"
          },
          {
            "name": "count",
            "in": "query",
            "required": true,
            "description": "how many distinct items",
            "schema": {
              "type": "integer"
            },
            "example": "2"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "uncacheable",
        "x-examples": [
          "/random/sample?items=a,b,c,d,e&count=2"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/random/shuffle": {
      "get": {
        "operationId": "get_random_shuffle",
        "summary": "Random permutation of a list",
        "tags": [
          "random"
        ],
        "parameters": [
          {
            "name": "items",
            "in": "query",
            "required": true,
            "description": "comma-separated items",
            "schema": {
              "type": "string"
            },
            "example": "1,2,3,4,5"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "uncacheable",
        "x-examples": [
          "/random/shuffle?items=1,2,3,4,5"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/random/password": {
      "get": {
        "operationId": "get_random_password",
        "summary": "Random password with stated entropy",
        "tags": [
          "random"
        ],
        "parameters": [
          {
            "name": "length",
            "in": "query",
            "required": false,
            "description": "characters, 4-256",
            "schema": {
              "type": "integer",
              "default": 20
            }
          },
          {
            "name": "symbols",
            "in": "query",
            "required": false,
            "description": "include punctuation",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "ambiguous",
            "in": "query",
            "required": false,
            "description": "include look-alike characters Il1O0o",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "description": "how many, 1-1000",
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "uncacheable",
        "x-examples": [
          "/random/password",
          "/random/password?length=32&symbols=false"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/random/passphrase": {
      "get": {
        "operationId": "get_random_passphrase",
        "summary": "Diceware-style passphrase from the EFF large wordlist",
        "tags": [
          "random"
        ],
        "parameters": [
          {
            "name": "words",
            "in": "query",
            "required": false,
            "description": "number of words, 3-20",
            "schema": {
              "type": "integer",
              "default": 6
            }
          },
          {
            "name": "separator",
            "in": "query",
            "required": false,
            "description": "separator",
            "schema": {
              "type": "string",
              "default": "-"
            }
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "description": "how many, 1-1000",
            "schema": {
              "type": "integer",
              "default": 1
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "uncacheable",
        "x-examples": [
          "/random/passphrase",
          "/random/passphrase?words=8&separator=%20"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "eff-wordlist"
        ]
      }
    },
    "/random/bytes": {
      "get": {
        "operationId": "get_random_bytes",
        "summary": "Random bytes as hex or base64",
        "tags": [
          "random"
        ],
        "parameters": [
          {
            "name": "n",
            "in": "query",
            "required": false,
            "description": "number of bytes, 1-4096",
            "schema": {
              "type": "integer",
              "default": 32
            }
          },
          {
            "name": "output",
            "in": "query",
            "required": false,
            "description": "hex, base64 or base64url",
            "schema": {
              "type": "string",
              "enum": [
                "hex",
                "base64",
                "base64url"
              ],
              "default": "hex"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "uncacheable",
        "x-examples": [
          "/random/bytes",
          "/random/bytes?n=16&output=base64"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/geo/distance": {
      "get": {
        "operationId": "get_geo_distance",
        "summary": "Distance between two points on the WGS84 ellipsoid (Karney), plus spherical estimate",
        "tags": [
          "geo"
        ],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "latitude,longitude",
            "schema": {
              "type": "string"
            },
            "example": "55.7558,37.6173"
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "latitude,longitude",
            "schema": {
              "type": "string"
            },
            "example": "40.7128,-74.0060"
          },
          {
            "name": "unit",
            "in": "query",
            "required": false,
            "description": "m, km, mi, nmi or ft",
            "schema": {
              "type": "string",
              "enum": [
                "m",
                "km",
                "mi",
                "nmi",
                "ft"
              ],
              "default": "km"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/geo/distance?from=55.7558,37.6173&to=40.7128,-74.0060",
          "/geo/distance?from=51.4700,-0.4543&to=40.6413,-73.7781&unit=nmi"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/geo/bearing": {
      "get": {
        "operationId": "get_geo_bearing",
        "summary": "Initial and final bearing (azimuth) from one point to another",
        "tags": [
          "geo"
        ],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "latitude,longitude",
            "schema": {
              "type": "string"
            },
            "example": "51.5074,-0.1278"
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "latitude,longitude",
            "schema": {
              "type": "string"
            },
            "example": "48.8566,2.3522"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/geo/bearing?from=51.5074,-0.1278&to=48.8566,2.3522"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/geo/destination": {
      "get": {
        "operationId": "get_geo_destination",
        "summary": "Point reached from a start point, bearing and distance (direct geodesic problem)",
        "tags": [
          "geo"
        ],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "latitude,longitude",
            "schema": {
              "type": "string"
            },
            "example": "55.7558,37.6173"
          },
          {
            "name": "bearing",
            "in": "query",
            "required": true,
            "description": "degrees clockwise from true north",
            "schema": {
              "type": "number"
            },
            "example": "90"
          },
          {
            "name": "distance",
            "in": "query",
            "required": true,
            "description": "distance",
            "schema": {
              "type": "number"
            },
            "example": "100"
          },
          {
            "name": "unit",
            "in": "query",
            "required": false,
            "description": "m, km, mi, nmi or ft",
            "schema": {
              "type": "string",
              "enum": [
                "m",
                "km",
                "mi",
                "nmi",
                "ft"
              ],
              "default": "km"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/geo/destination?from=55.7558,37.6173&bearing=90&distance=100"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/geo/midpoint": {
      "get": {
        "operationId": "get_geo_midpoint",
        "summary": "Midpoint of the geodesic between two points",
        "tags": [
          "geo"
        ],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "latitude,longitude",
            "schema": {
              "type": "string"
            },
            "example": "55.7558,37.6173"
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "latitude,longitude",
            "schema": {
              "type": "string"
            },
            "example": "59.9343,30.3351"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/geo/midpoint?from=55.7558,37.6173&to=59.9343,30.3351"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/geo/dms": {
      "get": {
        "operationId": "get_geo_dms",
        "summary": "Decimal degrees to degrees, minutes, seconds",
        "tags": [
          "geo"
        ],
        "parameters": [
          {
            "name": "point",
            "in": "query",
            "required": true,
            "description": "latitude,longitude in decimal degrees",
            "schema": {
              "type": "string"
            },
            "example": "55.7558,37.6173"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/geo/dms?point=55.7558,37.6173",
          "/geo/dms?point=-33.8688,151.2093"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/geo/decimal": {
      "get": {
        "operationId": "get_geo_decimal",
        "summary": "Degrees-minutes-seconds text to decimal degrees",
        "tags": [
          "geo"
        ],
        "parameters": [
          {
            "name": "lat",
            "in": "query",
            "required": true,
            "description": "latitude, e.g. 55°45'20.9\"N",
            "schema": {
              "type": "string"
            },
            "example": "55°45'20.9\"N"
          },
          {
            "name": "lon",
            "in": "query",
            "required": true,
            "description": "longitude, e.g. 37°37'02.3\"E",
            "schema": {
              "type": "string"
            },
            "example": "37°37'02.3\"E"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/geo/decimal?lat=55%C2%B045'20.9%22N&lon=37%C2%B037'02.3%22E",
          "/geo/decimal?lat=33%2051%2054%20S&lon=151%2012%2034%20E"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/geo/geohash": {
      "get": {
        "operationId": "get_geo_geohash",
        "summary": "Encode a point as a geohash",
        "tags": [
          "geo"
        ],
        "parameters": [
          {
            "name": "point",
            "in": "query",
            "required": true,
            "description": "latitude,longitude",
            "schema": {
              "type": "string"
            },
            "example": "57.64911,10.40744"
          },
          {
            "name": "precision",
            "in": "query",
            "required": false,
            "description": "characters, 1-12",
            "schema": {
              "type": "integer",
              "default": 9
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/geo/geohash?point=57.64911,10.40744&precision=11"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/geo/geohash/{hash}": {
      "get": {
        "operationId": "get_geo_geohash_hash",
        "summary": "Decode a geohash to its cell centre and size",
        "tags": [
          "geo"
        ],
        "parameters": [
          {
            "name": "hash",
            "in": "path",
            "required": true,
            "description": "geohash",
            "schema": {
              "type": "string"
            },
            "example": "u4pruydqqvj"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/geo/geohash/u4pruydqqvj"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/geo/utm": {
      "get": {
        "operationId": "get_geo_utm",
        "summary": "Latitude/longitude to UTM zone, easting, northing (WGS84)",
        "tags": [
          "geo"
        ],
        "parameters": [
          {
            "name": "point",
            "in": "query",
            "required": true,
            "description": "latitude,longitude",
            "schema": {
              "type": "string"
            },
            "example": "55.7558,37.6173"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/geo/utm?point=55.7558,37.6173",
          "/geo/utm?point=-33.8688,151.2093"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/geo/mgrs": {
      "get": {
        "operationId": "get_geo_mgrs",
        "summary": "Latitude/longitude to an MGRS grid reference",
        "tags": [
          "geo"
        ],
        "parameters": [
          {
            "name": "point",
            "in": "query",
            "required": true,
            "description": "latitude,longitude",
            "schema": {
              "type": "string"
            },
            "example": "55.7558,37.6173"
          },
          {
            "name": "precision",
            "in": "query",
            "required": false,
            "description": "digits per axis 0-5 (5 = 1 m)",
            "schema": {
              "type": "integer",
              "default": 5
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/geo/mgrs?point=55.7558,37.6173",
          "/geo/mgrs?point=55.7558,37.6173&precision=3"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/geo/mgrs/{code}": {
      "get": {
        "operationId": "get_geo_mgrs_code",
        "summary": "MGRS grid reference to latitude/longitude (south-west corner of the square)",
        "tags": [
          "geo"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "description": "MGRS reference",
            "schema": {
              "type": "string"
            },
            "example": "37UDB1322479766"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/geo/mgrs/37UDB1322479766"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/sky/sun": {
      "get": {
        "operationId": "get_sky_sun",
        "summary": "Sunrise, sunset, solar noon, day length and twilights for a place and date",
        "tags": [
          "sky"
        ],
        "parameters": [
          {
            "name": "point",
            "in": "query",
            "required": true,
            "description": "latitude,longitude in decimal degrees",
            "schema": {
              "type": "string"
            },
            "example": "55.7558,37.6173"
          },
          {
            "name": "tz",
            "in": "query",
            "required": true,
            "description": "IANA timezone for the output; required because 'the date' and the times depend on it",
            "schema": {
              "type": "string"
            },
            "example": "Europe/Moscow"
          },
          {
            "name": "date",
            "in": "query",
            "required": false,
            "description": "local date YYYY-MM-DD (default: today in tz)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "event",
            "in": "query",
            "required": false,
            "description": "return one value only",
            "schema": {
              "type": "string",
              "enum": [
                "sunrise",
                "sunset",
                "noon",
                "civil-dawn",
                "civil-dusk",
                "nautical-dawn",
                "nautical-dusk",
                "astronomical-dawn",
                "astronomical-dusk",
                "day-length"
              ]
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/sky/sun?point=55.7558,37.6173&tz=Europe/Moscow&date=2026-09-15",
          "/sky/sun?point=69.6492,18.9553&tz=Europe/Oslo&date=2026-12-21",
          "/sky/sun?point=40.7128,-74.0060&tz=America/New_York&date=2026-06-21&event=sunset"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/sky/moon": {
      "get": {
        "operationId": "get_sky_moon",
        "summary": "Moon phase, illumination, next principal phases; moonrise/moonset if a place is given",
        "tags": [
          "sky"
        ],
        "parameters": [
          {
            "name": "tz",
            "in": "query",
            "required": true,
            "description": "IANA timezone for the output",
            "schema": {
              "type": "string"
            },
            "example": "Europe/Berlin"
          },
          {
            "name": "date",
            "in": "query",
            "required": false,
            "description": "local date YYYY-MM-DD (default: now)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "point",
            "in": "query",
            "required": false,
            "description": "latitude,longitude for moonrise and moonset",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/sky/moon?tz=Europe/Berlin&date=2026-09-15",
          "/sky/moon?tz=Europe/Berlin&date=2026-09-26&point=52.52,13.405"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/sky/seasons/{year}": {
      "get": {
        "operationId": "get_sky_seasons_year",
        "summary": "Instants of the equinoxes and solstices of a year",
        "tags": [
          "sky"
        ],
        "parameters": [
          {
            "name": "year",
            "in": "path",
            "required": true,
            "description": "year 1000-3000",
            "schema": {
              "type": "string"
            },
            "example": "2026"
          },
          {
            "name": "tz",
            "in": "query",
            "required": false,
            "description": "optional IANA timezone for the output (default UTC)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/sky/seasons/2026",
          "/sky/seasons/2026?tz=Asia/Tokyo"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/sky/satellite/{id}": {
      "get": {
        "operationId": "get_sky_satellite_id",
        "summary": "Current (or given) position of a satellite from its latest TLE, via SGP4",
        "tags": [
          "sky"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "NORAD catalogue number or iss, css, hubble",
            "schema": {
              "type": "string"
            },
            "example": "iss"
          },
          {
            "name": "at",
            "in": "query",
            "required": false,
            "description": "ISO 8601 instant with offset (default: now) ('+' is kept literally)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "computed",
        "x-cost": "light",
        "x-examples": [
          "/sky/satellite/iss",
          "/sky/satellite/25544?at=2026-09-15T12:00:00Z"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "celestrak"
        ]
      }
    },
    "/sky/satellites": {
      "get": {
        "operationId": "get_sky_satellites",
        "summary": "Satellites whose element sets are mirrored here",
        "tags": [
          "sky"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/sky/satellites"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "celestrak"
        ]
      }
    },
    "/fx/{base}/{quote}": {
      "get": {
        "operationId": "get_fx_base_quote",
        "summary": "Exchange rate for a currency pair, with the publishing central bank and date",
        "tags": [
          "fx"
        ],
        "parameters": [
          {
            "name": "base",
            "in": "path",
            "required": true,
            "description": "ISO 4217 code, e.g. EUR",
            "schema": {
              "type": "string"
            },
            "example": "eur"
          },
          {
            "name": "quote",
            "in": "path",
            "required": true,
            "description": "ISO 4217 code, e.g. USD",
            "schema": {
              "type": "string"
            },
            "example": "usd"
          },
          {
            "name": "source",
            "in": "query",
            "required": false,
            "description": "ecb (reference rates, default) or cbr (Bank of Russia official rates)",
            "schema": {
              "type": "string",
              "enum": [
                "ecb",
                "cbr"
              ],
              "default": "ecb"
            }
          },
          {
            "name": "date",
            "in": "query",
            "required": false,
            "description": "YYYY-MM-DD; default: the latest rate in effect today",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "description": "optional amount of base to convert",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/fx/eur/usd",
          "/fx/usd/jpy?date=2026-09-01",
          "/fx/usd/rub?source=cbr",
          "/fx/eur/gbp?amount=250"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "ecb",
          "cbr"
        ]
      }
    },
    "/fx/rates": {
      "get": {
        "operationId": "get_fx_rates",
        "summary": "All rates from one central bank for a date",
        "tags": [
          "fx"
        ],
        "parameters": [
          {
            "name": "source",
            "in": "query",
            "required": false,
            "description": "ecb (reference rates, default) or cbr (Bank of Russia official rates)",
            "schema": {
              "type": "string",
              "enum": [
                "ecb",
                "cbr"
              ],
              "default": "ecb"
            }
          },
          {
            "name": "date",
            "in": "query",
            "required": false,
            "description": "YYYY-MM-DD; default: the latest rate in effect today",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "base",
            "in": "query",
            "required": false,
            "description": "express rates per 1 unit of this currency (default EUR for ecb, RUB for cbr)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/fx/rates",
          "/fx/rates?source=cbr",
          "/fx/rates?base=usd&date=2026-09-01"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "ecb",
          "cbr"
        ]
      }
    },
    "/fx/currencies": {
      "get": {
        "operationId": "get_fx_currencies",
        "summary": "Currencies each central bank publishes",
        "tags": [
          "fx"
        ],
        "parameters": [
          {
            "name": "source",
            "in": "query",
            "required": false,
            "description": "ecb (reference rates, default) or cbr (Bank of Russia official rates)",
            "schema": {
              "type": "string",
              "enum": [
                "ecb",
                "cbr"
              ],
              "default": "ecb"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/fx/currencies",
          "/fx/currencies?source=cbr"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "ecb",
          "cbr"
        ]
      }
    },
    "/holidays/{country}/{when}": {
      "get": {
        "operationId": "get_holidays_country_when",
        "summary": "Public holidays of a year (when=2026) or the status of one date (when=2026-12-25)",
        "tags": [
          "holidays"
        ],
        "parameters": [
          {
            "name": "country",
            "in": "path",
            "required": true,
            "description": "ISO 3166-1 alpha-2 code",
            "schema": {
              "type": "string"
            },
            "example": "de"
          },
          {
            "name": "when",
            "in": "path",
            "required": true,
            "description": "year YYYY, or date YYYY-MM-DD",
            "schema": {
              "type": "string"
            },
            "example": "2026"
          },
          {
            "name": "region",
            "in": "query",
            "required": false,
            "description": "ISO 3166-2 subdivision to include regional holidays, e.g. DE-BY",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "weekend",
            "in": "query",
            "required": false,
            "description": "override weekend days, e.g. fri,sat",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/holidays/de/2026",
          "/holidays/ru/2026-01-09",
          "/holidays/us/2026-11-26",
          "/holidays/de/2026?region=DE-BY"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "nager"
        ]
      }
    },
    "/holidays/{country}/next": {
      "get": {
        "operationId": "get_holidays_country_next",
        "summary": "Next public holidays after a date",
        "tags": [
          "holidays"
        ],
        "parameters": [
          {
            "name": "country",
            "in": "path",
            "required": true,
            "description": "ISO 3166-1 alpha-2 code",
            "schema": {
              "type": "string"
            },
            "example": "de"
          },
          {
            "name": "after",
            "in": "query",
            "required": false,
            "description": "date YYYY-MM-DD (exclusive); or give tz= to mean today there",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tz",
            "in": "query",
            "required": false,
            "description": "IANA timezone defining today",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "description": "1-50",
            "schema": {
              "type": "integer",
              "default": 3
            }
          },
          {
            "name": "region",
            "in": "query",
            "required": false,
            "description": "ISO 3166-2 subdivision to include regional holidays, e.g. DE-BY",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/holidays/fr/next?after=2026-09-15",
          "/holidays/us/next?tz=America/Chicago&count=5"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "nager"
        ]
      }
    },
    "/holidays/countries": {
      "get": {
        "operationId": "get_holidays_countries",
        "summary": "Countries with holiday data",
        "tags": [
          "holidays"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/holidays/countries"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "nager"
        ]
      }
    },
    "/ref/country/{code}": {
      "get": {
        "operationId": "get_ref_country_code",
        "summary": "Country by ISO 3166-1 code or name: codes, official name, calling code, timezones, currency",
        "tags": [
          "ref"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "description": "alpha-2, alpha-3, numeric code or English name",
            "schema": {
              "type": "string"
            },
            "example": "de"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/ref/country/de",
          "/ref/country/JPN",
          "/ref/country/Brazil"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/ref/subdivisions/{country}": {
      "get": {
        "operationId": "get_ref_subdivisions_country",
        "summary": "ISO 3166-2 subdivisions of a country",
        "tags": [
          "ref"
        ],
        "parameters": [
          {
            "name": "country",
            "in": "path",
            "required": true,
            "description": "alpha-2 code",
            "schema": {
              "type": "string"
            },
            "example": "de"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/ref/subdivisions/de",
          "/ref/subdivisions/us"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/ref/currency/{code}": {
      "get": {
        "operationId": "get_ref_currency_code",
        "summary": "ISO 4217 currency: name, numeric code, minor units",
        "tags": [
          "ref"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "description": "ISO 4217 alphabetic code",
            "schema": {
              "type": "string"
            },
            "example": "jpy"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/ref/currency/jpy",
          "/ref/currency/eur",
          "/ref/currency/kwd"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/ref/language/{code}": {
      "get": {
        "operationId": "get_ref_language_code",
        "summary": "Language by ISO 639-1, 639-2/3 code or English name",
        "tags": [
          "ref"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "description": "ISO 639 code or name",
            "schema": {
              "type": "string"
            },
            "example": "ru"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/ref/language/ru",
          "/ref/language/deu",
          "/ref/language/Hungarian"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/ref/timezone/{name}": {
      "get": {
        "operationId": "get_ref_timezone_name",
        "summary": "Timezone: current offset, DST state, next transition, countries",
        "tags": [
          "ref"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "description": "IANA name, e.g. America/New_York",
            "schema": {
              "type": "string"
            },
            "example": "America/New_York"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/ref/timezone/America/New_York",
          "/ref/timezone/Asia/Kolkata",
          "/ref/timezone/Europe/Moscow"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/ref/timezones": {
      "get": {
        "operationId": "get_ref_timezones",
        "summary": "IANA timezone names, optionally for one country",
        "tags": [
          "ref"
        ],
        "parameters": [
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "alpha-2 country code",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/ref/timezones?country=us",
          "/ref/timezones"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/ref/tld/{tld}": {
      "get": {
        "operationId": "get_ref_tld_tld",
        "summary": "Whether a top-level domain exists in the IANA root zone",
        "tags": [
          "ref"
        ],
        "parameters": [
          {
            "name": "tld",
            "in": "path",
            "required": true,
            "description": "TLD with or without dot, Unicode or xn--",
            "schema": {
              "type": "string"
            },
            "example": "dev"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/ref/tld/dev",
          "/ref/tld/.%D1%80%D1%84",
          "/ref/tld/local"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "iana-tld"
        ]
      }
    },
    "/ref/port/{port}": {
      "get": {
        "operationId": "get_ref_port_port",
        "summary": "IANA service names registered for a port number",
        "tags": [
          "ref"
        ],
        "parameters": [
          {
            "name": "port",
            "in": "path",
            "required": true,
            "description": "0-65535",
            "schema": {
              "type": "string"
            },
            "example": "5432"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/ref/port/5432",
          "/ref/port/443"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "iana-registries"
        ]
      }
    },
    "/ref/service/{name}": {
      "get": {
        "operationId": "get_ref_service_name",
        "summary": "Ports registered for a service name",
        "tags": [
          "ref"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "description": "service name, e.g. postgresql",
            "schema": {
              "type": "string"
            },
            "example": "postgresql"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/ref/service/postgresql",
          "/ref/service/https"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "iana-registries"
        ]
      }
    },
    "/ref/media-type/{type}/{subtype}": {
      "get": {
        "operationId": "get_ref_media_type_type_subtype",
        "summary": "Whether a media type is registered with IANA, and its reference",
        "tags": [
          "ref"
        ],
        "parameters": [
          {
            "name": "type",
            "in": "path",
            "required": true,
            "description": "top-level type",
            "schema": {
              "type": "string"
            },
            "example": "application"
          },
          {
            "name": "subtype",
            "in": "path",
            "required": true,
            "description": "subtype",
            "schema": {
              "type": "string"
            },
            "example": "json"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/ref/media-type/application/json",
          "/ref/media-type/text/markdown",
          "/ref/media-type/application/x-yaml"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "iana-registries"
        ]
      }
    },
    "/ref/http-status/{code}": {
      "get": {
        "operationId": "get_ref_http_status_code",
        "summary": "HTTP status code meaning and defining document",
        "tags": [
          "ref"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "description": "100-599",
            "schema": {
              "type": "string"
            },
            "example": "422"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/ref/http-status/422",
          "/ref/http-status/418"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "iana-registries"
        ]
      }
    },
    "/ref/http-header/{name}": {
      "get": {
        "operationId": "get_ref_http_header_name",
        "summary": "HTTP field (header) name: registration status and specification",
        "tags": [
          "ref"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "description": "field name",
            "schema": {
              "type": "string"
            },
            "example": "cache-control"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/ref/http-header/cache-control",
          "/ref/http-header/x-forwarded-for"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "iana-registries"
        ]
      }
    },
    "/ref/constant/{name}": {
      "get": {
        "operationId": "get_ref_constant_name",
        "summary": "Physical constant (CODATA via NIST): value, uncertainty, unit",
        "tags": [
          "ref"
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "description": "name or symbol: c, h, hbar, G, k, e, NA, me, alpha, or words like 'electron mass'",
            "schema": {
              "type": "string"
            },
            "example": "G"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/ref/constant/G",
          "/ref/constant/speed%20of%20light",
          "/ref/constant/electron%20mass"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "codata"
        ]
      }
    },
    "/ref/airport/{code}": {
      "get": {
        "operationId": "get_ref_airport_code",
        "summary": "Airport by IATA (3 letters) or ICAO (4 letters) code",
        "tags": [
          "ref"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "description": "IATA or ICAO code",
            "schema": {
              "type": "string"
            },
            "example": "svo"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/ref/airport/svo",
          "/ref/airport/EGLL"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "ourairports"
        ]
      }
    },
    "/feed/earthquakes": {
      "get": {
        "operationId": "get_feed_earthquakes",
        "summary": "Recent earthquakes, newest first (USGS)",
        "tags": [
          "feed"
        ],
        "parameters": [
          {
            "name": "period",
            "in": "query",
            "required": false,
            "description": "hour, day, week or month",
            "schema": {
              "type": "string",
              "enum": [
                "hour",
                "day",
                "week",
                "month"
              ],
              "default": "day"
            }
          },
          {
            "name": "min_magnitude",
            "in": "query",
            "required": false,
            "description": "minimum magnitude",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "near",
            "in": "query",
            "required": false,
            "description": "latitude,longitude to filter around",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "radius_km",
            "in": "query",
            "required": false,
            "description": "radius for near=",
            "schema": {
              "type": "number",
              "default": 500.0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "maximum lines, 1-500",
            "schema": {
              "type": "integer",
              "default": 50
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/feed/earthquakes?min_magnitude=4.5",
          "/feed/earthquakes?period=week&near=35.68,139.69&radius_km=300"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "usgs"
        ]
      }
    },
    "/feed/earthquakes/latest": {
      "get": {
        "operationId": "get_feed_earthquakes_latest",
        "summary": "The most recent earthquake matching a filter",
        "tags": [
          "feed"
        ],
        "parameters": [
          {
            "name": "period",
            "in": "query",
            "required": false,
            "description": "hour, day, week or month",
            "schema": {
              "type": "string",
              "enum": [
                "hour",
                "day",
                "week",
                "month"
              ],
              "default": "day"
            }
          },
          {
            "name": "min_magnitude",
            "in": "query",
            "required": false,
            "description": "minimum magnitude",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "near",
            "in": "query",
            "required": false,
            "description": "latitude,longitude to filter around",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "radius_km",
            "in": "query",
            "required": false,
            "description": "radius for near=",
            "schema": {
              "type": "number",
              "default": 500.0
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/feed/earthquakes/latest?min_magnitude=5",
          "/feed/earthquakes/latest"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "usgs"
        ]
      }
    },
    "/feed/earthquakes/strongest": {
      "get": {
        "operationId": "get_feed_earthquakes_strongest",
        "summary": "The strongest earthquake in a period",
        "tags": [
          "feed"
        ],
        "parameters": [
          {
            "name": "period",
            "in": "query",
            "required": false,
            "description": "hour, day, week or month",
            "schema": {
              "type": "string",
              "enum": [
                "hour",
                "day",
                "week",
                "month"
              ],
              "default": "day"
            }
          },
          {
            "name": "min_magnitude",
            "in": "query",
            "required": false,
            "description": "minimum magnitude",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "near",
            "in": "query",
            "required": false,
            "description": "latitude,longitude to filter around",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "radius_km",
            "in": "query",
            "required": false,
            "description": "radius for near=",
            "schema": {
              "type": "number",
              "default": 500.0
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/feed/earthquakes/strongest?period=week",
          "/feed/earthquakes/strongest?period=day&near=38.0,23.7&radius_km=400"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "usgs"
        ]
      }
    },
    "/feed/space-weather": {
      "get": {
        "operationId": "get_feed_space_weather",
        "summary": "Space weather now: Kp index, NOAA scales, solar wind, latest X-ray flare",
        "tags": [
          "feed"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/feed/space-weather"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "swpc"
        ]
      }
    },
    "/feed/space-weather/kp": {
      "get": {
        "operationId": "get_feed_space_weather_kp",
        "summary": "Planetary K-index, observed for the last days",
        "tags": [
          "feed"
        ],
        "parameters": [
          {
            "name": "hours",
            "in": "query",
            "required": false,
            "description": "how far back, 3-168",
            "schema": {
              "type": "integer",
              "default": 24
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/feed/space-weather/kp",
          "/feed/space-weather/kp?hours=72"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "swpc"
        ]
      }
    },
    "/feed/space-weather/forecast": {
      "get": {
        "operationId": "get_feed_space_weather_forecast",
        "summary": "3-day Kp forecast and NOAA R/S/G scale probabilities",
        "tags": [
          "feed"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/feed/space-weather/forecast"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "swpc"
        ]
      }
    },
    "/feed/space-weather/solar-wind": {
      "get": {
        "operationId": "get_feed_space_weather_solar_wind",
        "summary": "Real-time solar wind at L1: speed, density, temperature, magnetic field",
        "tags": [
          "feed"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/feed/space-weather/solar-wind"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "swpc"
        ]
      }
    },
    "/feed/space-weather/flares": {
      "get": {
        "operationId": "get_feed_space_weather_flares",
        "summary": "Latest solar X-ray flare (GOES)",
        "tags": [
          "feed"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "reference-data",
        "x-cost": "static",
        "x-examples": [
          "/feed/space-weather/flares"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "swpc"
        ]
      }
    },
    "/mirror": {
      "get": {
        "operationId": "get_mirror",
        "summary": "Your request as received: method, path, protocol, headers, TLS",
        "tags": [
          "self"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "self",
        "x-cost": "uncacheable",
        "x-examples": [
          "/mirror",
          "/mirror?anything=you-like"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/ip": {
      "get": {
        "operationId": "get_ip",
        "summary": "Your egress address, its network (ASN) and registration country, and a humble agent/human guess",
        "tags": [
          "self"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "self",
        "x-cost": "uncacheable",
        "x-examples": [
          "/ip"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "x-sources": [
          "ris",
          "rir"
        ]
      }
    },
    "/probe/redirect": {
      "get": {
        "operationId": "get_probe_redirect",
        "summary": "Start a chain of redirects to see whether and how far your client follows them",
        "tags": [
          "self"
        ],
        "parameters": [
          {
            "name": "hops",
            "in": "query",
            "required": false,
            "description": "chain length 1-20",
            "schema": {
              "type": "integer",
              "default": 5
            }
          },
          {
            "name": "code",
            "in": "query",
            "required": false,
            "description": "redirect status",
            "schema": {
              "type": "string",
              "enum": [
                "301",
                "302",
                "303",
                "307",
                "308"
              ],
              "default": "302"
            }
          },
          {
            "name": "location",
            "in": "query",
            "required": false,
            "description": "absolute or relative Location header",
            "schema": {
              "type": "string",
              "enum": [
                "absolute",
                "relative"
              ],
              "default": "absolute"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "self",
        "x-cost": "uncacheable",
        "x-examples": [
          "/probe/redirect",
          "/probe/redirect?hops=10&code=307&location=relative"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/probe/redirect/{n}": {
      "get": {
        "operationId": "get_probe_redirect_n",
        "summary": "One step of the redirect chain; the last step reports how many were followed",
        "tags": [
          "self"
        ],
        "parameters": [
          {
            "name": "n",
            "in": "path",
            "required": true,
            "description": "step number",
            "schema": {
              "type": "string"
            },
            "example": "5"
          },
          {
            "name": "of",
            "in": "query",
            "required": true,
            "description": "chain length",
            "schema": {
              "type": "integer"
            },
            "example": "5"
          },
          {
            "name": "code",
            "in": "query",
            "required": false,
            "description": "redirect status",
            "schema": {
              "type": "string",
              "enum": [
                "301",
                "302",
                "303",
                "307",
                "308"
              ],
              "default": "302"
            }
          },
          {
            "name": "location",
            "in": "query",
            "required": false,
            "description": "absolute or relative",
            "schema": {
              "type": "string",
              "enum": [
                "absolute",
                "relative"
              ],
              "default": "absolute"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "self",
        "x-cost": "uncacheable",
        "x-examples": [
          "/probe/redirect/5?of=5"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/probe/js": {
      "get": {
        "operationId": "get_probe_js",
        "summary": "HTML page that reports whether your client executes JavaScript (the only HTML on this service)",
        "tags": [
          "self"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "self",
        "x-cost": "uncacheable",
        "x-examples": [
          "/probe/js"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/probe/js/beacon": {
      "get": {
        "operationId": "get_probe_js_beacon",
        "summary": "Called by the script on /probe/js when JavaScript runs",
        "tags": [
          "self"
        ],
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "description": "token from /probe/js",
            "schema": {
              "type": "string"
            },
            "example": "0123456789abcdef"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "self",
        "x-cost": "uncacheable",
        "x-examples": [
          "/probe/js/beacon?token=0123456789abcdef"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/probe/js/result": {
      "get": {
        "operationId": "get_probe_js_result",
        "summary": "Whether the script of a /probe/js page load ran",
        "tags": [
          "self"
        ],
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "description": "token shown on /probe/js",
            "schema": {
              "type": "string"
            },
            "example": "0123456789abcdef"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "self",
        "x-cost": "uncacheable",
        "x-examples": [
          "/probe/js/result?token=0123456789abcdef"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/probe/cookie": {
      "get": {
        "operationId": "get_probe_cookie",
        "summary": "Sets one random cookie and reports whether your client sent it back (the only cookie on this service)",
        "tags": [
          "self"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "self",
        "x-cost": "uncacheable",
        "x-examples": [
          "/probe/cookie"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/probe/encoding": {
      "get": {
        "operationId": "get_probe_encoding",
        "summary": "Which compression your client accepts; the reply is compressed with the best one we support",
        "tags": [
          "self"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "self",
        "x-cost": "uncacheable",
        "x-examples": [
          "/probe/encoding"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/probe/chunked": {
      "get": {
        "operationId": "get_probe_chunked",
        "summary": "Body streamed in 5 chunks over one second; the last line says whether you got all of it",
        "tags": [
          "self"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "self",
        "x-cost": "uncacheable",
        "x-examples": [
          "/probe/chunked"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/probe/urllen": {
      "get": {
        "operationId": "get_probe_urllen",
        "summary": "Length of the URL that reached us; append any path or query to test longer ones",
        "tags": [
          "self"
        ],
        "parameters": [
          {
            "name": "sent",
            "in": "query",
            "required": false,
            "description": "how many bytes you believe you sent, so the two numbers can be compared",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "self",
        "x-cost": "uncacheable",
        "x-examples": [
          "/probe/urllen",
          "/probe/urllen/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa?bbbbbbbbbbbbbbbbbbbb=1&sent=52"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/probe/urllen/{padding}": {
      "get": {
        "operationId": "get_probe_urllen_padding",
        "summary": "Same as /probe/urllen with arbitrary padding in the path",
        "tags": [
          "self"
        ],
        "parameters": [
          {
            "name": "padding",
            "in": "path",
            "required": true,
            "description": "anything",
            "schema": {
              "type": "string"
            },
            "example": "aaaa"
          },
          {
            "name": "sent",
            "in": "query",
            "required": false,
            "description": "how many bytes you believe you sent",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "self",
        "x-cost": "uncacheable",
        "x-examples": [
          "/probe/urllen/aaaaaaaaaa",
          "/probe/urllen/aaaaaaaaaa?sent=21"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/status/{code}": {
      "get": {
        "operationId": "get_status_code",
        "summary": "Respond with the given HTTP status (200-599), with an explanatory body",
        "tags": [
          "test"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "required": true,
            "description": "status 200-599",
            "schema": {
              "type": "string"
            },
            "example": "503"
          },
          {
            "name": "retry_after",
            "in": "query",
            "required": false,
            "description": "seconds for a Retry-After header (429, 503)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "test",
        "x-cost": "diagnostic",
        "x-examples": [
          "/status/503?retry_after=30",
          "/status/418",
          "/status/204"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/delay/{seconds}": {
      "get": {
        "operationId": "get_delay_seconds",
        "summary": "Respond after a delay of up to 10 seconds",
        "tags": [
          "test"
        ],
        "parameters": [
          {
            "name": "seconds",
            "in": "path",
            "required": true,
            "description": "0-10, decimals allowed",
            "schema": {
              "type": "string"
            },
            "example": "2.5"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "test",
        "x-cost": "diagnostic",
        "x-examples": [
          "/delay/2.5",
          "/delay/10"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/size/{bytes}": {
      "get": {
        "operationId": "get_size_bytes",
        "summary": "Body of exactly N bytes (up to the 1 MB response cap), streamed with Content-Length",
        "tags": [
          "test"
        ],
        "parameters": [
          {
            "name": "bytes",
            "in": "path",
            "required": true,
            "description": "0-1048576",
            "schema": {
              "type": "string"
            },
            "example": "1048576"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "test",
        "x-cost": "diagnostic",
        "x-examples": [
          "/size/1048576",
          "/size/100"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/broken/{kind}": {
      "get": {
        "operationId": "get_broken_kind",
        "summary": "Deliberately malformed responses: bad gzip, truncated gzip, invalid UTF-8, invalid JSON, wrong type",
        "tags": [
          "test"
        ],
        "parameters": [
          {
            "name": "kind",
            "in": "path",
            "required": true,
            "description": "one of gzip, gzip-truncated, charset, json, content-type",
            "schema": {
              "type": "string",
              "enum": [
                "gzip",
                "gzip-truncated",
                "charset",
                "json",
                "content-type"
              ]
            },
            "example": "gzip"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json for a structured response",
            "schema": {
              "type": "string",
              "enum": [
                "json"
              ]
            }
          }
        ],
        "x-kind": "test",
        "x-cost": "diagnostic",
        "x-examples": [
          "/broken/gzip",
          "/broken/charset",
          "/broken/json"
        ],
        "responses": {
          "200": {
            "description": "Value on the first line, metadata on lines starting with #",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Answer"
                }
              }
            }
          },
          "400": {
            "description": "Bad parameter: names it, says why, shows an example",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "No such path: closest paths and all sections",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited; Retry-After in header and body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "451": {
            "description": "Not available to addresses registered in a blocked country (list on /about); explanation in the body",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data not loaded or paused; explanation and Retry-After",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Answer": {
        "type": "object",
        "properties": {
          "value": {},
          "meta": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "computed",
                  "reference-data"
                ]
              },
              "source": {
                "type": "string"
              },
              "as_of": {
                "type": "string"
              },
              "notes": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "warnings": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "license": {
                "type": "string"
              }
            }
          }
        }
      },
      "Error": {
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "status": {
                "type": "integer"
              },
              "title": {
                "type": "string"
              },
              "kind": {
                "type": "string"
              },
              "retry_after": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "explanation": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  }
}
