{
  "openapi": "3.1.0",
  "info": {
    "title": "httpresponder.com",
    "version": "1.0.0",
    "description": "HTTP request and response testing: decode base64, echo requests, return custom status codes, set headers, test redirects and stream responses."
  },
  "servers": [
    {
      "url": "https://httpresponder.com"
    }
  ],
  "externalDocs": {
    "description": "API reference with request examples",
    "url": "https://httpresponder.com/docs"
  },
  "paths": {
    "/base64": {
      "get": {
        "operationId": "base64Get",
        "summary": "Decode standard or URL-safe base64, or encode UTF-8 with mode=encode. POST text/plain also accepted.",
        "parameters": [
          {
            "name": "data",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Input data."
            }
          },
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Operation.",
              "enum": [
                "decode",
                "encode"
              ],
              "default": "decode"
            }
          },
          {
            "name": "content_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Decoded response media type.",
              "default": "text/plain; charset=utf-8"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      },
      "post": {
        "operationId": "base64Post",
        "summary": "Decode standard or URL-safe base64, or encode UTF-8 with mode=encode. POST text/plain also accepted.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "data": {
                    "type": "string",
                    "description": "Input data."
                  },
                  "mode": {
                    "type": "string",
                    "description": "Operation.",
                    "enum": [
                      "decode",
                      "encode"
                    ],
                    "default": "decode"
                  },
                  "content_type": {
                    "type": "string",
                    "description": "Decoded response media type.",
                    "default": "text/plain; charset=utf-8"
                  }
                },
                "required": []
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "data": {
                    "type": "string",
                    "description": "Input data."
                  },
                  "mode": {
                    "type": "string",
                    "description": "Operation.",
                    "enum": [
                      "decode",
                      "encode"
                    ],
                    "default": "decode"
                  },
                  "content_type": {
                    "type": "string",
                    "description": "Decoded response media type.",
                    "default": "text/plain; charset=utf-8"
                  }
                },
                "required": []
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/base64/{encoded}": {
      "get": {
        "operationId": "decodeBase64Path",
        "summary": "Decode base64 from the URL path. URL-safe base64 recommended.",
        "parameters": [
          {
            "name": "encoded",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Base64 payload."
            }
          },
          {
            "name": "content_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Decoded response media type."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/respond": {
      "get": {
        "operationId": "customResponseGet",
        "summary": "Return a custom body, status, headers and optional delay. HTML can execute JavaScript in an isolated origin.",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "HTTP status.",
              "minimum": 200,
              "maximum": 599,
              "default": 200
            }
          },
          {
            "name": "body",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Response body."
            }
          },
          {
            "name": "base64",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Binary body as base64; takes precedence over body."
            }
          },
          {
            "name": "content_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Media type.",
              "default": "text/plain; charset=utf-8"
            }
          },
          {
            "name": "headers",
            "in": "query",
            "required": false,
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              },
              "description": "For GET, pass JSON-encoded headers."
            }
          },
          {
            "name": "delay",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 10,
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      },
      "post": {
        "operationId": "customResponsePost",
        "summary": "Return a custom body, status, headers and optional delay. HTML can execute JavaScript in an isolated origin.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "integer",
                    "description": "HTTP status.",
                    "minimum": 200,
                    "maximum": 599,
                    "default": 200
                  },
                  "body": {
                    "type": "string",
                    "description": "Response body."
                  },
                  "base64": {
                    "type": "string",
                    "description": "Binary body as base64; takes precedence over body."
                  },
                  "content_type": {
                    "type": "string",
                    "description": "Media type.",
                    "default": "text/plain; charset=utf-8"
                  },
                  "headers": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "For GET, pass JSON-encoded headers."
                  },
                  "delay": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 10,
                    "default": 0
                  }
                },
                "required": []
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "integer",
                    "description": "HTTP status.",
                    "minimum": 200,
                    "maximum": 599,
                    "default": 200
                  },
                  "body": {
                    "type": "string",
                    "description": "Response body."
                  },
                  "base64": {
                    "type": "string",
                    "description": "Binary body as base64; takes precedence over body."
                  },
                  "content_type": {
                    "type": "string",
                    "description": "Media type.",
                    "default": "text/plain; charset=utf-8"
                  },
                  "headers": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "For GET, pass JSON-encoded headers."
                  },
                  "delay": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 10,
                    "default": 0
                  }
                },
                "required": []
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/mix/{directives}": {
      "get": {
        "operationId": "mix",
        "summary": "Combine /s=201/h=content-type:text%2Fplain/b64=SGVsbG8=. Supports s,h,c,r,b64,end; Go templates are not supported.",
        "parameters": [
          {
            "name": "directives",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Slash-separated directives. URL-encode values containing slashes."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/get": {
      "get": {
        "operationId": "getEcho",
        "summary": "Echo method, query, headers, body, parsed JSON, form fields and multipart files.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/post": {
      "post": {
        "operationId": "postEcho",
        "summary": "Echo method, query, headers, body, parsed JSON, form fields and multipart files.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "required": []
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {},
                "required": []
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/put": {
      "put": {
        "operationId": "putEcho",
        "summary": "Echo method, query, headers, body, parsed JSON, form fields and multipart files.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/patch": {
      "patch": {
        "operationId": "patchEcho",
        "summary": "Echo method, query, headers, body, parsed JSON, form fields and multipart files.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/delete": {
      "delete": {
        "operationId": "deleteEcho",
        "summary": "Echo method, query, headers, body, parsed JSON, form fields and multipart files.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/anything": {
      "get": {
        "operationId": "anythingGet",
        "summary": "HTTP diagnostic endpoint. Echo, headers, payload, and cookies accept any method.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      },
      "post": {
        "operationId": "anythingPost",
        "summary": "Echo posted request.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "required": []
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {},
                "required": []
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/any": {
      "get": {
        "operationId": "anyGet",
        "summary": "HTTP diagnostic endpoint. Echo, headers, payload, and cookies accept any method.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      },
      "post": {
        "operationId": "anyPost",
        "summary": "Echo posted request.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "required": []
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {},
                "required": []
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/payload": {
      "get": {
        "operationId": "payloadGet",
        "summary": "HTTP diagnostic endpoint. Echo, headers, payload, and cookies accept any method.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      },
      "post": {
        "operationId": "payloadPost",
        "summary": "Echo posted request.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "required": []
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {},
                "required": []
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/headers": {
      "get": {
        "operationId": "headersGet",
        "summary": "HTTP diagnostic endpoint. Echo, headers, payload, and cookies accept any method.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/ip": {
      "get": {
        "operationId": "ipGet",
        "summary": "HTTP diagnostic endpoint. Echo, headers, payload, and cookies accept any method.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/user-agent": {
      "get": {
        "operationId": "useragentGet",
        "summary": "HTTP diagnostic endpoint. Echo, headers, payload, and cookies accept any method.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/uuid": {
      "get": {
        "operationId": "uuidGet",
        "summary": "HTTP diagnostic endpoint. Echo, headers, payload, and cookies accept any method.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/cookies": {
      "get": {
        "operationId": "cookiesGet",
        "summary": "HTTP diagnostic endpoint. Echo, headers, payload, and cookies accept any method.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/bearer": {
      "get": {
        "operationId": "bearerGet",
        "summary": "HTTP diagnostic endpoint. Echo, headers, payload, and cookies accept any method.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/json": {
      "get": {
        "operationId": "jsonGet",
        "summary": "HTTP diagnostic endpoint. Echo, headers, payload, and cookies accept any method.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/html": {
      "get": {
        "operationId": "htmlGet",
        "summary": "HTTP diagnostic endpoint. Echo, headers, payload, and cookies accept any method.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/xml": {
      "get": {
        "operationId": "xmlGet",
        "summary": "HTTP diagnostic endpoint. Echo, headers, payload, and cookies accept any method.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/gzip": {
      "get": {
        "operationId": "gzipGet",
        "summary": "HTTP diagnostic endpoint. Echo, headers, payload, and cookies accept any method.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/deflate": {
      "get": {
        "operationId": "deflateGet",
        "summary": "HTTP diagnostic endpoint. Echo, headers, payload, and cookies accept any method.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/status/{codes}": {
      "get": {
        "operationId": "statusPath",
        "summary": "Return a status (200–599).",
        "parameters": [
          {
            "name": "codes",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "One status or a comma-separated list.",
              "example": "200,503"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/delay/{seconds}": {
      "get": {
        "operationId": "delayPath",
        "summary": "Delay then echo.",
        "parameters": [
          {
            "name": "seconds",
            "in": "path",
            "required": true,
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/bytes/{count}": {
      "get": {
        "operationId": "bytesPath",
        "summary": "Generate random bytes.",
        "parameters": [
          {
            "name": "count",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Random bytes.",
              "minimum": 0,
              "maximum": 1048576
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/stream/{count}": {
      "get": {
        "operationId": "streamPath",
        "summary": "Stream NDJSON records.",
        "parameters": [
          {
            "name": "count",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "NDJSON records.",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/redirect/{count}": {
      "get": {
        "operationId": "redirectPath",
        "summary": "Redirect repeatedly then echo.",
        "parameters": [
          {
            "name": "count",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Redirect count.",
              "minimum": 0,
              "maximum": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/relative-redirect/{count}": {
      "get": {
        "operationId": "relativeredirectPath",
        "summary": "Relative redirects.",
        "parameters": [
          {
            "name": "count",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Redirect count.",
              "minimum": 0,
              "maximum": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/absolute-redirect/{count}": {
      "get": {
        "operationId": "absoluteredirectPath",
        "summary": "Absolute redirects.",
        "parameters": [
          {
            "name": "count",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Redirect count.",
              "minimum": 0,
              "maximum": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/cache/{age}": {
      "get": {
        "operationId": "cachePath",
        "summary": "Cache-Control and conditional requests.",
        "parameters": [
          {
            "name": "age",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Max age in seconds.",
              "minimum": 0,
              "maximum": 31536000
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/etag/{etag}": {
      "get": {
        "operationId": "etagPath",
        "summary": "If-Match and If-None-Match support.",
        "parameters": [
          {
            "name": "etag",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Entity tag without quotes."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/response-headers": {
      "get": {
        "operationId": "responseHeaders",
        "summary": "Return all query parameters as response headers (runtime hop-by-hop headers excluded).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/redirect-to": {
      "get": {
        "operationId": "redirectTo",
        "summary": "Redirect to HTTP(S) or a relative path.",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Public HTTP(S) destination.",
              "format": "uri",
              "example": "https://example.com"
            }
          },
          {
            "name": "status_code",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "301,302,303,307,308.",
              "minimum": 301,
              "maximum": 308,
              "default": 302
            }
          }
        ],
        "responses": {
          "302": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/basic-auth/{username}/{password}": {
      "get": {
        "operationId": "basicAuth",
        "summary": "Test HTTP Basic auth.",
        "parameters": [
          {
            "name": "username",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Username."
            }
          },
          {
            "name": "password",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Password."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/bearer/{expectedToken}": {
      "get": {
        "operationId": "bearerAuth",
        "summary": "Test Bearer auth.",
        "parameters": [
          {
            "name": "expectedToken",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Expected token."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/cookies/set": {
      "get": {
        "operationId": "setCookies",
        "summary": "Query parameters supply cookie names and values.",
        "responses": {
          "302": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/cookies/delete": {
      "get": {
        "operationId": "deleteCookies",
        "summary": "Query parameters supply cookie names and values.",
        "responses": {
          "302": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/drip": {
      "get": {
        "operationId": "drip",
        "summary": "Stream bytes or server-sent events. Total duration plus delay <=10 seconds.",
        "parameters": [
          {
            "name": "duration",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 10
            }
          },
          {
            "name": "delay",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 10
            }
          },
          {
            "name": "numbytes",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Drip count.",
              "minimum": 1,
              "maximum": 1000,
              "default": 10
            }
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "SSE events.",
              "minimum": 1,
              "maximum": 100,
              "default": 5
            }
          },
          {
            "name": "code",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "HTTP status.",
              "minimum": 200,
              "maximum": 599,
              "default": 200
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/drip-lines": {
      "get": {
        "operationId": "driplines",
        "summary": "Stream bytes or server-sent events. Total duration plus delay <=10 seconds.",
        "parameters": [
          {
            "name": "duration",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 10
            }
          },
          {
            "name": "delay",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 10
            }
          },
          {
            "name": "numbytes",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Drip count.",
              "minimum": 1,
              "maximum": 1000,
              "default": 10
            }
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "SSE events.",
              "minimum": 1,
              "maximum": 100,
              "default": 5
            }
          },
          {
            "name": "code",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "HTTP status.",
              "minimum": 200,
              "maximum": 599,
              "default": 200
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/sse": {
      "get": {
        "operationId": "sse",
        "summary": "Stream bytes or server-sent events. Total duration plus delay <=10 seconds.",
        "parameters": [
          {
            "name": "duration",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 10
            }
          },
          {
            "name": "delay",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 10
            }
          },
          {
            "name": "numbytes",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Drip count.",
              "minimum": 1,
              "maximum": 1000,
              "default": 10
            }
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "SSE events.",
              "minimum": 1,
              "maximum": 100,
              "default": 5
            }
          },
          {
            "name": "code",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "HTTP status.",
              "minimum": 200,
              "maximum": 599,
              "default": 200
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/event-stream": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/links/{count}/{offset}": {
      "get": {
        "operationId": "links",
        "summary": "Generate linked HTML.",
        "parameters": [
          {
            "name": "count",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Links.",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "offset",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Current link.",
              "minimum": 0,
              "maximum": 99
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/docs": {
      "get": {
        "operationId": "documentation",
        "summary": "Server-rendered HTML API reference.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/robots.txt": {
      "get": {
        "operationId": "robots",
        "summary": "Crawler access rules and sitemap location.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/sitemap.xml": {
      "get": {
        "operationId": "sitemap",
        "summary": "Public documentation sitemap.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/xml": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/health": {
      "get": {
        "operationId": "health",
        "summary": "Worker liveness (does not probe external dependencies).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          }
        }
      }
    },
    "/llms.txt": {
      "get": {
        "operationId": "agentGuide",
        "summary": "Plain-text agent usage guide.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "responses": {
      "Error": {
        "description": "The request failed. See error.code and error.message for details.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      }
    },
    "schemas": {
      "Error": {
        "type": "object",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "object",
            "required": [
              "code",
              "message"
            ],
            "properties": {
              "code": {
                "type": "integer"
              },
              "message": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  }
}
