{
  "openapi": "3.1.0",
  "info": {
    "title": "URLWACHE API",
    "version": "0.3.0",
    "description": "Domain risk, WHOIS/RDAP, DNS and x402-ready paid intelligence endpoints."
  },
  "servers": [
    {
      "url": "https://urlwache.de"
    }
  ],
  "paths": {
    "/api/analyze": {
      "post": {
        "summary": "Free preview domain analysis",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "target"
                ],
                "properties": {
                  "target": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Preview report"
          },
          "400": {
            "description": "Invalid target"
          }
        }
      }
    },
    "/api/tools/dns": {
      "get": {
        "summary": "Free DNS lookup",
        "parameters": [
          {
            "name": "target",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Domain or URL to analyze."
          },
          {
            "name": "types",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated DNS record types, for example A,MX,TXT."
          }
        ],
        "responses": {
          "200": {
            "description": "DNS lookup result"
          },
          "400": {
            "description": "Invalid target"
          }
        }
      }
    },
    "/api/tools/whois": {
      "get": {
        "summary": "Free WHOIS/RDAP lookup",
        "parameters": [
          {
            "name": "target",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Domain or URL to analyze."
          }
        ],
        "responses": {
          "200": {
            "description": "WHOIS/RDAP lookup result"
          },
          "400": {
            "description": "Invalid target"
          }
        }
      }
    },
    "/api/tools/blacklist": {
      "get": {
        "summary": "Free spam/abuse blacklist (DNSBL) check",
        "parameters": [
          {
            "name": "target",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Domain or URL to analyze."
          }
        ],
        "responses": {
          "200": {
            "description": "Blacklist check result"
          },
          "400": {
            "description": "Invalid target"
          }
        }
      }
    },
    "/api/tools/phone": {
      "post": {
        "summary": "Free offline phone-number validation",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "target"
                ],
                "properties": {
                  "target": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Phone validation result (valid, country, line type)"
          },
          "400": {
            "description": "Invalid target"
          }
        }
      }
    },
    "/api/paid/domain-intel": {
      "get": {
        "summary": "Paid single-domain live intelligence report",
        "parameters": [
          {
            "name": "target",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Domain or URL to analyze."
          }
        ],
        "responses": {
          "200": {
            "description": "Paid report"
          },
          "402": {
            "description": "x402 payment required"
          }
        }
      }
    },
    "/api/paid/batch-domain-intel": {
      "post": {
        "summary": "Paid batch domain intelligence report",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "targets"
                ],
                "properties": {
                  "targets": {
                    "type": "array",
                    "maxItems": 25,
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Paid batch report"
          },
          "402": {
            "description": "x402 payment required"
          }
        }
      }
    },
    "/api/mail/session": {
      "post": {
        "summary": "Create a one-time mail-test address",
        "responses": {
          "200": {
            "description": "Mail-test session with address and token"
          }
        }
      }
    },
    "/api/mail/result/{token}": {
      "get": {
        "summary": "Poll the email deliverability result",
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Deliverability analysis or waiting status"
          },
          "404": {
            "description": "Unknown or expired token"
          }
        }
      }
    }
  }
}
