{
  "openapi": "3.0.0",
  "info": {
    "title": "APImcp.site API",
    "version": "1.0",
    "description": "Free developer tool APIs — format, convert, generate, analyze. All endpoints return structured JSON.\n\nBase URL: https://apimcp.site/api/v1",
    "contact": {
      "email": "Ola@APImcp.site"
    }
  },
  "servers": [
    {
      "url": "https://apimcp.site",
      "description": "Production"
    }
  ],
  "paths": {
    "/api/v1/json-formatter": {
      "get": {
        "summary": "JSON Formatter",
        "description": "Validate, format, and inspect JSON. Returns structured data with keys, types, and pretty-printed output.",
        "parameters": [
          {
            "name": "input",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "JSON string to validate/format"
          },
          {
            "name": "indent",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Indent spaces (default: 2)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      },
      "post": {
        "summary": "JSON Formatter",
        "description": "Validate, format, and inspect JSON. Returns structured data with keys, types, and pretty-printed output.",
        "parameters": [
          {
            "name": "input",
            "in": "body",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "JSON string to validate/format"
          },
          {
            "name": "indent",
            "in": "body",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Indent spaces (default: 2)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/qr-code": {
      "get": {
        "summary": "QR Code Generator",
        "description": "Generate QR codes as SVG or PNG. Returns structured JSON metadata or raw SVG image.",
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Content to encode in QR"
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Image size in px (default: 256)"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "'svg' or 'json' (default: svg)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/hash": {
      "get": {
        "summary": "Hash Generator",
        "description": "Generate hashes using MD5, SHA-1, SHA-256, SHA-384, or SHA-512. Returns hex output + all algorithms.",
        "parameters": [
          {
            "name": "input",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Text to hash"
          },
          {
            "name": "algorithm",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "md5|sha1|sha256|sha384|sha512 (default: sha256)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      },
      "post": {
        "summary": "Hash Generator",
        "description": "Generate hashes using MD5, SHA-1, SHA-256, SHA-384, or SHA-512. Returns hex output + all algorithms.",
        "parameters": [
          {
            "name": "input",
            "in": "body",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Text to hash"
          },
          {
            "name": "algorithm",
            "in": "body",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "md5|sha1|sha256|sha384|sha512 (default: sha256)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/html-preview": {
      "get": {
        "summary": "HTML Preview",
        "description": "Preview HTML rendering. Returns rendered HTML or wrapped snippet.",
        "parameters": [
          {
            "name": "input",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "HTML content to render"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "'html' or 'json' (default: html)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      },
      "post": {
        "summary": "HTML Preview",
        "description": "Preview HTML rendering. Returns rendered HTML or wrapped snippet.",
        "parameters": [
          {
            "name": "input",
            "in": "body",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "HTML content to render"
          },
          {
            "name": "format",
            "in": "body",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "'html' or 'json' (default: html)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/color-converter": {
      "get": {
        "summary": "Color Converter",
        "description": "Convert between HEX, RGB, and HSL color formats.",
        "parameters": [
          {
            "name": "color",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Color value: #ff6600, rgb(255,102,0), or hsl(30,100%,50%)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/cron-builder": {
      "get": {
        "summary": "Cron Builder",
        "description": "Parse and explain cron expressions. Get field breakdowns and next run estimates.",
        "parameters": [
          {
            "name": "expression",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "5-field cron expression (e.g. '*/5 * * * *')"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/diff-checker": {
      "get": {
        "summary": "Diff Checker",
        "description": "Compare two texts and get structured diff output with line-level additions/removals.",
        "parameters": [
          {
            "name": "first",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "First text for comparison"
          },
          {
            "name": "second",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Second text for comparison"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      },
      "post": {
        "summary": "Diff Checker",
        "description": "Compare two texts and get structured diff output with line-level additions/removals.",
        "parameters": [
          {
            "name": "first",
            "in": "body",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "First text for comparison"
          },
          {
            "name": "second",
            "in": "body",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Second text for comparison"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/image-to-webp": {
      "get": {
        "summary": "Image to WebP",
        "description": "Convert images to WebP format via URL. Returns source metadata and WebP URL.",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Public URL of image to convert"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/svg-optimizer": {
      "get": {
        "summary": "SVG Optimizer",
        "description": "Optimize SVG markup: remove whitespace, comments, and redundant attributes.",
        "parameters": [
          {
            "name": "input",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "SVG markup to optimize"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      },
      "post": {
        "summary": "SVG Optimizer",
        "description": "Optimize SVG markup: remove whitespace, comments, and redundant attributes.",
        "parameters": [
          {
            "name": "input",
            "in": "body",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "SVG markup to optimize"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/base64": {
      "get": {
        "summary": "Base64 Encode/Decode",
        "description": "Encode or decode Base64 text. Returns both encoded and decoded output.",
        "parameters": [
          {
            "name": "input",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Text to encode/decode"
          },
          {
            "name": "action",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "'encode' or 'decode' (default: encode)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      },
      "post": {
        "summary": "Base64 Encode/Decode",
        "description": "Encode or decode Base64 text. Returns both encoded and decoded output.",
        "parameters": [
          {
            "name": "input",
            "in": "body",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Text to encode/decode"
          },
          {
            "name": "action",
            "in": "body",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "'encode' or 'decode' (default: encode)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/url-encoder": {
      "get": {
        "summary": "URL Encoder/Decoder",
        "description": "Encode or decode URL components with proper percent-encoding.",
        "parameters": [
          {
            "name": "input",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "URL to encode/decode"
          },
          {
            "name": "action",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "'encode' or 'decode' (default: encode)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      },
      "post": {
        "summary": "URL Encoder/Decoder",
        "description": "Encode or decode URL components with proper percent-encoding.",
        "parameters": [
          {
            "name": "input",
            "in": "body",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "URL to encode/decode"
          },
          {
            "name": "action",
            "in": "body",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "'encode' or 'decode' (default: encode)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/jwt-decoder": {
      "get": {
        "summary": "JWT Decoder",
        "description": "Decode JWT tokens. Returns header, payload, and metadata (issuer, expiry, etc).",
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "JWT token to decode"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/uuid": {
      "get": {
        "summary": "UUID Generator",
        "description": "Generate random UUID v4 identifiers. Batch up to 100 at once.",
        "parameters": [
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Number of UUIDs (1-100, default: 1)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/token-counter": {
      "get": {
        "summary": "Token Counter",
        "description": "Count tokens, words, characters, and estimate reading time for any text.",
        "parameters": [
          {
            "name": "input",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Text to analyze"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      },
      "post": {
        "summary": "Token Counter",
        "description": "Count tokens, words, characters, and estimate reading time for any text.",
        "parameters": [
          {
            "name": "input",
            "in": "body",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Text to analyze"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/text-summarizer": {
      "get": {
        "summary": "Text Summarizer",
        "description": "Extractive text summarization using frequency scoring. Returns top N most relevant sentences.",
        "parameters": [
          {
            "name": "input",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Long text to summarize"
          },
          {
            "name": "sentences",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Number of summary sentences (default: 3)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      },
      "post": {
        "summary": "Text Summarizer",
        "description": "Extractive text summarization using frequency scoring. Returns top N most relevant sentences.",
        "parameters": [
          {
            "name": "input",
            "in": "body",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Long text to summarize"
          },
          {
            "name": "sentences",
            "in": "body",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Number of summary sentences (default: 3)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/case-converter": {
      "get": {
        "summary": "Case Converter",
        "description": "Convert text between upper, lower, title, sentence, camelCase, snake_case, kebab-case, and PascalCase.",
        "parameters": [
          {
            "name": "input",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Text to convert"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      },
      "post": {
        "summary": "Case Converter",
        "description": "Convert text between upper, lower, title, sentence, camelCase, snake_case, kebab-case, and PascalCase.",
        "parameters": [
          {
            "name": "input",
            "in": "body",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Text to convert"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/base-converter": {
      "get": {
        "summary": "Base Converter",
        "description": "Convert numbers between binary, octal, decimal, hex, and any custom base.",
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Number to convert"
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Source base (default: 10)"
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Target base (default: 16)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/unit-converter": {
      "get": {
        "summary": "Unit Converter",
        "description": "Convert between units of length, mass, volume, and temperature. Returns all conversions.",
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": true,
            "schema": {
              "type": "number"
            },
            "description": "Numeric value to convert"
          },
          {
            "name": "from",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Source unit (m, km, ft, kg, lb, L, gal, C, F, etc.)"
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Target unit"
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "length|mass|volume|temperature (default: length)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/password-generator": {
      "get": {
        "summary": "Password Generator",
        "description": "Generate cryptographically secure random passwords with configurable character sets.",
        "parameters": [
          {
            "name": "length",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Password length (4-128, default: 20)"
          },
          {
            "name": "upper",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Include uppercase (default: true)"
          },
          {
            "name": "lower",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Include lowercase (default: true)"
          },
          {
            "name": "digits",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Include digits (default: true)"
          },
          {
            "name": "symbols",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Include symbols (default: false)"
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Number of passwords (1-20, default: 1)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/lorem-ipsum": {
      "get": {
        "summary": "Lorem Ipsum Generator",
        "description": "Generate lorem ipsum placeholder text. Configurable paragraphs and words.",
        "parameters": [
          {
            "name": "paragraphs",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Number of paragraphs (1-50, default: 3)"
          },
          {
            "name": "words",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Words per paragraph (5-500, default: 50)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/countries": {
      "get": {
        "summary": "Country Data",
        "description": "Get country data by code, search, or list all. Returns name, capital, currency, calling code, flag, region.",
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "2-letter country code (NO, US, GB)"
          },
          {
            "name": "code3",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "3-letter country code (NOR, USA, GBR)"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Search by name, code, or capital"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/ip": {
      "get": {
        "summary": "IP Geolocation",
        "description": "Get geographic info for an IP address. Self-lookup uses Cloudflare native data; specific IP uses ip-api.com.",
        "parameters": [
          {
            "name": "ip",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "IP address to look up (omit for your own IP)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/currency": {
      "get": {
        "summary": "Currency Converter",
        "description": "Convert between currencies at live exchange rates. Returns rate, result, and source data.",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Source currency code (default: USD)"
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Target currency code"
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Amount to convert (default: 1)"
          },
          {
            "name": "list",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Set true to list supported currencies"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/email-verify": {
      "get": {
        "summary": "Email Verify",
        "description": "Validate email addresses: syntax check, MX record lookup, disposable domain detection, role-based detection, typo suggestions.",
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Email address to verify"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/og-image": {
      "get": {
        "summary": "OG Image Generator",
        "description": "Generate Open Graph social share images (1200x630 SVG). Customize title, description, site name, colors, and logo.",
        "parameters": [
          {
            "name": "title",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Main title text"
          },
          {
            "name": "description",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Subtitle or description"
          },
          {
            "name": "site",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Site/company name"
          },
          {
            "name": "bg",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Background color hex (default: #0f172a)"
          },
          {
            "name": "color",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Text color hex (default: #ffffff)"
          },
          {
            "name": "accent",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Accent color hex (default: #a855f7)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/iban-validator": {
      "get": {
        "summary": "IBAN Validator",
        "description": "Validate international bank account numbers (IBAN). Checks country support, length, format, and MOD-97 check digits.",
        "parameters": [
          {
            "name": "iban",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "IBAN to validate"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/vat-validator": {
      "get": {
        "summary": "VAT Validator",
        "description": "Validate EU/EEA VAT numbers against official country formats. Detects country from prefix, validates format.",
        "parameters": [
          {
            "name": "vat",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "VAT number to validate (e.g. NO123456789MVA)"
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Country code hint (AT, DE, NO, etc.)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/phone": {
      "get": {
        "summary": "Phone Validator/Formatter",
        "description": "Validate and format phone numbers. Detects country from prefix, checks length, formats to E.164.",
        "parameters": [
          {
            "name": "phone",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Phone number to validate"
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Country hint (NO, US, GB, etc.)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/json-to-ts": {
      "get": {
        "summary": "JSON to TypeScript",
        "description": "Convert JSON objects to TypeScript interface definitions. Handles nested objects, arrays, and primitive types.",
        "parameters": [
          {
            "name": "input",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "JSON string to convert"
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Interface name (default: RootObject)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      },
      "post": {
        "summary": "JSON to TypeScript",
        "description": "Convert JSON objects to TypeScript interface definitions. Handles nested objects, arrays, and primitive types.",
        "parameters": [
          {
            "name": "input",
            "in": "body",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "JSON string to convert"
          },
          {
            "name": "name",
            "in": "body",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Interface name (default: RootObject)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/css-inliner": {
      "get": {
        "summary": "CSS Inliner",
        "description": "Inline CSS from HTML style tags into element style attributes. Cleaner email HTML.",
        "parameters": [
          {
            "name": "html",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "HTML with CSS to inline"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      },
      "post": {
        "summary": "CSS Inliner",
        "description": "Inline CSS from HTML style tags into element style attributes. Cleaner email HTML.",
        "parameters": [
          {
            "name": "html",
            "in": "body",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "HTML with CSS to inline"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/keys": {
      "get": {
        "summary": "API Key Management",
        "description": "Create, list, and revoke API keys. POST /create, GET /keys?email=, POST /revoke.",
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Email for key creation/list"
          },
          {
            "name": "tier",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "starter|growth|scale (default: starter)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      },
      "post": {
        "summary": "API Key Management",
        "description": "Create, list, and revoke API keys. POST /create, GET /keys?email=, POST /revoke.",
        "parameters": [
          {
            "name": "email",
            "in": "body",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Email for key creation/list"
          },
          {
            "name": "tier",
            "in": "body",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "starter|growth|scale (default: starter)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/credit-card": {
      "get": {
        "summary": "Credit Card BIN Lookup",
        "description": "Validate credit card numbers (Luhn) and detect brand, scheme, and BIN info.",
        "parameters": [
          {
            "name": "card",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Card number"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/domain-reputation": {
      "get": {
        "summary": "Domain Reputation",
        "description": "Check if a domain is disposable, suspicious, or free email provider. Includes risk scoring.",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Domain to check"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/password-strength": {
      "get": {
        "summary": "Password Strength Checker",
        "description": "Entropy-based password strength scoring. Checks length, character variety, common patterns.",
        "parameters": [
          {
            "name": "password",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Password to evaluate"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/ssn-validator": {
      "get": {
        "summary": "SSN/Personnummer Validator",
        "description": "Validate social security numbers for NO, SE, DK. Checksum validation, gender detection, birth date extraction.",
        "parameters": [
          {
            "name": "ssn",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Number to validate"
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "NO, SE, or DK (default: NO)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/org-enrichment": {
      "get": {
        "summary": "Company/Org Enrichment",
        "description": "Norwegian org number lookup. Returns name, address, industry, employees, status via Brreg API.",
        "parameters": [
          {
            "name": "org",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Org number (9 digits)"
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Company name search"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/url-safety": {
      "get": {
        "summary": "URL Safety Check",
        "description": "Scan URLs for suspicious patterns, phishing indicators, and security risks.",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "URL to check"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/list-cleaner": {
      "get": {
        "summary": "List Cleaner",
        "description": "Deduplicate and validate email or phone number lists. Returns cleaned list and invalid entries.",
        "parameters": [
          {
            "name": "list",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Newline-separated list"
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "email or phone (default: email)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/image-optimizer": {
      "get": {
        "summary": "Image Optimizer",
        "description": "Optimize images: resize, compress, convert format (WebP/AVIF). Uses CF Images binding.",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Image URL"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "webp|jpeg|avif (default: webp)"
          },
          {
            "name": "width",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Target width"
          },
          {
            "name": "quality",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Quality 1-100 (default: 80)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/image-palette": {
      "get": {
        "summary": "Image Color Palette",
        "description": "Extract dominant colors from images. Returns hex, RGB, and weight for top colors.",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Image URL"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/barcode": {
      "get": {
        "summary": "Barcode Generator",
        "description": "Generate barcodes and QR codes. Supports Code128, Code39, EAN-13, UPC-A, DataMatrix, PDF417, QR.",
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Data to encode"
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "code128|code39|ean13|upca|qrcode|datamatrix|pdf417"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "png or json"
          },
          {
            "name": "scale",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Scale factor (default: 3)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/image-watermark": {
      "get": {
        "summary": "Image Watermark",
        "description": "Add text watermark to images. Customizable position, opacity, and text.",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Image URL"
          },
          {
            "name": "text",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Watermark text (default: APImcp.site)"
          },
          {
            "name": "position",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "top-left|top-right|bottom-left|bottom-right|center"
          },
          {
            "name": "opacity",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Opacity percent (0-100)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/json-csv": {
      "get": {
        "summary": "JSON to CSV / CSV to JSON",
        "description": "Bidirectional conversion between JSON arrays and CSV tables.",
        "parameters": [
          {
            "name": "input",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Input data"
          },
          {
            "name": "action",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "json2csv or csv2json"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/yaml-json": {
      "get": {
        "summary": "YAML to JSON / JSON to YAML",
        "description": "Bidirectional conversion between YAML and JSON formats.",
        "parameters": [
          {
            "name": "input",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Input data"
          },
          {
            "name": "action",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "yaml2json or json2yaml"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/sql-formatter": {
      "get": {
        "summary": "SQL Formatter",
        "description": "Pretty-print SQL queries. Supports multiple SQL dialects, uppercase keywords, configurable indent.",
        "parameters": [
          {
            "name": "sql",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "SQL query to format"
          },
          {
            "name": "language",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "sql|mysql|postgresql|bigquery|tsql"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/json-schema": {
      "get": {
        "summary": "JSON Schema Generator",
        "description": "Infer JSON Schema from sample JSON data. Detects types, formats, required fields.",
        "parameters": [
          {
            "name": "input",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Sample JSON data"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/xml-json": {
      "get": {
        "summary": "XML to JSON / JSON to XML",
        "description": "Bidirectional conversion between XML and JSON. Preserves attributes.",
        "parameters": [
          {
            "name": "input",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Input data"
          },
          {
            "name": "action",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "xml2json or json2xml"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/dns-lookup": {
      "get": {
        "summary": "DNS Lookup",
        "description": "Look up DNS records: A, AAAA, MX, TXT, NS, CNAME, SOA, SRV, CAA, TLSA.",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Domain name"
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "a|aaaa|mx|txt|ns|cname|soa"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/ssl-info": {
      "get": {
        "summary": "SSL/TLS Certificate Info",
        "description": "Get SSL certificate details for a domain. Links to SSLLabs, crt.sh, Security Headers.",
        "parameters": [
          {
            "name": "host",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Hostname to check"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/whois": {
      "get": {
        "summary": "WHOIS Domain Lookup",
        "description": "Domain registration info via RDAP. Returns registrar, dates, name servers, status.",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Domain name"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/fake-data": {
      "get": {
        "summary": "Fake Data Generator",
        "description": "Generate realistic fake data: names, emails, phones, companies, addresses, IBANs. Up to 100 records.",
        "parameters": [
          {
            "name": "locale",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "en|nb_NO|sv|de|fr|es"
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Records to generate (1-100)"
          },
          {
            "name": "fields",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated field names"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/ai-text-rewrite": {
      "get": {
        "summary": "AI Text Rewriter",
        "description": "Rewrite text in different tones (professional, casual, formal, friendly, humorous). Uses Workers AI — no external API.",
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Text to rewrite"
          },
          {
            "name": "tone",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "professional|casual|formal|friendly|humorous|persuasive (default: professional)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/ai-grammar": {
      "get": {
        "summary": "AI Grammar Check",
        "description": "Fix grammar and spelling errors in text using AI. Returns corrected version.",
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Text to check"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/ai-sentiment": {
      "get": {
        "summary": "AI Sentiment Analysis",
        "description": "Analyze sentiment (positive/negative/neutral) and detect emotions (joy, anger, sadness, fear, surprise) in text.",
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Text to analyze"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/ai-translate": {
      "get": {
        "summary": "AI Translation",
        "description": "Translate text between 50+ languages using Workers AI. Zero external API cost.",
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Text to translate"
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Target language code (default: en)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/ai-seo": {
      "get": {
        "summary": "AI SEO Generator",
        "description": "Generate SEO-optimized title tags and meta descriptions from content.",
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Content to generate SEO for"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/ai-hashtags": {
      "get": {
        "summary": "AI Hashtag Generator",
        "description": "Generate relevant hashtags for social media from content.",
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Content to generate hashtags for"
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Number of hashtags (default: 5)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/ai-faq": {
      "get": {
        "summary": "AI FAQ Generator",
        "description": "Generate FAQ questions and answers from content.",
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Content to generate FAQs from"
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Number of FAQs (default: 3)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/ai-blog-outline": {
      "get": {
        "summary": "AI Blog Outline Generator",
        "description": "Generate blog post outlines with headings and bullet points from a topic.",
        "parameters": [
          {
            "name": "topic",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Blog topic"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/ai-product-desc": {
      "get": {
        "summary": "AI Product Description",
        "description": "Write compelling product descriptions with tagline, benefits, and CTA.",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Product name"
          },
          {
            "name": "features",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Key features comma-separated"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/ai-social-post": {
      "get": {
        "summary": "AI Social Media Post",
        "description": "Generate social media posts for Twitter, LinkedIn, or Facebook from content.",
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Content to post about"
          },
          {
            "name": "platform",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "twitter|linkedin|facebook (default: twitter)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/ai-summarize": {
      "get": {
        "summary": "AI Summarizer",
        "description": "Summarize long text into concise bullet points using AI. Better than TF-IDF version.",
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Text to summarize"
          },
          {
            "name": "bullets",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Number of bullet points (default: 3)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/email-syntax": {
      "get": {
        "summary": "Email Syntax Checker",
        "description": "RFC 5322 email syntax validation with detailed breakdown of local part and domain.",
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Email address to validate"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/email-role": {
      "get": {
        "summary": "Email Role Account Detector",
        "description": "Detect if email is a role-based account (admin@, info@, support@, etc.).",
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Email address"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/email-temp": {
      "get": {
        "summary": "Temporary Email Detector",
        "description": "Check if email uses a known temporary/disposable domain.",
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Email address"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/email-typosquat": {
      "get": {
        "summary": "Email Typosquat Detector",
        "description": "Detect homoglyph and typosquat domains (g00gle.com vs google.com).",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Domain to check"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/email-deliverability": {
      "get": {
        "summary": "Email Deliverability Score",
        "description": "Composite score (0-100) based on syntax, role detection, temporary domain, and domain length.",
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Email address"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/mx-lookup": {
      "get": {
        "summary": "MX Record Lookup",
        "description": "Check MX records for a domain via Cloudflare DNS-over-HTTPS. Lists mail exchange servers with priorities.",
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Domain to look up"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/pdf-page-count": {
      "get": {
        "summary": "PDF Page Count",
        "description": "Get page count from uploaded PDF. POST with PDF binary.",
        "parameters": [
          {
            "name": "body",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "PDF file in request body (POST)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      },
      "post": {
        "summary": "PDF Page Count",
        "description": "Get page count from uploaded PDF. POST with PDF binary.",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "PDF file in request body (POST)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/pdf-merge": {
      "get": {
        "summary": "PDF Merge",
        "description": "Merge multiple PDFs into one. POST with 2+ files as form-data 'file' fields.",
        "parameters": [
          {
            "name": "file",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Form-data file field (multiple)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      },
      "post": {
        "summary": "PDF Merge",
        "description": "Merge multiple PDFs into one. POST with 2+ files as form-data 'file' fields.",
        "parameters": [
          {
            "name": "file",
            "in": "body",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Form-data file field (multiple)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/pdf-split": {
      "get": {
        "summary": "PDF Split",
        "description": "Split a PDF into individual pages. POST with PDF binary.",
        "parameters": [
          {
            "name": "body",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "PDF file in request body (POST)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      },
      "post": {
        "summary": "PDF Split",
        "description": "Split a PDF into individual pages. POST with PDF binary.",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "PDF file in request body (POST)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/pdf-info": {
      "get": {
        "summary": "PDF Metadata",
        "description": "Extract PDF metadata (title, author, subject, keywords, page count). POST with PDF binary.",
        "parameters": [
          {
            "name": "body",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "PDF file in request body (POST)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      },
      "post": {
        "summary": "PDF Metadata",
        "description": "Extract PDF metadata (title, author, subject, keywords, page count). POST with PDF binary.",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "PDF file in request body (POST)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/invoice-generator": {
      "get": {
        "summary": "Invoice Generator",
        "description": "Generate a professional PDF invoice from parameters. Returns downloadable PDF.",
        "parameters": [
          {
            "name": "recipient",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Recipient name"
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Invoice amount"
          },
          {
            "name": "invoice",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Invoice number"
          },
          {
            "name": "items",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Item description"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/certificate-generator": {
      "get": {
        "summary": "Certificate Generator",
        "description": "Generate a completion/achievement certificate as PDF.",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Recipient name"
          },
          {
            "name": "course",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Course/completion description"
          },
          {
            "name": "issuer",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Issuing organization"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/curl-to-code": {
      "get": {
        "summary": "cURL to Code Converter",
        "description": "Convert cURL commands to Python, JavaScript, Go, Rust, or PHP code.",
        "parameters": [
          {
            "name": "curl",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "cURL command to convert"
          },
          {
            "name": "language",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "python|javascript|node|go|rust|php (default: python)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/html-to-markdown": {
      "get": {
        "summary": "HTML to Markdown",
        "description": "Convert HTML documents to clean Markdown format.",
        "parameters": [
          {
            "name": "html",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "HTML content"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/markdown-to-html": {
      "get": {
        "summary": "Markdown to HTML",
        "description": "Render Markdown to HTML with full CommonMark support.",
        "parameters": [
          {
            "name": "markdown",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Markdown content"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/rss-to-json": {
      "get": {
        "summary": "RSS/Atom to JSON",
        "description": "Parse RSS or Atom feeds into structured JSON with items, categories, and metadata.",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "RSS/Atom feed URL"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/jsonpath-query": {
      "get": {
        "summary": "JSONPath Query",
        "description": "Query JSON data using JSONPath expressions. Extract specific values from complex structures.",
        "parameters": [
          {
            "name": "json",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "JSON data"
          },
          {
            "name": "path",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "JSONPath expression (default: $)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/html-to-text": {
      "get": {
        "summary": "HTML to Plain Text",
        "description": "Strip HTML tags and extract clean plain text from HTML content.",
        "parameters": [
          {
            "name": "html",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "HTML content"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/user-agent-parse": {
      "get": {
        "summary": "User Agent Parser",
        "description": "Parse User-Agent strings into browser, OS, device, and CPU info.",
        "parameters": [
          {
            "name": "ua",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "User-Agent string (uses request header if omitted)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/hmac-generator": {
      "get": {
        "summary": "HMAC Generator",
        "description": "Generate HMAC signatures using SHA-256, SHA-384, or SHA-512.",
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Text to sign"
          },
          {
            "name": "key",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Secret key (default: 'secret')"
          },
          {
            "name": "algorithm",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "sha256|sha384|sha512 (default: sha256)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/jwt-validate": {
      "get": {
        "summary": "JWT Decode + Validate",
        "description": "Decode JWT tokens, check expiry, and inspect header/payload claims.",
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "JWT token"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/cors-check": {
      "get": {
        "summary": "CORS Checker",
        "description": "Test if a URL allows cross-origin requests from a specific origin.",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "URL to test"
          },
          {
            "name": "origin",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Origin to test (default: https://example.com)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/ssl-check": {
      "get": {
        "summary": "SSL/TLS Checker",
        "description": "Check SSL/TLS status for a domain. Links to SSL Labs, crt.sh, and Security Headers.",
        "parameters": [
          {
            "name": "host",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Hostname to check"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/timezone-by-coord": {
      "get": {
        "summary": "Timezone by Coordinates",
        "description": "Approximate timezone from latitude/longitude (based on longitude 15°/hour).",
        "parameters": [
          {
            "name": "lat",
            "in": "query",
            "required": true,
            "schema": {
              "type": "number"
            },
            "description": "Latitude"
          },
          {
            "name": "lng",
            "in": "query",
            "required": true,
            "schema": {
              "type": "number"
            },
            "description": "Longitude"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/timezone-by-city": {
      "get": {
        "summary": "Timezone by City",
        "description": "Look up timezone, UTC offset, and DST info for major cities worldwide.",
        "parameters": [
          {
            "name": "city",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "City name"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/distance": {
      "get": {
        "summary": "Distance Calculator",
        "description": "Calculate distance between two coordinates in km, miles, and nautical miles.",
        "parameters": [
          {
            "name": "lat1",
            "in": "query",
            "required": true,
            "schema": {
              "type": "number"
            },
            "description": "First latitude"
          },
          {
            "name": "lng1",
            "in": "query",
            "required": true,
            "schema": {
              "type": "number"
            },
            "description": "First longitude"
          },
          {
            "name": "lat2",
            "in": "query",
            "required": true,
            "schema": {
              "type": "number"
            },
            "description": "Second latitude"
          },
          {
            "name": "lng2",
            "in": "query",
            "required": true,
            "schema": {
              "type": "number"
            },
            "description": "Second longitude"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/page-info": {
      "get": {
        "summary": "Page Info Extractor",
        "description": "Extract title, meta description, OG tags, H1s, and word count from a URL.",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Page URL"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/link-checker": {
      "get": {
        "summary": "Broken Link Checker",
        "description": "Check if a URL returns a 4xx/5xx status (HEAD request).",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "URL to check"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/readability": {
      "get": {
        "summary": "Readability Score",
        "description": "Calculate Flesch Reading Ease, Flesch-Kincaid Grade Level, and text statistics.",
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Text to analyze"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/sitemap-parse": {
      "get": {
        "summary": "Sitemap Parser",
        "description": "Parse sitemap.xml files into URL lists. Supports both urlset and sitemapindex.",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Sitemap.xml URL"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/business-days": {
      "get": {
        "summary": "Business Days Calculator",
        "description": "Calculate working days, weekends, and total days between two dates.",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Start date (YYYY-MM-DD)"
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "End date (YYYY-MM-DD)"
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Country code for holidays (optional)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/holidays": {
      "get": {
        "summary": "Holiday Calendar",
        "description": "Get public holidays for a country and year (NO, UK, US supported).",
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Year (default: current)"
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "NO|UK|US (default: NO)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/industry-code": {
      "get": {
        "summary": "Industry Code Lookup",
        "description": "Look up NACE industry codes or search by keyword.",
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "NACE code (e.g. 62)"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Search by industry name keyword"
          },
          {
            "name": "system",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "nace|naics (default: nace)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/timestamp": {
      "get": {
        "summary": "Timestamp Converter",
        "description": "Convert between Unix timestamps and human-readable dates. Get current time or convert any value.",
        "parameters": [
          {
            "name": "value",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Unix timestamp or ISO date (empty = current time)"
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "unix|iso (default: unix)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/age-calc": {
      "get": {
        "summary": "Age Calculator",
        "description": "Calculate exact age from birthdate — years, months, days, and days until next birthday.",
        "parameters": [
          {
            "name": "dob",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Birthdate (YYYY-MM-DD)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/week-number": {
      "get": {
        "summary": "ISO Week Number",
        "description": "Get the ISO 8601 week number, day of year, and days in year for any date.",
        "parameters": [
          {
            "name": "date",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Date (YYYY-MM-DD, default: today)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/random": {
      "get": {
        "summary": "Random Generator",
        "description": "Generate random numbers, strings, UUIDs, bytes, or booleans. Uses Web Crypto for true randomness.",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "number|string|uuid|bytes|boolean (default: number)"
          },
          {
            "name": "length",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Length for strings/bytes (default: 8)"
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "How many to generate (default: 1, max: 100)"
          },
          {
            "name": "min",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Min value for numbers (default: 0)"
          },
          {
            "name": "max",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Max value for numbers (default: 100)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/uuid-v7": {
      "get": {
        "summary": "UUID v7 Generator",
        "description": "Generate time-sortable UUID v7 identifiers. Unlike UUID v4, these encode the timestamp for chronological ordering.",
        "parameters": [
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Number of UUIDs (default: 1, max: 100)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/nanoid": {
      "get": {
        "summary": "NanoID Generator",
        "description": "Generate compact, URL-safe unique IDs in the NanoID format. Customizable length and alphabet.",
        "parameters": [
          {
            "name": "length",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "ID length (default: 21, max: 256)"
          },
          {
            "name": "alphabet",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Custom alphabet (default: URL-safe)"
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Number of IDs (default: 1, max: 100)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/math-eval": {
      "get": {
        "summary": "Math Expression Evaluator",
        "description": "Safely evaluate arithmetic expressions. Supports +, -, *, /, %, ^, parentheses, and functions like sqrt(), abs(), sin(), cos().",
        "parameters": [
          {
            "name": "expr",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Math expression (e.g. (2+3)*4 or sqrt(144))"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/slug-generator": {
      "get": {
        "summary": "Slug Generator",
        "description": "Convert text into URL-friendly slugs. Handles Unicode normalization, custom separators, and length limits.",
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Text to slugify"
          },
          {
            "name": "separator",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Separator character (default: -)"
          },
          {
            "name": "lowercase",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "true|false (default: true)"
          },
          {
            "name": "max_length",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Max slug length"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/text-statistics": {
      "get": {
        "summary": "Text Statistics",
        "description": "Analyze text for word count, sentence count, readability, vocabulary density, and character composition.",
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Text to analyze"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/html-encoder": {
      "get": {
        "summary": "HTML Encoder/Decoder",
        "description": "Encode or decode HTML entities (&, <, >, \", ') for safe HTML rendering.",
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Text to encode/decode"
          },
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "encode|decode (default: encode)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/unicode-util": {
      "get": {
        "summary": "Unicode Utility",
        "description": "Escape or unescape Unicode characters in text (\\uXXXX format).",
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Text to process"
          },
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "escape|unescape (default: escape)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/levenshtein": {
      "get": {
        "summary": "Levenshtein Distance",
        "description": "Calculate the Levenshtein edit distance and similarity ratio between two strings.",
        "parameters": [
          {
            "name": "a",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "First string"
          },
          {
            "name": "b",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Second string"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/base32": {
      "get": {
        "summary": "Base32 Encode/Decode",
        "description": "Encode or decode data using RFC 4648 Base32 encoding.",
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Text to encode/decode"
          },
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "encode|decode (default: encode)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/base58": {
      "get": {
        "summary": "Base58 Encode/Decode",
        "description": "Encode or decode data using Bitcoin-style Base58 encoding (no look-alike characters).",
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Text to encode/decode"
          },
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "encode|decode (default: encode)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/subnet-calc": {
      "get": {
        "summary": "Subnet Calculator",
        "description": "Calculate network address, broadcast address, subnet mask, and host ranges for any IPv4 CIDR range.",
        "parameters": [
          {
            "name": "cidr",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "CIDR notation (e.g. 192.168.1.0/24)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/ip-validator": {
      "get": {
        "summary": "IP Address Validator",
        "description": "Validate IPv4 and IPv6 addresses. Detects private, reserved, and multicast ranges.",
        "parameters": [
          {
            "name": "ip",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "IP address to validate"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/cidr-parse": {
      "get": {
        "summary": "CIDR Range Parser",
        "description": "Expand a CIDR block into its individual IP addresses. Shows network address and total address count.",
        "parameters": [
          {
            "name": "cidr",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "CIDR notation (e.g. 10.0.0.0/28)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/http-status": {
      "get": {
        "summary": "HTTP Status Code Lookup",
        "description": "Look up HTTP status codes by number — get name, class, and description for any code.",
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "HTTP status code (e.g. 404)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/mime-lookup": {
      "get": {
        "summary": "MIME Type Lookup",
        "description": "Look up MIME types by file extension, or get the complete list of 60+ supported types.",
        "parameters": [
          {
            "name": "ext",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "File extension (e.g. .json, .png)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/port-common": {
      "get": {
        "summary": "Common Port Lookup",
        "description": "Look up common port numbers — get service name, protocol, and description.",
        "parameters": [
          {
            "name": "port",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Port number (e.g. 443)"
          },
          {
            "name": "protocol",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Filter by protocol: tcp|udp"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/jwt-encode": {
      "get": {
        "summary": "JWT Token Encoder",
        "description": "Create signed JWT tokens with a JSON payload using HS256 (HMAC-SHA256).",
        "parameters": [
          {
            "name": "payload",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "JSON payload for the token"
          },
          {
            "name": "secret",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Secret key for signing (default: apimcp-secret)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/toml-parser": {
      "get": {
        "summary": "TOML Parser",
        "description": "Convert between TOML and JSON formats. Parse TOML config files or generate TOML from JSON.",
        "parameters": [
          {
            "name": "toml",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "TOML or JSON content"
          },
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "toml2json|json2toml (default: toml2json)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/ini-parser": {
      "get": {
        "summary": "INI Parser",
        "description": "Convert between INI and JSON formats. Parse INI config files or generate INI from JSON.",
        "parameters": [
          {
            "name": "ini",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "INI or JSON content"
          },
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "ini2json|json2ini (default: ini2json)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/env-util": {
      "get": {
        "summary": "Environment (.env) Utility",
        "description": "Parse .env files into structured JSON, validate variable names, or generate .env from JSON.",
        "parameters": [
          {
            "name": "env",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": ".env content or JSON object"
          },
          {
            "name": "mode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "parse|generate (default: parse)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/dockerfile-gen": {
      "get": {
        "summary": "Dockerfile Generator",
        "description": "Generate production-ready Dockerfiles for Node.js, Python, Go, Rust, Deno, or static sites.",
        "parameters": [
          {
            "name": "language",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "node|python|go|rust|static|deno (default: node)"
          },
          {
            "name": "port",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number"
            },
            "description": "Exposed port (default: 3000)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/gitignore-gen": {
      "get": {
        "summary": ".gitignore Generator",
        "description": "Generate .gitignore templates for common languages and frameworks.",
        "parameters": [
          {
            "name": "language",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "node|python|go|rust|java|php|ruby|swift|elixir (default: node)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/license-gen": {
      "get": {
        "summary": "License Generator",
        "description": "Generate open-source license text for MIT, Apache 2.0, GPLv3, BSD 2/3-Clause, or Unlicense.",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "mit|apache|gpl3|bsd2|bsd3|unlicense (default: mit)"
          },
          {
            "name": "year",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Copyright year (default: current year)"
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Copyright holder (default: APImcp.site)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/chart-generator": {
      "get": {
        "summary": "SVG Chart Generator",
        "description": "Generate beautiful SVG charts (bar, line, pie) from JSON data. Returns chart as SVG or JSON metadata. Dark theme, axis labels, legends.",
        "parameters": [
          {
            "name": "data",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "JSON array: [{\"label\":\"x\",\"value\":5},...]"
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "bar|line|pie (default: bar)"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "json (metadata+SVG) or svg (raw image)"
          },
          {
            "name": "title",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Chart title"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/webhook-bin": {
      "get": {
        "summary": "Webhook Test Bin",
        "description": "Create temporary webhook endpoints for testing. GET ?create=1 to create, POST /webhook-bin/<id> to capture, GET /webhook-bin/<id> to inspect. Auto-expires after 24h.",
        "parameters": [
          {
            "name": "create",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Set to create a new webhook bin"
          },
          {
            "name": "id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Bin ID (from URL path)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      },
      "post": {
        "summary": "Webhook Test Bin",
        "description": "Create temporary webhook endpoints for testing. GET ?create=1 to create, POST /webhook-bin/<id> to capture, GET /webhook-bin/<id> to inspect. Auto-expires after 24h.",
        "parameters": [
          {
            "name": "create",
            "in": "body",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Set to create a new webhook bin"
          },
          {
            "name": "id",
            "in": "body",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Bin ID (from URL path)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/http-debugger": {
      "get": {
        "summary": "HTTP Debugger",
        "description": "Make arbitrary HTTP requests and get full debug info: timing, redirect chain, response headers, body preview, TLS version, and server info.",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "URL to debug"
          },
          {
            "name": "method",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "GET|POST|HEAD|PUT|DELETE (default: GET)"
          },
          {
            "name": "headers",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "JSON object of custom headers"
          },
          {
            "name": "body",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Request body for POST/PUT"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/regex-tester": {
      "get": {
        "summary": "Regex Tester & Explainer",
        "description": "Test regular expressions against text. Shows all matches with positions, capturing groups, named groups, and explains what each pattern component does.",
        "parameters": [
          {
            "name": "pattern",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Regex pattern"
          },
          {
            "name": "text",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Text to test against"
          },
          {
            "name": "flags",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Regex flags (g, i, m, s, u) default: g"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/cron-explainer": {
      "get": {
        "summary": "Cron Expression Explainer",
        "description": "Parse cron expressions into human-readable descriptions. Shows field breakdown, next 5 run times in ISO 8601, and schedule summary.",
        "parameters": [
          {
            "name": "expression",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "5-field cron expression (e.g. '*/15 * * * *')"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/code-formatter": {
      "get": {
        "summary": "Code Formatter",
        "description": "Format code in JSON, CSS, JavaScript, TypeScript, and HTML. Returns formatted code with size comparison.",
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Code to format"
          },
          {
            "name": "language",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "json|css|javascript|typescript|html (default: json)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/ip-info": {
      "get": {
        "summary": "IP Info Suite",
        "description": "Full IP intelligence using Cloudflare headers: country, city, ASN, threat score, TLS version, bot score, latency. Works automatically for your IP too.",
        "parameters": [
          {
            "name": "ip",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "IP address (omit for your own IP via Cloudflare headers)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/duration-calculator": {
      "get": {
        "summary": "Date Duration Calculator",
        "description": "Calculate precise time between two dates. Returns ms, seconds, minutes, hours, days, weeks, months, years + human-readable summary.",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Start date (ISO 8601: 2026-01-15 or 2026-01-15T14:30:00Z)"
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "End date (ISO 8601)"
          },
          {
            "name": "action",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "diff (default: diff)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/bulk-checker": {
      "get": {
        "summary": "Bulk URL Health Check",
        "description": "Check up to 20 URLs simultaneously. Returns status codes, response times, and summary statistics (alive/dead, average latency, success rate).",
        "parameters": [
          {
            "name": "urls",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Comma or newline-separated URLs to check (max 20)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/json-to-table": {
      "get": {
        "summary": "JSON to HTML Table",
        "description": "Convert JSON arrays/objects into beautiful dark-themed HTML tables. Returns HTML or JSON with the rendered HTML.",
        "parameters": [
          {
            "name": "json",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "JSON data to convert"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "json (default) or html (return raw HTML)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/ssl-cert-info": {
      "get": {
        "summary": "SSL Certificate Info",
        "description": "Get SSL/TLS certificate details from Certificate Transparency logs. Shows issuer, SANs, expiry dates, days remaining via crt.sh.",
        "parameters": [
          {
            "name": "host",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Hostname to check (e.g. google.com)"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/ai-image-caption": {
      "get": {
        "summary": "AI Image Caption",
        "description": "Generate descriptive captions for images using Workers AI vision model. Submit a public image URL and get AI-generated description.",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Public image URL to analyze"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    },
    "/api/v1/og-preview": {
      "get": {
        "summary": "Open Graph Preview",
        "description": "Extract full Open Graph and meta tags from any URL. Returns title, description, image, favicon, and raw OG tag map.",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "URL to extract OG data from"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object"
                    },
                    "meta": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Developer"
    },
    {
      "name": "Utilities"
    }
  ]
}