{
  "components": {
    "responses": {
      "BadRequest": {
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "error": {
                  "type": "string"
                },
                "input": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Bad request"
      },
      "RateLimited": {
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "error": {
                  "example": "Rate limit exceeded",
                  "type": "string"
                },
                "limit": {
                  "example": 60,
                  "type": "integer"
                },
                "message": {
                  "type": "string"
                },
                "retry_after_seconds": {
                  "type": "integer"
                },
                "window": {
                  "example": "1 hour",
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        },
        "description": "Rate limit exceeded",
        "headers": {
          "Retry-After": {
            "schema": {
              "type": "string"
            }
          },
          "X-RateLimit-Limit": {
            "schema": {
              "type": "string"
            }
          },
          "X-RateLimit-Remaining": {
            "schema": {
              "type": "string"
            }
          }
        }
      }
    },
    "schemas": {
      "AiCatalog": {
        "properties": {
          "entries": {
            "items": {
              "properties": {
                "description": {
                  "type": "string"
                },
                "displayName": {
                  "type": "string"
                },
                "identifier": {
                  "type": "string"
                },
                "representativeQueries": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "type": {
                  "example": "application/openapi+json",
                  "type": "string"
                },
                "url": {
                  "format": "uri",
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "host": {
            "properties": {
              "displayName": {
                "type": "string"
              },
              "documentationUrl": {
                "format": "uri",
                "type": "string"
              },
              "identifier": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "specVersion": {
            "example": "1.0",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CORSErrorDecodeResult": {
        "properties": {
          "diagnosis": {
            "type": "string"
          },
          "docs": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "fix_steps": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "headers_needed": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "likely_cause": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "CORSResult": {
        "properties": {
          "allow_credentials": {
            "type": "boolean"
          },
          "allow_headers": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "allow_methods": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "allow_origin": {
            "type": [
              "string",
              "null"
            ]
          },
          "enabled": {
            "type": "boolean"
          },
          "expose_headers": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "issues": {
            "items": {
              "$ref": "#/components/schemas/Finding"
            },
            "type": "array"
          },
          "max_age": {
            "type": [
              "integer",
              "null"
            ]
          },
          "preflight_status": {
            "type": [
              "integer",
              "null"
            ]
          },
          "vary_origin": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "CORSSimulationRequest": {
        "properties": {
          "credentials": {
            "default": false,
            "type": "boolean"
          },
          "headers": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "method": {
            "default": "GET",
            "example": "GET",
            "type": "string"
          },
          "origin": {
            "description": "Origin to simulate from",
            "type": "string"
          },
          "target": {
            "description": "Target URL to simulate CORS against",
            "format": "uri",
            "type": "string"
          }
        },
        "required": [
          "target",
          "origin"
        ],
        "type": "object"
      },
      "CORSSimulationResult": {
        "properties": {
          "allowed": {
            "type": "boolean"
          },
          "fix": {
            "properties": {
              "docs": {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              "explanation": {
                "type": "string"
              },
              "headers": {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "preflight": {
            "properties": {
              "received": {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              "sent": {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "reason": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "CSPResult": {
        "properties": {
          "grade": {
            "example": "A",
            "type": "string"
          },
          "issues": {
            "items": {
              "$ref": "#/components/schemas/Finding"
            },
            "type": "array"
          },
          "missing_directives": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "mode": {
            "enum": [
              "enforce",
              "report-only",
              "none"
            ],
            "type": "string"
          },
          "parsed": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "object"
          },
          "present": {
            "type": "boolean"
          },
          "raw": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "CacheResult": {
        "properties": {
          "cache_control": {
            "type": [
              "string",
              "null"
            ]
          },
          "cdn_provider": {
            "type": [
              "string",
              "null"
            ]
          },
          "cdn_status": {
            "type": [
              "string",
              "null"
            ]
          },
          "effective_ttl": {
            "type": [
              "integer",
              "null"
            ]
          },
          "explanation": {
            "type": "string"
          },
          "issues": {
            "items": {
              "$ref": "#/components/schemas/Finding"
            },
            "type": "array"
          },
          "parsed": {
            "type": "object"
          },
          "vary": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Finding": {
        "properties": {
          "code": {
            "type": "string"
          },
          "fix": {
            "type": "string"
          },
          "mdn": {
            "format": "uri",
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "severity": {
            "enum": [
              "critical",
              "high",
              "warning",
              "info",
              "pass"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "Meta": {
        "properties": {
          "cache_hit": {
            "type": "boolean"
          },
          "links": {
            "properties": {
              "dns_details": {
                "format": "uri",
                "type": "string"
              },
              "email_validation": {
                "format": "uri",
                "type": "string"
              },
              "full_report": {
                "format": "uri",
                "type": "string"
              },
              "tls_details": {
                "format": "uri",
                "type": "string"
              }
            },
            "type": "object"
          },
          "scan_time_ms": {
            "type": "integer"
          },
          "version": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "RedirectChainResult": {
        "properties": {
          "chain": {
            "items": {
              "properties": {
                "headers_summary": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "type": "object"
                },
                "location": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "status": {
                  "type": "integer"
                },
                "timing_ms": {
                  "type": "integer"
                },
                "url": {
                  "type": "string"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "hops": {
            "type": "integer"
          },
          "issues": {
            "items": {
              "$ref": "#/components/schemas/Finding"
            },
            "type": "array"
          },
          "loop_detected": {
            "type": "boolean"
          },
          "mixed_content": {
            "type": "boolean"
          },
          "total_time_ms": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ScanResult": {
        "properties": {
          "_meta": {
            "$ref": "#/components/schemas/Meta"
          },
          "cache": {
            "$ref": "#/components/schemas/CacheResult"
          },
          "cors": {
            "$ref": "#/components/schemas/CORSResult"
          },
          "csp": {
            "$ref": "#/components/schemas/CSPResult"
          },
          "domain_intel": {
            "properties": {
              "dnssec": {
                "type": "boolean"
              },
              "email_auth": {
                "properties": {
                  "dkim": {
                    "type": "boolean"
                  },
                  "dmarc": {
                    "type": "boolean"
                  },
                  "dmarc_policy": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "spf": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          },
          "grade": {
            "type": "string"
          },
          "redirect_chain": {
            "$ref": "#/components/schemas/RedirectChainResult"
          },
          "scanned_at": {
            "format": "date-time",
            "type": "string"
          },
          "security_headers": {
            "$ref": "#/components/schemas/SecurityHeadersResult"
          },
          "tls": {
            "properties": {
              "details": {
                "type": "string"
              },
              "version": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "type": "object"
          },
          "url": {
            "format": "uri",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SecurityHeadersResult": {
        "properties": {
          "conflicts": {
            "items": {
              "$ref": "#/components/schemas/Finding"
            },
            "type": "array"
          },
          "grade": {
            "type": "string"
          },
          "headers": {
            "type": "object"
          },
          "max_score": {
            "type": "integer"
          },
          "score": {
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "contact": {
      "email": "hello@yoke.lol",
      "name": "xhttp.lol",
      "url": "https://xhttp.lol"
    },
    "description": "The HTTP response debugger. CORS, CSP, security headers, redirects, cache — one command. Free, no auth required. Part of the .lol family.",
    "license": {
      "name": "MIT",
      "url": "https://github.com/yokedotlol/xhttp/blob/main/LICENSE"
    },
    "title": "xhttp.lol",
    "version": "2.0.0"
  },
  "openapi": "3.1.0",
  "paths": {
    "/": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "docs": {
                      "type": "string"
                    },
                    "name": {
                      "example": "xhttp.lol",
                      "type": "string"
                    },
                    "tagline": {
                      "type": "string"
                    },
                    "usage": {
                      "type": "string"
                    },
                    "version": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "HTML landing or JSON API root (content-negotiated)"
          }
        },
        "summary": "Landing page / API root",
        "tags": [
          "utility"
        ]
      }
    },
    "/.well-known/ai-catalog.json": {
      "get": {
        "operationId": "getAiCatalog",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AiCatalog"
                }
              }
            },
            "description": "AI catalog JSON"
          }
        },
        "summary": "AI catalog for agent discovery",
        "tags": [
          "discovery"
        ]
      }
    },
    "/.well-known/mta-sts.txt": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "MTA-STS text"
          }
        },
        "summary": "MTA-STS policy",
        "tags": [
          "utility"
        ]
      }
    },
    "/.well-known/security.txt": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "security.txt"
          }
        },
        "summary": "security.txt (well-known)",
        "tags": [
          "utility"
        ]
      }
    },
    "/about": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "HTML page"
          }
        },
        "summary": "About page",
        "tags": [
          "utility"
        ]
      }
    },
    "/api/docs": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "HTML API docs"
          }
        },
        "summary": "API documentation",
        "tags": [
          "utility"
        ]
      }
    },
    "/api/openapi.json": {
      "get": {
        "operationId": "getOpenApiSpecAlias",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "OpenAPI 3.1 JSON"
          }
        },
        "summary": "OpenAPI specification (alias)",
        "tags": [
          "discovery"
        ]
      }
    },
    "/cli": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "HTML page"
          }
        },
        "summary": "CLI documentation",
        "tags": [
          "utility"
        ]
      }
    },
    "/cors": {
      "post": {
        "operationId": "simulateCors",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CORSSimulationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CORSSimulationResult"
                }
              }
            },
            "description": "Simulation result"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        },
        "summary": "Simulate a CORS request",
        "tags": [
          "cors"
        ]
      }
    },
    "/csp/evaluate": {
      "post": {
        "operationId": "evaluateCsp",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "policy": {
                    "description": "CSP policy string to evaluate",
                    "type": "string"
                  }
                },
                "required": [
                  "policy"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CSPResult"
                }
              }
            },
            "description": "CSP evaluation"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        },
        "summary": "Evaluate a CSP policy string",
        "tags": [
          "csp"
        ]
      }
    },
    "/error": {
      "post": {
        "operationId": "decodeCorsError",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "error": {
                    "description": "Browser console CORS error message",
                    "type": "string"
                  }
                },
                "required": [
                  "error"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CORSErrorDecodeResult"
                }
              }
            },
            "description": "Decoded error"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        },
        "summary": "Decode a browser CORS error",
        "tags": [
          "cors"
        ]
      }
    },
    "/health": {
      "get": {
        "operationId": "health",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "status": {
                      "example": "ok",
                      "type": "string"
                    },
                    "version": {
                      "example": "2.0.0",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Service health"
          }
        },
        "summary": "Health check",
        "tags": [
          "utility"
        ]
      }
    },
    "/llms.txt": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "LLMs.txt"
          }
        },
        "summary": "LLMs.txt for AI consumption",
        "tags": [
          "discovery"
        ]
      }
    },
    "/manifest.json": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "Manifest JSON"
          }
        },
        "summary": "Web App Manifest",
        "tags": [
          "utility"
        ]
      }
    },
    "/openapi.json": {
      "get": {
        "operationId": "getOpenApiSpec",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            },
            "description": "OpenAPI 3.1 JSON"
          }
        },
        "summary": "OpenAPI specification",
        "tags": [
          "discovery"
        ]
      }
    },
    "/privacy": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "HTML page"
          }
        },
        "summary": "Privacy policy",
        "tags": [
          "utility"
        ]
      }
    },
    "/robots.txt": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "robots.txt content"
          }
        },
        "summary": "robots.txt",
        "tags": [
          "utility"
        ]
      }
    },
    "/security.txt": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "security.txt"
          }
        },
        "summary": "security.txt (root)",
        "tags": [
          "utility"
        ]
      }
    },
    "/sitemap.xml": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "application/xml": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "XML sitemap"
          }
        },
        "summary": "Sitemap",
        "tags": [
          "utility"
        ]
      }
    },
    "/terms": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "HTML page"
          }
        },
        "summary": "Terms of service",
        "tags": [
          "utility"
        ]
      }
    },
    "/usage": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "days": {
                      "items": {
                        "properties": {
                          "date": {
                            "format": "date",
                            "type": "string"
                          },
                          "scans": {
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "generated": {
                      "format": "date",
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Usage stats"
          },
          "401": {
            "description": "Unauthorized"
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "summary": "Usage stats (admin, requires Bearer token)",
        "tags": [
          "utility"
        ]
      }
    },
    "/{domain}": {
      "get": {
        "operationId": "scanDomain",
        "parameters": [
          {
            "description": "Domain to scan (e.g. example.com)",
            "example": "example.com",
            "in": "path",
            "name": "domain",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScanResult"
                }
              },
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "Full scan result"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        },
        "summary": "Full HTTP scan for a domain",
        "tags": [
          "scan"
        ]
      }
    },
    "/{domain}/cache": {
      "get": {
        "operationId": "scanCache",
        "parameters": [
          {
            "in": "path",
            "name": "domain",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "_meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "cache": {
                      "$ref": "#/components/schemas/CacheResult"
                    },
                    "url": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Cache result"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        },
        "summary": "Cache behavior analysis",
        "tags": [
          "cache"
        ]
      }
    },
    "/{domain}/chain": {
      "get": {
        "operationId": "scanChain",
        "parameters": [
          {
            "in": "path",
            "name": "domain",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "_meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "redirect_chain": {
                      "$ref": "#/components/schemas/RedirectChainResult"
                    },
                    "url": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Redirect chain"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        },
        "summary": "Redirect chain trace",
        "tags": [
          "redirect"
        ]
      }
    },
    "/{domain}/cors": {
      "get": {
        "operationId": "scanCors",
        "parameters": [
          {
            "example": "example.com",
            "in": "path",
            "name": "domain",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "_meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "cors": {
                      "$ref": "#/components/schemas/CORSResult"
                    },
                    "url": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "CORS result"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        },
        "summary": "CORS-focused scan",
        "tags": [
          "cors"
        ]
      }
    },
    "/{domain}/csp": {
      "get": {
        "operationId": "scanCsp",
        "parameters": [
          {
            "in": "path",
            "name": "domain",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "_meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "csp": {
                      "$ref": "#/components/schemas/CSPResult"
                    },
                    "url": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "CSP result"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        },
        "summary": "CSP analysis",
        "tags": [
          "csp"
        ]
      }
    },
    "/{domain}/headers": {
      "get": {
        "operationId": "scanHeaders",
        "parameters": [
          {
            "in": "path",
            "name": "domain",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "_meta": {
                      "$ref": "#/components/schemas/Meta"
                    },
                    "security_headers": {
                      "$ref": "#/components/schemas/SecurityHeadersResult"
                    },
                    "url": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Headers result"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          }
        },
        "summary": "Security headers scan",
        "tags": [
          "headers"
        ]
      }
    }
  },
  "servers": [
    {
      "description": "Production",
      "url": "https://xhttp.lol"
    }
  ],
  "tags": [
    {
      "description": "Domain HTTP analysis",
      "name": "scan"
    },
    {
      "description": "CORS analysis & simulation",
      "name": "cors"
    },
    {
      "description": "Content Security Policy",
      "name": "csp"
    },
    {
      "description": "Security headers",
      "name": "headers"
    },
    {
      "description": "Redirect chain analysis",
      "name": "redirect"
    },
    {
      "description": "Cache behavior",
      "name": "cache"
    },
    {
      "description": "Service utility endpoints",
      "name": "utility"
    },
    {
      "description": "AI / agent discovery",
      "name": "discovery"
    }
  ]
}