{
  "openapi": "3.0.0",
  "info": {
    "title": "DEV.ME API Documentation",
    "description": "**DEV.ME API Platform** - 19 powerful services across 7 categories\n\n**Validation & Verification:** [Email Validation API](https://dev.me/products/email) • [Phone Validation API](https://dev.me/products/phone) • [IP Geolocation API](https://dev.me/products/ip)\n**Financial & Currency:** [Currency Exchange API](https://dev.me/products/currency) • [Currency List API](https://dev.me/products/currency-list)\n**Domain & Security:** [Domain WHOIS API](https://dev.me/products/domain-whois) • [DNS Lookup API](https://dev.me/products/dns-lookup) • [Domain Tools API](https://dev.me/products/domain-tools)\n**Content & Media:** [QR Code Generator API](https://dev.me/products/qr-code-generator) • [Image Placeholders API](https://dev.me/products/image-placeholder) • [Image Optimization API](https://dev.me/products/image-optimizer)\n**URL & Web:** [URL Shortening API](https://dev.me/products/short-url) • [Web Scraping API](https://dev.me/products/url-scrapper) • [URL Metadata API](https://dev.me/products/url-metadata) • [One-Time URL API](https://dev.me/products/onetime-url)\n**Global Data:** [Country Data API](https://dev.me/products/country) • [City Data API](https://dev.me/products/city)\n**Management:** [API Key Management](https://dev.me/dashboard) • [API Usage Analytics](https://dev.me/dashboard)\n\n**Quick Start:** Use API key `demo-key` for testing • Visit [dev.me](https://dev.me) for complete documentation\n**Authentication:** Header `x-api-key: YOUR_API_KEY` or Query Parameter `?x-api-key=YOUR_API_KEY`\n**[Rate Limits](https://dev.me/pricing):** Free (500/mo) • Essential (15K/mo) • Standard (60K/mo) • Professional (1M/mo) • Enterprise (Unlimited)\n**Support:** support@dev.me • [Documentation](https://dev.me/documentation)",
    "contact": {
      "name": "DEV.ME Team",
      "url": "https://dev.me",
      "email": "support@dev.me"
    },
    "license": {
      "name": "Proprietary license",
      "url": "https://dev.me/terms-of-service"
    },
    "termsOfService": "https://dev.me/terms-of-service",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.dev.me",
      "description": "Production Server",
      "variables": {}
    },
    {
      "url": "https://staging-api.dev.me",
      "description": "Staging Server (for testing)",
      "variables": {}
    }
  ],
  "security": [
    {
      "APIKeyHeader": []
    },
    {
      "APIKeyQueryParam": []
    }
  ],
  "components": {
    "securitySchemes": {
      "APIKeyHeader": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key",
        "description": "API key passed as a header"
      },
      "APIKeyQueryParam": {
        "type": "apiKey",
        "in": "query",
        "name": "x-api-key",
        "description": "API key passed as a query parameter"
      }
    },
    "schemas": {
      "ApiUsageItem": {
        "description": "",
        "type": "object",
        "properties": {
          "date": {
            "description": "Date of usage",
            "type": "string",
            "format": "date"
          },
          "service": {
            "description": "Service name",
            "type": "string"
          },
          "count": {
            "description": "Number of requests",
            "type": "number"
          },
          "userId": {
            "description": "User ID",
            "type": "string"
          }
        }
      },
      "BulkShortUrlItem": {
        "description": "",
        "type": "object",
        "properties": {
          "url": {
            "description": "Original URL to shorten",
            "type": "string",
            "format": "uri"
          },
          "domain": {
            "description": "Domain to use for short URL",
            "type": "string"
          },
          "suffix": {
            "description": "Custom suffix for the short URL (optional)",
            "type": "string"
          }
        }
      },
      "BulkShortUrlResult": {
        "description": "",
        "type": "object",
        "properties": {
          "success": {
            "description": "Whether the URL was created successfully",
            "type": "boolean"
          },
          "url": {
            "description": "Original URL",
            "type": "string",
            "format": "uri"
          },
          "shortUrl": {
            "description": "Generated short URL (if successful)",
            "type": "string",
            "format": "uri"
          },
          "domain": {
            "description": "Domain used",
            "type": "string"
          },
          "sid": {
            "description": "Short ID (if successful)",
            "type": "string"
          },
          "error": {
            "description": "Error message (if failed)",
            "type": "string"
          }
        }
      },
      "CapitalInfo": {
        "description": "",
        "type": "object",
        "properties": {
          "latlng": {
            "description": "Latitude and longitude of capital",
            "type": "array",
            "items": {
              "type": "number"
            }
          }
        }
      },
      "CarInfo": {
        "description": "",
        "type": "object",
        "properties": {
          "signs": {
            "description": "Car signs",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "side": {
            "description": "Driving side (left/right)",
            "type": "string"
          }
        }
      },
      "ConvertCurrencyOut": {
        "description": "Currency conversion response",
        "required": ["from", "to", "exchangeRate", "rateTime", "originalAmount", "convertedAmount", "convertedText"],
        "type": "object",
        "properties": {
          "from": {
            "description": "Source currency code",
            "type": "string",
            "format": "eg: USD"
          },
          "to": {
            "description": "Target currency code",
            "type": "string",
            "format": "eg: EUR"
          },
          "exchangeRate": {
            "description": "Exchange rate used",
            "type": "number",
            "format": "eg: 0.92"
          },
          "rateTime": {
            "description": "Timestamp of the rate",
            "type": "string",
            "format": "eg: 2024-01-15T10:30:00.000Z"
          },
          "originalAmount": {
            "description": "Original amount",
            "type": "number",
            "format": "eg: 100"
          },
          "convertedAmount": {
            "description": "Converted amount",
            "type": "number",
            "format": "eg: 92"
          },
          "convertedText": {
            "description": "Human-readable conversion text",
            "type": "string",
            "format": "eg: 100 USD equal to 92 EUR"
          },
          "provider": {
            "description": "Data provider used (if available)",
            "type": "string"
          },
          "cached": {
            "description": "Whether the rate was cached",
            "type": "boolean"
          },
          "performance": {
            "description": "Performance metrics (only when getPerformanceData=1)",
            "type": "object"
          }
        }
      },
      "CountryName": {
        "description": "",
        "type": "object",
        "properties": {
          "common": {
            "description": "Common country name",
            "type": "string"
          },
          "official": {
            "description": "Official country name",
            "type": "string"
          },
          "nativeName": {
            "description": "Native names by language code",
            "type": "object"
          }
        }
      },
      "CreateApiKeyIn": {
        "description": "",
        "type": "object",
        "properties": {
          "name": {
            "description": "Name/description for the API key",
            "type": "string"
          },
          "services": {
            "description": "List of services this key can access",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "isEnabled": {
            "description": "Whether to enable the API key immediately",
            "type": "boolean"
          }
        }
      },
      "CreateBulkShortUrlsRequest": {
        "description": "",
        "type": "object",
        "properties": {
          "items": {
            "description": "Array of URLs to shorten (max 100)",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BulkShortUrlItem"
            }
          },
          "batchId": {
            "description": "Custom batch ID for this bulk operation (optional)",
            "type": "string"
          }
        }
      },
      "CreateBulkShortUrlsResponse": {
        "description": "",
        "type": "object",
        "properties": {
          "created": {
            "description": "Number of successfully created short URLs",
            "type": "number"
          },
          "failed": {
            "description": "Number of failed creations",
            "type": "number"
          },
          "batchId": {
            "description": "Unique identifier for this bulk operation",
            "type": "string"
          },
          "results": {
            "description": "Detailed results for each item",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BulkShortUrlResult"
            }
          }
        }
      },
      "CreateOnetimeUrlIn": {
        "description": "",
        "required": ["text"],
        "type": "object",
        "properties": {
          "text": {
            "description": "The secret text/content to share",
            "type": "string",
            "format": "eg: This is my secret message"
          },
          "passphrase": {
            "description": "Optional password protection (leave empty for no password)",
            "type": "string",
            "format": "eg: mySecretPassword"
          },
          "domain": {
            "description": "Domain to use for the URL",
            "type": "string",
            "format": "eg: in.mt"
          },
          "suffix": {
            "description": "Custom suffix for the URL",
            "type": "string",
            "format": "eg: abc123"
          },
          "lifetime": {
            "description": "Lifetime in seconds (default: 7 days)",
            "type": "number",
            "format": "eg: 86400"
          },
          "maxViews": {
            "description": "Maximum number of times the URL can be viewed (default: 1)",
            "type": "number",
            "format": "eg: 5"
          }
        }
      },
      "CreateOnetimeUrlOut": {
        "description": "",
        "required": ["onetimeUrl", "domain", "sid", "createdAt"],
        "type": "object",
        "properties": {
          "onetimeUrl": {
            "description": "The complete one-time URL",
            "type": "string",
            "format": "eg: https://in.mt/secret-abc123"
          },
          "domain": {
            "description": "Domain used for the URL",
            "type": "string",
            "format": "eg: in.mt"
          },
          "sid": {
            "description": "Short ID of the one-time URL",
            "type": "string",
            "format": "eg: secret-abc123"
          },
          "createdAt": {
            "description": "ISO timestamp of creation",
            "type": "string",
            "format": "eg: 2024-01-15T10:30:00.000Z"
          }
        }
      },
      "CreateQrCodeIn": {
        "description": "",
        "type": "object",
        "properties": {
          "data": {
            "description": "Data to encode in QR code",
            "type": "string"
          },
          "type": {
            "description": "QR code type",
            "type": "string"
          },
          "settings": {
            "description": "Mixed JSON object with all QR code settings",
            "type": "object"
          }
        }
      },
      "CreateQrCodeOut": {
        "description": "",
        "type": "object",
        "properties": {
          "_id": {
            "description": "Database ID of the QR code",
            "type": "string"
          },
          "sid": {
            "description": "Short ID for the QR code",
            "type": "string"
          },
          "data": {
            "description": "Encoded data in the QR code",
            "type": "string"
          },
          "type": {
            "description": "Type of QR code",
            "type": "string"
          },
          "qrCodeImage": {
            "description": "Base64 encoded QR code image",
            "type": "string"
          },
          "settings": {
            "$ref": "#/components/schemas/QrCodeGenerationSettings"
          },
          "expiresAt": {
            "description": "ISO timestamp when QR code expires",
            "type": "string"
          },
          "createdAt": {
            "description": "ISO timestamp of creation",
            "type": "string"
          }
        }
      },
      "CreateQrCodeSettings": {
        "description": "",
        "type": "object",
        "properties": {
          "settings": {
            "description": "Mixed JSON object with all QR code settings from frontend",
            "type": "object"
          }
        }
      },
      "CreateShortUrlIn": {
        "description": "",
        "required": ["url"],
        "type": "object",
        "properties": {
          "url": {
            "description": "URL to shorten",
            "type": "string",
            "format": "eg: https://example.com/very-long-url"
          },
          "domain": {
            "description": "Domain to use for short URL",
            "type": "string",
            "format": "eg: in.mt"
          },
          "suffix": {
            "description": "Custom suffix for the short URL",
            "type": "string",
            "format": "eg: my-link"
          }
        }
      },
      "CreateShortUrlOut": {
        "description": "",
        "required": ["url", "shortUrl", "domain", "sid", "createdAt"],
        "type": "object",
        "properties": {
          "url": {
            "description": "The original URL",
            "type": "string",
            "format": "eg: https://example.com/very-long-url"
          },
          "shortUrl": {
            "description": "The complete shortened URL",
            "type": "string",
            "format": "eg: https://in.mt/abc123"
          },
          "domain": {
            "description": "Domain used for the short URL",
            "type": "string",
            "format": "eg: in.mt"
          },
          "sid": {
            "description": "Short ID of the URL",
            "type": "string",
            "format": "eg: abc123"
          },
          "createdAt": {
            "description": "ISO timestamp of creation",
            "type": "string",
            "format": "eg: 2024-01-15T10:30:00.000Z"
          }
        }
      },
      "CurrencyDenominations": {
        "description": "",
        "type": "object",
        "properties": {
          "frequent": {
            "description": "Frequently used denominations",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "rare": {
            "description": "Rarely used denominations",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "CurrencyISO": {
        "description": "",
        "type": "object",
        "properties": {
          "code": {
            "description": "ISO currency code",
            "type": "string"
          },
          "number": {
            "description": "ISO numeric code",
            "type": "string"
          }
        }
      },
      "CurrencyMajorUnit": {
        "description": "",
        "type": "object",
        "properties": {
          "name": {
            "description": "Major unit name",
            "type": "string"
          },
          "symbol": {
            "description": "Major unit symbol",
            "type": "string"
          }
        }
      },
      "CurrencyMinorUnit": {
        "description": "",
        "type": "object",
        "properties": {
          "name": {
            "description": "Minor unit name",
            "type": "string"
          },
          "symbol": {
            "description": "Minor unit symbol",
            "type": "string"
          },
          "majorValue": {
            "description": "Value relative to major unit",
            "type": "number"
          }
        }
      },
      "CurrencyUnits": {
        "description": "",
        "type": "object",
        "properties": {
          "major": {
            "$ref": "#/components/schemas/CurrencyMajorUnit"
          },
          "minor": {
            "$ref": "#/components/schemas/CurrencyMinorUnit"
          }
        }
      },
      "DeleteApiKeyIn": {
        "description": "",
        "type": "object",
        "properties": {
          "_id": {
            "description": "Database ID of the API key to delete",
            "type": "string"
          }
        }
      },
      "DeleteApiKeyOut": {
        "description": "",
        "type": "object",
        "properties": {
          "success": {
            "description": "Whether the deletion was successful",
            "type": "boolean"
          }
        }
      },
      "DeleteOnetimeUrlIn": {
        "description": "",
        "required": ["sid"],
        "type": "object",
        "properties": {
          "sid": {
            "description": "Short ID of the one-time URL",
            "type": "string",
            "format": "eg: secret-abc123"
          },
          "domain": {
            "description": "Domain of the URL",
            "type": "string",
            "format": "eg: in.mt"
          },
          "passphrase": {
            "description": "Passphrase if set during creation",
            "type": "string",
            "format": "eg: mySecretPassword"
          }
        }
      },
      "DeleteOnetimeUrlOut": {
        "description": "",
        "required": ["success"],
        "type": "object",
        "properties": {
          "success": {
            "description": "Whether deletion was successful",
            "type": "boolean",
            "format": "eg: true"
          }
        }
      },
      "DeleteQrCodeIn": {
        "description": "",
        "type": "object",
        "properties": {
          "_id": {
            "description": "Database ID of the QR code",
            "type": "string"
          },
          "sid": {
            "description": "Short ID of the QR code (alternative to _id)",
            "type": "string"
          },
          "deleteRelated": {
            "description": "Also delete related logs and short URLs (default: true)",
            "type": "boolean"
          }
        }
      },
      "DeleteQrCodeOut": {
        "description": "",
        "type": "object",
        "properties": {
          "success": {
            "description": "Whether deletion was successful",
            "type": "boolean"
          },
          "deletedCount": {
            "$ref": "#/components/schemas/DeletedCountInfo"
          }
        }
      },
      "DeleteShortUrlIn": {
        "description": "",
        "required": ["sid"],
        "type": "object",
        "properties": {
          "sid": {
            "description": "Short ID of the URL",
            "type": "string",
            "format": "eg: abc123"
          },
          "domain": {
            "description": "Domain of the short URL",
            "type": "string",
            "format": "eg: in.mt"
          }
        }
      },
      "DeleteShortUrlOut": {
        "description": "",
        "required": ["success"],
        "type": "object",
        "properties": {
          "success": {
            "description": "Whether deletion was successful",
            "type": "boolean",
            "format": "eg: true"
          }
        }
      },
      "DeletedCountInfo": {
        "description": "",
        "type": "object",
        "properties": {
          "qrCode": {
            "description": "Number of QR codes deleted",
            "type": "number"
          },
          "logs": {
            "description": "Number of logs deleted",
            "type": "number"
          }
        }
      },
      "DetectedName": {
        "description": "",
        "type": "object",
        "properties": {
          "firstName": {
            "description": "First name detected from email",
            "type": "string"
          },
          "lastName": {
            "description": "Last name detected from email",
            "type": "string"
          },
          "confidence": {
            "description": "Confidence score for name detection (0-1)",
            "type": "number"
          }
        }
      },
      "DomainAgeInfo": {
        "description": "",
        "type": "object",
        "properties": {
          "ageInDays": {
            "description": "Age of the domain in days",
            "type": "number"
          },
          "createdDate": {
            "description": "Domain creation date",
            "type": "string",
            "format": "date"
          },
          "isValid": {
            "description": "Whether the age information is valid",
            "type": "boolean"
          }
        }
      },
      "DomainRegistrationInfo": {
        "description": "",
        "type": "object",
        "properties": {
          "created": {
            "description": "Domain creation date",
            "type": "string"
          },
          "updated": {
            "description": "Domain last update date",
            "type": "string",
            "format": "date"
          },
          "expires": {
            "description": "Domain expiration date",
            "type": "string"
          },
          "registrar": {
            "description": "Domain registrar name",
            "type": "string"
          },
          "registrantOrganization": {
            "description": "Registrant organization",
            "type": "string"
          },
          "registrantCountry": {
            "description": "Registrant country",
            "type": "string"
          },
          "status": {
            "description": "Domain status",
            "type": "string"
          }
        }
      },
      "DomainSuggestion": {
        "description": "",
        "type": "object",
        "properties": {
          "original": {
            "description": "Original domain with typo",
            "type": "string"
          },
          "suggested": {
            "description": "Suggested corrected domain",
            "type": "string"
          },
          "confidence": {
            "description": "Confidence score for suggestion (0-1)",
            "type": "number"
          }
        }
      },
      "DownloadApiUsageOut": {
        "description": "",
        "type": "object",
        "properties": {
          "url": {
            "description": "Download URL for the exported file",
            "type": "string",
            "format": "uri"
          },
          "filename": {
            "description": "Suggested filename for the download",
            "type": "string"
          },
          "contentType": {
            "description": "MIME type of the file",
            "type": "string"
          }
        }
      },
      "Error": {
        "description": "",
        "type": "object",
        "properties": {
          "value": {
            "description": "error value",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              }
            ]
          },
          "msg": {
            "description": "error message",
            "type": "string"
          },
          "param": {
            "description": "error parameters",
            "type": "string"
          },
          "location": {
            "description": "location of the error",
            "type": "string"
          }
        }
      },
      "GetApiKeyDetailsIn": {
        "description": "",
        "type": "object",
        "properties": {
          "_id": {
            "description": "Database ID of the API key",
            "type": "string"
          }
        }
      },
      "GetApiKeyDetailsOut": {
        "description": "",
        "type": "object",
        "properties": {
          "_id": {
            "description": "Database document ID",
            "type": "string"
          },
          "name": {
            "description": "Name/description of the API key",
            "type": "string"
          },
          "apiKey": {
            "description": "The actual API key value",
            "type": "string"
          },
          "services": {
            "description": "List of services this key can access",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "isEnabled": {
            "description": "Whether the API key is active",
            "type": "boolean"
          },
          "userId": {
            "description": "User ID who owns this API key",
            "type": "string"
          },
          "meta": {
            "description": "Additional metadata",
            "type": "object"
          },
          "createdAt": {
            "description": "ISO timestamp of creation",
            "type": "string"
          },
          "updatedAt": {
            "description": "ISO timestamp of last update",
            "type": "string",
            "format": "date"
          }
        }
      },
      "GetApiUsageOut": {
        "description": "",
        "type": "object",
        "properties": {
          "usage": {
            "description": "Array of daily usage records",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiUsageItem"
            }
          },
          "totalRequests": {
            "description": "Total number of requests in the period",
            "type": "number"
          }
        }
      },
      "GetCityDetailsOut": {
        "description": "",
        "type": "object",
        "properties": {
          "id": {
            "description": "City ID",
            "type": "number"
          },
          "name": {
            "description": "City name",
            "type": "string"
          },
          "countryCode": {
            "description": "Country code",
            "type": "string"
          },
          "countryName": {
            "description": "Country name",
            "type": "string"
          },
          "stateCode": {
            "description": "State/Province code",
            "type": "string"
          },
          "stateName": {
            "description": "State/Province name",
            "type": "string"
          },
          "latitude": {
            "description": "Latitude coordinate",
            "type": "number"
          },
          "longitude": {
            "description": "Longitude coordinate",
            "type": "number"
          }
        }
      },
      "GetCountryDetailsOut": {
        "description": "",
        "type": "object",
        "properties": {
          "code": {
            "description": "Country code (ISO 3166-1 alpha-2)",
            "type": "string"
          },
          "cca2": {
            "description": "ISO 3166-1 alpha-2 code",
            "type": "string"
          },
          "cca3": {
            "description": "ISO 3166-1 alpha-3 code",
            "type": "string"
          },
          "ccn3": {
            "description": "ISO 3166-1 numeric code",
            "type": "string"
          },
          "cioc": {
            "description": "International Olympic Committee code",
            "type": "string"
          },
          "fifa": {
            "description": "FIFA code",
            "type": "string"
          },
          "name": {
            "$ref": "#/components/schemas/CountryName"
          },
          "capital": {
            "description": "Capital city/cities",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "capitalInfo": {
            "$ref": "#/components/schemas/CapitalInfo"
          },
          "altSpellings": {
            "description": "Alternative country name spellings",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "region": {
            "description": "Geographic region",
            "type": "string"
          },
          "subregion": {
            "description": "Geographic subregion",
            "type": "string"
          },
          "continents": {
            "description": "Continents the country belongs to",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "languages": {
            "description": "Official languages (key-value pairs)",
            "type": "object"
          },
          "currencies": {
            "description": "Currency information (key-value pairs)",
            "type": "object"
          },
          "flag": {
            "description": "Flag emoji",
            "type": "string"
          },
          "flags": {
            "$ref": "#/components/schemas/ImageLinks"
          },
          "coatOfArms": {
            "$ref": "#/components/schemas/ImageLinks"
          },
          "area": {
            "description": "Total area in km²",
            "type": "number"
          },
          "population": {
            "description": "Population count",
            "type": "number"
          },
          "latlng": {
            "description": "Latitude and longitude coordinates",
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "landlocked": {
            "description": "Whether the country is landlocked",
            "type": "boolean"
          },
          "borders": {
            "description": "Border country codes",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "timezones": {
            "description": "Timezones",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "tld": {
            "description": "Top-level domains",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "independent": {
            "description": "Independence status",
            "type": "boolean"
          },
          "unMember": {
            "description": "UN membership status",
            "type": "boolean"
          },
          "status": {
            "description": "Country status",
            "type": "string"
          },
          "startOfWeek": {
            "description": "First day of the week",
            "type": "string"
          },
          "car": {
            "$ref": "#/components/schemas/CarInfo"
          },
          "idd": {
            "$ref": "#/components/schemas/IddInfo"
          },
          "postalCode": {
            "$ref": "#/components/schemas/PostalCodeInfo"
          },
          "demonyms": {
            "description": "Demonym information by language",
            "type": "object"
          },
          "gini": {
            "description": "Gini coefficient by year",
            "type": "object"
          },
          "maps": {
            "$ref": "#/components/schemas/MapsInfo"
          },
          "translations": {
            "description": "Country name translations",
            "type": "object"
          }
        }
      },
      "GetCurrencyDetailsOut": {
        "description": "",
        "type": "object",
        "properties": {
          "code": {
            "description": "Currency code (ISO 4217)",
            "type": "string"
          },
          "name": {
            "description": "Currency name",
            "type": "string"
          },
          "nameNative": {
            "description": "Native currency name",
            "type": "string"
          },
          "namePlural": {
            "description": "Plural form of currency name",
            "type": "string"
          },
          "namePluralNative": {
            "description": "Native plural form of currency name",
            "type": "string"
          },
          "symbol": {
            "description": "Currency symbol code",
            "type": "string"
          },
          "symbolNative": {
            "description": "Native currency symbol (e.g., $, €)",
            "type": "string"
          },
          "decimalDigits": {
            "description": "Number of decimal places",
            "type": "number"
          },
          "rounding": {
            "description": "Rounding precision",
            "type": "number"
          },
          "flagCode": {
            "description": "Flag code for primary country",
            "type": "string"
          },
          "iso": {
            "$ref": "#/components/schemas/CurrencyISO"
          },
          "units": {
            "$ref": "#/components/schemas/CurrencyUnits"
          },
          "banknotes": {
            "$ref": "#/components/schemas/CurrencyDenominations"
          },
          "coins": {
            "$ref": "#/components/schemas/CurrencyDenominations"
          },
          "countries": {
            "description": "Country codes using this currency",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "GetCurrencyExchangeRateOut": {
        "description": "",
        "type": "object",
        "properties": {
          "from": {
            "description": "Source currency code",
            "type": "string"
          },
          "to": {
            "description": "Target currency code",
            "type": "string"
          },
          "exchangeRate": {
            "description": "Exchange rate from source to target currency",
            "type": "number"
          },
          "rateTime": {
            "description": "Timestamp of the exchange rate (ISO 8601 format)",
            "type": "string"
          },
          "provider": {
            "description": "Data provider used for this rate",
            "type": "string"
          },
          "cached": {
            "description": "Whether the rate was served from cache",
            "type": "boolean"
          },
          "inverseRate": {
            "description": "Inverse exchange rate (to -> from)",
            "type": "number"
          },
          "disclaimer": {
            "description": "Rate disclaimer or terms of use",
            "type": "string"
          }
        }
      },
      "GetDomainWhoisOut": {
        "description": "",
        "type": "object",
        "properties": {
          "domain": {
            "description": "",
            "type": "string"
          },
          "whoisText": {
            "description": "",
            "type": "string"
          },
          "whoisJson": {
            "description": "",
            "type": "object"
          }
        }
      },
      "GetEmailDetailsOut": {
        "description": "",
        "type": "object",
        "properties": {
          "email": {
            "description": "The email address that was validated",
            "type": "string",
            "format": "email"
          },
          "validMx": {
            "description": "Whether MX records exist for the domain",
            "type": "boolean"
          },
          "validSmtp": {
            "description": "Whether SMTP connection was successful",
            "type": "boolean"
          },
          "validFormat": {
            "description": "Whether email format is valid",
            "type": "boolean"
          },
          "isDisposable": {
            "description": "Whether email is from a disposable domain",
            "type": "boolean"
          },
          "isFree": {
            "description": "Whether email is from a free email provider",
            "type": "boolean"
          },
          "detectedName": {
            "$ref": "#/components/schemas/DetectedName"
          },
          "domainSuggestion": {
            "$ref": "#/components/schemas/DomainSuggestion"
          },
          "domainAge": {
            "$ref": "#/components/schemas/DomainAgeInfo"
          },
          "domainRegistration": {
            "$ref": "#/components/schemas/DomainRegistrationInfo"
          },
          "score": {
            "description": "Overall email quality score (0-100)",
            "type": "number"
          },
          "performance": {
            "description": "Performance metrics (only when getPerformanceData=true)",
            "type": "object"
          }
        }
      },
      "GetFactbookDetailsOut": {
        "description": "",
        "type": "object",
        "properties": {}
      },
      "GetIpDetailsCityOut": {
        "description": "City geolocation information",
        "required": ["accuracyRadius", "latitude", "longitude"],
        "type": "object",
        "properties": {
          "accuracyRadius": {
            "description": "Accuracy radius in kilometers",
            "type": "number",
            "format": "eg: 1000"
          },
          "latitude": {
            "description": "Geographic latitude",
            "type": "number",
            "format": "eg: 37.4223"
          },
          "longitude": {
            "description": "Geographic longitude",
            "type": "number",
            "format": "eg: -122.085"
          },
          "timeZone": {
            "description": "IANA time zone",
            "type": "string",
            "format": "eg: America/Los_Angeles"
          },
          "name": {
            "description": "City name",
            "type": "string",
            "format": "eg: Mountain View"
          },
          "region": {
            "description": "Region or state name",
            "type": "string",
            "format": "eg: California"
          },
          "areaCode": {
            "description": "Area code if available",
            "type": "string",
            "format": "eg: 650"
          }
        }
      },
      "GetIpDetailsOut": {
        "description": "IP geolocation response",
        "required": ["ip"],
        "type": "object",
        "properties": {
          "ip": {
            "description": "The IP address that was looked up",
            "type": "string",
            "format": "eg: 8.8.8.8"
          },
          "ptr": {
            "description": "PTR record (reverse DNS) if available",
            "type": "string",
            "format": "eg: dns.google"
          },
          "countryCode": {
            "description": "ISO 3166-1 alpha-2 country code",
            "type": "string",
            "format": "eg: US"
          },
          "countryCode3": {
            "description": "ISO 3166-1 alpha-3 country code",
            "type": "string",
            "format": "eg: USA"
          },
          "countryName": {
            "description": "Full country name",
            "type": "string",
            "format": "eg: United States"
          },
          "continentCode": {
            "description": "Continent code",
            "type": "string",
            "format": "eg: NA"
          },
          "registeredCountryCode": {
            "description": "Country code where IP is registered",
            "type": "string",
            "format": "eg: US"
          },
          "asn": {
            "description": "Autonomous System Number",
            "type": "number",
            "format": "eg: 15169"
          },
          "aso": {
            "description": "Autonomous System Organization name",
            "type": "string",
            "format": "eg: Google LLC"
          },
          "organization": {
            "description": "Organization name",
            "type": "string",
            "format": "eg: Google"
          },
          "city": {
            "$ref": "#/components/schemas/GetIpDetailsCityOut"
          },
          "performance": {
            "description": "Performance metrics (only when getPerformanceData=1)",
            "type": "object"
          }
        }
      },
      "GetOnetimeUrlDetailsOut": {
        "description": "",
        "type": "object",
        "properties": {
          "requirePassphrase": {
            "description": "Whether a passphrase is required to access the content",
            "type": "boolean"
          },
          "onetimeUrl": {
            "description": "Complete one-time URL",
            "type": "string",
            "format": "uri"
          },
          "sid": {
            "description": "Short ID identifier for the one-time URL",
            "type": "string"
          },
          "domain": {
            "description": "Domain used for the one-time URL",
            "type": "string"
          },
          "text": {
            "description": "The secret text content (only shown once)",
            "type": "string"
          },
          "viewCount": {
            "description": "Number of times the URL has been viewed",
            "type": "number"
          },
          "maxViews": {
            "description": "Maximum number of views allowed",
            "type": "number"
          },
          "expireAt": {
            "description": "ISO timestamp when the URL expires",
            "type": "string"
          },
          "createdAt": {
            "description": "ISO timestamp of creation",
            "type": "string"
          }
        }
      },
      "GetPhoneDetailsOut": {
        "description": "",
        "type": "object",
        "properties": {
          "valid": {
            "description": "Whether the phone number is valid",
            "type": "boolean"
          },
          "number": {
            "description": "Normalized phone number with country code",
            "type": "string"
          },
          "localFormat": {
            "description": "Phone number in local format",
            "type": "string"
          },
          "internationalFormat": {
            "description": "Phone number in international format",
            "type": "string"
          },
          "countryPrefix": {
            "description": "Country calling code",
            "type": "string"
          },
          "countryCode": {
            "description": "ISO country code",
            "type": "string"
          },
          "countryName": {
            "description": "Country name",
            "type": "string"
          },
          "location": {
            "description": "Geographic location or region",
            "type": "string"
          },
          "carrier": {
            "description": "Phone carrier/operator name",
            "type": "string"
          },
          "matchedCarriers": {
            "description": "Array of all possible carriers when multiple matches exist",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "lineType": {
            "description": "Type of phone line (mobile, landline, voip)",
            "type": "string"
          }
        }
      },
      "GetQrCodeAnalyticsOut": {
        "description": "",
        "type": "object",
        "properties": {
          "qrCodeId": {
            "description": "Database ID of the QR code",
            "type": "string"
          },
          "sid": {
            "description": "Short ID of the QR code",
            "type": "string"
          },
          "data": {
            "description": "QR code data",
            "type": "string"
          },
          "type": {
            "description": "QR code type",
            "type": "string"
          },
          "totalScans": {
            "description": "Total number of scans",
            "type": "number"
          },
          "uniqueScans": {
            "description": "Number of unique scans",
            "type": "number"
          },
          "lastScannedAt": {
            "description": "Last scan timestamp",
            "type": "string"
          },
          "deviceTypes": {
            "description": "Breakdown by device type",
            "type": "object"
          },
          "countries": {
            "description": "Breakdown by country",
            "type": "object"
          },
          "browsers": {
            "description": "Breakdown by browser",
            "type": "object"
          },
          "scanTimeline": {
            "description": "Timeline of scans",
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "period": {
            "description": "Analytics period",
            "type": "object"
          }
        }
      },
      "GetQrCodeDetailsOut": {
        "description": "",
        "type": "object",
        "properties": {
          "_id": {
            "description": "Database ID of the QR code",
            "type": "string"
          },
          "sid": {
            "description": "Short ID for the QR code",
            "type": "string"
          },
          "data": {
            "description": "Encoded data in the QR code",
            "type": "string"
          },
          "type": {
            "description": "Type of QR code",
            "type": "string"
          },
          "imageUrl": {
            "description": "Base64 QR code image or URL",
            "type": "string",
            "format": "uri"
          },
          "settings": {
            "$ref": "#/components/schemas/QrCodeGenerationSettings"
          },
          "isActive": {
            "description": "Whether QR code is active",
            "type": "boolean"
          },
          "expiresAt": {
            "description": "Expiration timestamp",
            "type": "string"
          },
          "createdAt": {
            "description": "ISO timestamp of creation",
            "type": "string"
          },
          "updatedAt": {
            "description": "ISO timestamp of last update",
            "type": "string",
            "format": "date"
          }
        }
      },
      "GetShortUrlAnalyticsOut": {
        "description": "",
        "required": ["shortUrl", "views", "domain"],
        "type": "object",
        "properties": {
          "shortUrl": {
            "description": "Short URL details",
            "type": "object",
            "format": "uri"
          },
          "views": {
            "description": "Array of view/click records",
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "domain": {
            "description": "Domain of the short URL",
            "type": "string",
            "format": "eg: in.mt"
          },
          "_id": {
            "description": "Database ID",
            "type": "string",
            "format": "eg: 507f1f77bcf86cd799439011"
          },
          "sid": {
            "description": "Short ID",
            "type": "string",
            "format": "eg: abc123"
          }
        }
      },
      "GetShortUrlDetailsOut": {
        "description": "",
        "type": "object",
        "properties": {
          "_id": {
            "description": "Database document ID",
            "type": "string"
          },
          "url": {
            "description": "Original long URL",
            "type": "string",
            "format": "uri"
          },
          "shortUrl": {
            "description": "Complete shortened URL",
            "type": "string",
            "format": "uri"
          },
          "sid": {
            "description": "Short ID identifier",
            "type": "string"
          },
          "domain": {
            "description": "Domain used for shortening",
            "type": "string"
          },
          "clicks": {
            "description": "Number of times the short URL was accessed",
            "type": "number"
          },
          "meta": {
            "$ref": "#/components/schemas/ShortUrlMeta"
          },
          "createdAt": {
            "description": "ISO timestamp of creation",
            "type": "string"
          },
          "updatedAt": {
            "description": "ISO timestamp of last update",
            "type": "string",
            "format": "date"
          }
        }
      },
      "HttpErrorOut": {
        "description": "",
        "type": "object",
        "properties": {
          "status": {
            "description": "http status code",
            "type": "number"
          },
          "name": {
            "description": "error name",
            "type": "string"
          },
          "message": {
            "description": "error message",
            "type": "string"
          },
          "errors": {
            "description": "array of errors",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "IApiKeyModelJSON": {
        "description": "",
        "type": "object",
        "properties": {
          "_id": {
            "description": "",
            "type": "string"
          },
          "userId": {
            "description": "",
            "type": "string"
          },
          "apiKey": {
            "description": "",
            "type": "string"
          },
          "name": {
            "description": "",
            "type": "string"
          },
          "environment": {
            "description": "",
            "type": "string"
          },
          "services": {
            "description": "",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "isEnabled": {
            "description": "",
            "type": "boolean"
          },
          "note": {
            "description": "",
            "type": "string"
          },
          "meta": {
            "description": "",
            "type": "object"
          },
          "createdAt": {
            "description": "",
            "type": "string"
          },
          "updatedAt": {
            "description": "",
            "type": "string",
            "format": "date"
          }
        }
      },
      "IddInfo": {
        "description": "",
        "type": "object",
        "properties": {
          "root": {
            "description": "Root dialing code",
            "type": "string"
          },
          "suffixes": {
            "description": "Dialing code suffixes",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ImageLinks": {
        "description": "",
        "type": "object",
        "properties": {
          "svg": {
            "description": "SVG image URL",
            "type": "string"
          },
          "png": {
            "description": "PNG image URL",
            "type": "string"
          },
          "alt": {
            "description": "Alternative text",
            "type": "string"
          }
        }
      },
      "ListApiKeysIn": {
        "description": "",
        "type": "object",
        "properties": {
          "_id": {
            "description": "Optional Database ID to filter specific API key",
            "type": "string"
          }
        }
      },
      "ListApiKeysOut": {
        "description": "",
        "type": "object",
        "properties": {
          "list": {
            "description": "Array of API key objects",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetApiKeyDetailsOut"
            }
          }
        }
      },
      "ListCitiesOut": {
        "description": "",
        "type": "object",
        "properties": {
          "list": {
            "description": "Array of city objects",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetCityDetailsOut"
            }
          },
          "page": {
            "description": "page number",
            "type": "number"
          },
          "total": {
            "description": "total number of cities",
            "type": "number"
          },
          "size": {
            "description": "page size",
            "type": "number"
          },
          "totalPages": {
            "description": "total number of pages",
            "type": "number"
          }
        }
      },
      "ListCountriesOut": {
        "description": "",
        "type": "object",
        "properties": {
          "list": {
            "description": "Array of country objects (fields based on expand/exclude parameters)",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetCountryDetailsOut"
            }
          },
          "page": {
            "description": "page number",
            "type": "number"
          },
          "total": {
            "description": "total number of countries",
            "type": "number"
          },
          "size": {
            "description": "page size",
            "type": "number"
          },
          "totalPages": {
            "description": "total number of pages",
            "type": "number"
          }
        }
      },
      "ListCurrenciesOut": {
        "description": "",
        "type": "object",
        "properties": {
          "list": {
            "description": "Array of currency objects (fields based on expand/exclude parameters)",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetCurrencyDetailsOut"
            }
          },
          "total": {
            "description": "Total number of currencies matching filters",
            "type": "number"
          },
          "page": {
            "description": "Current page number",
            "type": "number"
          },
          "pageSize": {
            "description": "Number of items per page",
            "type": "number"
          },
          "totalPages": {
            "description": "Total number of pages",
            "type": "number"
          }
        }
      },
      "ListOnetimeUrlsOut": {
        "description": "",
        "type": "object",
        "properties": {
          "list": {
            "description": "Array of one-time URL objects",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetOnetimeUrlDetailsOut"
            }
          },
          "page": {
            "description": "Current page number",
            "type": "number"
          },
          "pageSize": {
            "description": "Number of items per page",
            "type": "number"
          },
          "total": {
            "description": "Total number of URLs",
            "type": "number"
          },
          "totalPages": {
            "description": "Total number of pages",
            "type": "number"
          }
        }
      },
      "ListQrCodesOut": {
        "description": "",
        "type": "object",
        "properties": {
          "list": {
            "description": "Array of QR codes",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QrCodeListItem"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationInfo"
          }
        }
      },
      "ListShortUrlsOut": {
        "description": "",
        "type": "object",
        "properties": {
          "list": {
            "description": "Array of short URL objects",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetShortUrlDetailsOut"
            }
          },
          "page": {
            "description": "Current page number",
            "type": "number"
          },
          "pageSize": {
            "description": "Number of items per page",
            "type": "number"
          },
          "total": {
            "description": "Total number of URLs",
            "type": "number"
          },
          "totalPages": {
            "description": "Total number of pages",
            "type": "number"
          }
        }
      },
      "LookupDomainDnsOut": {
        "description": "",
        "type": "object",
        "properties": {
          "address": {
            "description": "",
            "type": "string"
          },
          "type": {
            "description": "",
            "type": "string"
          },
          "records": {
            "description": "",
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "success": {
            "description": "",
            "type": "boolean"
          },
          "error": {
            "description": "",
            "type": "object"
          },
          "performance": {
            "description": "Performance metrics (only when getPerformanceData=true)",
            "type": "object"
          }
        }
      },
      "MapsInfo": {
        "description": "",
        "type": "object",
        "properties": {
          "googleMaps": {
            "description": "Google Maps URL",
            "type": "string"
          },
          "openStreetMaps": {
            "description": "OpenStreetMap URL",
            "type": "string"
          }
        }
      },
      "OpenGraphData": {
        "description": "",
        "type": "object",
        "properties": {}
      },
      "PaginationInfo": {
        "description": "",
        "type": "object",
        "properties": {
          "page": {
            "description": "Current page number",
            "type": "number"
          },
          "pageSize": {
            "description": "Items per page",
            "type": "number"
          },
          "total": {
            "description": "Total number of items",
            "type": "number"
          },
          "totalPages": {
            "description": "Total number of pages",
            "type": "number"
          }
        }
      },
      "PerformanceMetrics": {
        "description": "",
        "type": "object",
        "properties": {
          "totalTime": {
            "description": "Total processing time in milliseconds",
            "type": "number"
          },
          "fetchTime": {
            "description": "Time to fetch the URL in milliseconds",
            "type": "number"
          },
          "metadataTime": {
            "description": "Time to extract metadata in milliseconds",
            "type": "number"
          },
          "openGraphTime": {
            "description": "Time to extract Open Graph data in milliseconds",
            "type": "number"
          },
          "retryAttempted": {
            "description": "Whether a retry was attempted due to bot detection",
            "type": "boolean"
          },
          "retryTime": {
            "description": "Time taken for retry attempt in milliseconds",
            "type": "number"
          },
          "userAgent": {
            "description": "User agent used for the request",
            "type": "string"
          },
          "mobileUserAgentUsed": {
            "description": "Whether mobile fallback was used",
            "type": "boolean"
          }
        }
      },
      "PostalCodeInfo": {
        "description": "",
        "type": "object",
        "properties": {
          "format": {
            "description": "Postal code format",
            "type": "string"
          },
          "regex": {
            "description": "Postal code validation regex",
            "type": "string"
          }
        }
      },
      "PreviewQrCodeIn": {
        "description": "",
        "type": "object",
        "properties": {
          "data": {
            "description": "Data to encode in QR code",
            "type": "string"
          },
          "type": {
            "description": "QR code type",
            "type": "string",
            "enum": ["url", "text", "email", "phone", "sms", "wifi", "vcard"]
          },
          "format": {
            "description": "Output format (always returns base64)",
            "type": "string",
            "enum": ["base64"]
          },
          "settings": {
            "description": "Mixed JSON object with all QR code settings",
            "type": "object"
          }
        }
      },
      "PreviewQrCodeOut": {
        "description": "",
        "type": "object",
        "properties": {
          "format": {
            "description": "Output format",
            "type": "string"
          },
          "data": {
            "description": "Data encoded in QR code",
            "type": "string"
          },
          "type": {
            "description": "QR code type",
            "type": "string"
          },
          "qrCode": {
            "description": "QR code content (base64, SVG, or PNG binary)",
            "type": "string"
          },
          "settings": {
            "description": "Settings used for generation",
            "type": "object"
          },
          "imgString": {
            "description": "Legacy field for backward compatibility",
            "type": "string"
          }
        }
      },
      "QrCodeAnalytics": {
        "description": "",
        "type": "object",
        "properties": {
          "scans": {
            "description": "Total number of scans",
            "type": "number"
          },
          "uniqueScans": {
            "description": "Number of unique scans",
            "type": "number"
          },
          "lastScannedAt": {
            "description": "Last scan timestamp",
            "type": "string"
          }
        }
      },
      "QrCodeBase": {
        "description": "",
        "type": "object",
        "properties": {
          "_id": {
            "description": "Database ID of the QR code",
            "type": "string"
          },
          "sid": {
            "description": "Short ID of the QR code",
            "type": "string"
          },
          "data": {
            "description": "Encoded data in the QR code",
            "type": "string"
          },
          "type": {
            "description": "Type of QR code",
            "type": "string",
            "enum": ["url", "text", "email", "phone", "sms", "wifi", "vcard"]
          },
          "imageUrl": {
            "description": "Base64 QR code image or URL",
            "type": "string",
            "format": "uri"
          },
          "analytics": {
            "$ref": "#/components/schemas/QrCodeAnalytics"
          },
          "settings": {
            "$ref": "#/components/schemas/QrCodeGenerationSettings"
          },
          "isActive": {
            "description": "Whether QR code is active",
            "type": "boolean"
          },
          "expiresAt": {
            "description": "Expiration timestamp",
            "type": "string"
          },
          "createdAt": {
            "description": "ISO timestamp of creation",
            "type": "string"
          },
          "updatedAt": {
            "description": "ISO timestamp of last update",
            "type": "string",
            "format": "date"
          }
        }
      },
      "QrCodeColorOptions": {
        "description": "",
        "type": "object",
        "properties": {
          "dark": {
            "description": "Dark color (hex)",
            "type": "string"
          },
          "light": {
            "description": "Light color (hex)",
            "type": "string"
          }
        }
      },
      "QrCodeGenerationSettings": {
        "description": "",
        "type": "object",
        "properties": {
          "size": {
            "description": "Size of QR code in pixels (100-1000)",
            "type": "number"
          },
          "margin": {
            "description": "Margin around QR code (0-10)",
            "type": "number"
          },
          "errorCorrectionLevel": {
            "description": "Error correction level",
            "type": "string",
            "enum": ["L", "M", "Q", "H"]
          },
          "color": {
            "$ref": "#/components/schemas/QrCodeColorOptions"
          },
          "logo": {
            "description": "URL to logo image to embed",
            "type": "string"
          }
        }
      },
      "QrCodeListItem": {
        "description": "",
        "type": "object",
        "properties": {
          "_id": {
            "description": "Database ID of the QR code",
            "type": "string"
          },
          "sid": {
            "description": "Short ID of the QR code",
            "type": "string"
          },
          "data": {
            "description": "Encoded data in the QR code",
            "type": "string"
          },
          "type": {
            "description": "Type of QR code",
            "type": "string"
          },
          "imageUrl": {
            "description": "Base64 QR code image or URL (truncated)",
            "type": "string",
            "format": "uri"
          },
          "isActive": {
            "description": "Whether QR code is active",
            "type": "boolean"
          },
          "expiresAt": {
            "description": "Expiration timestamp",
            "type": "string"
          },
          "createdAt": {
            "description": "ISO timestamp of creation",
            "type": "string"
          },
          "updatedAt": {
            "description": "ISO timestamp of last update",
            "type": "string",
            "format": "date"
          }
        }
      },
      "ScrapeUrlDataIn": {
        "description": "",
        "type": "object",
        "properties": {
          "url": {
            "description": "URL to scrape metadata from",
            "type": "string",
            "format": "uri"
          },
          "dataTypes": {
            "description": "Data types to return, metadata,openGraph,html, Default [\"openGraph\"]",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "metadataFields": {
            "description": "Specific metadata fields to extract: author,description,image,logo,favicon,title,url,spotify,youtube,instagram,soundcloud,amazon,shopping,clearbit,manifest. Default: all fields",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ScrapeUrlDataOut": {
        "description": "",
        "type": "object",
        "properties": {
          "url": {
            "description": "The scraped URL",
            "type": "string",
            "format": "uri"
          },
          "metadata": {
            "$ref": "#/components/schemas/UrlMetadata"
          },
          "openGraph": {
            "$ref": "#/components/schemas/OpenGraphData"
          },
          "html": {
            "description": "Raw HTML content (if requested)",
            "type": "string"
          },
          "dataTypes": {
            "description": "Data types that were requested",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "cached": {
            "description": "Whether the data came from cache",
            "type": "boolean"
          },
          "performance": {
            "$ref": "#/components/schemas/PerformanceMetrics"
          }
        }
      },
      "ShortUrlMeta": {
        "description": "",
        "type": "object",
        "properties": {
          "isDisabled": {
            "description": "Whether the URL is disabled",
            "type": "boolean"
          },
          "userId": {
            "description": "User ID who created the URL",
            "type": "string"
          }
        }
      },
      "TrackQrViewIn": {
        "description": "",
        "type": "object",
        "properties": {
          "referrer": {
            "description": "Referrer URL",
            "type": "string"
          },
          "userAgent": {
            "description": "User agent string",
            "type": "string"
          },
          "meta": {
            "description": "Additional tracking metadata",
            "type": "object"
          }
        }
      },
      "TrackQrViewOut": {
        "description": "",
        "type": "object",
        "properties": {
          "success": {
            "description": "Whether tracking was successful",
            "type": "boolean"
          },
          "tracked": {
            "description": "Whether the view was tracked",
            "type": "boolean"
          },
          "message": {
            "description": "Response message",
            "type": "string"
          }
        }
      },
      "UpdateApiKeyIn": {
        "description": "",
        "required": ["_id"],
        "type": "object",
        "properties": {
          "_id": {
            "description": "Database ID of the API key to update",
            "type": "string"
          },
          "name": {
            "description": "Updated name/description for the API key",
            "type": "string"
          },
          "environment": {
            "description": "Environment designation (e.g., production, staging, development)",
            "type": "string"
          },
          "services": {
            "description": "Updated list of services this key can access",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "isEnabled": {
            "description": "Whether to enable or disable the API key",
            "type": "boolean"
          }
        }
      },
      "UpdateQrCodeIn": {
        "description": "",
        "type": "object",
        "properties": {
          "_id": {
            "description": "Database ID of the QR code",
            "type": "string"
          },
          "sid": {
            "description": "Short ID of the QR code (alternative to _id)",
            "type": "string"
          },
          "data": {
            "description": "New data to encode (regenerates QR code)",
            "type": "string"
          },
          "type": {
            "description": "New QR code type",
            "type": "string",
            "enum": ["url", "text", "email", "phone", "sms", "wifi", "vcard"]
          },
          "isActive": {
            "description": "Enable/disable QR code",
            "type": "boolean"
          },
          "expiresAt": {
            "description": "New expiration date (ISO 8601)",
            "type": "string"
          },
          "settings": {
            "description": "Mixed JSON object with all QR code settings",
            "type": "object"
          },
          "regenerateImage": {
            "description": "Force regenerate QR code image",
            "type": "boolean"
          }
        }
      },
      "UpdateQrCodeOut": {
        "description": "",
        "type": "object",
        "properties": {
          "_id": {
            "description": "Database ID of the QR code",
            "type": "string"
          },
          "sid": {
            "description": "Short ID of the QR code",
            "type": "string"
          },
          "data": {
            "description": "Encoded data",
            "type": "string"
          },
          "type": {
            "description": "QR code type",
            "type": "string"
          },
          "imageUrl": {
            "description": "Updated QR code image",
            "type": "string",
            "format": "uri"
          },
          "isActive": {
            "description": "Active status",
            "type": "boolean"
          },
          "expiresAt": {
            "description": "Expiration date",
            "type": "string"
          },
          "settings": {
            "$ref": "#/components/schemas/QrCodeGenerationSettings"
          },
          "updatedAt": {
            "description": "Update timestamp",
            "type": "string",
            "format": "date"
          }
        }
      },
      "UpdateQrCodeSettings": {
        "description": "",
        "type": "object",
        "properties": {
          "settings": {
            "description": "Mixed JSON object with all QR code settings from frontend",
            "type": "object"
          }
        }
      },
      "UpdateShortUrlIn": {
        "description": "",
        "required": ["_id", "url", "sid"],
        "type": "object",
        "properties": {
          "_id": {
            "description": "Database ID of the short URL",
            "type": "string",
            "format": "eg: 507f1f77bcf86cd799439011"
          },
          "url": {
            "description": "Updated target URL",
            "type": "string",
            "format": "eg: https://example.com/updated-url"
          },
          "sid": {
            "description": "New short ID",
            "type": "string",
            "format": "eg: new-custom-path"
          },
          "domain": {
            "description": "Domain for the short URL",
            "type": "string",
            "format": "eg: in.mt"
          }
        }
      },
      "UpdateShortUrlOut": {
        "description": "",
        "required": ["originalUrl", "shortUrl", "domain", "sid"],
        "type": "object",
        "properties": {
          "originalUrl": {
            "description": "The updated target URL",
            "type": "string",
            "format": "eg: https://example.com/updated-url"
          },
          "shortUrl": {
            "description": "Complete updated short URL",
            "type": "string",
            "format": "eg: https://in.mt/new-custom-path"
          },
          "domain": {
            "description": "Domain of the short URL",
            "type": "string",
            "format": "eg: in.mt"
          },
          "sid": {
            "description": "Updated short ID",
            "type": "string",
            "format": "eg: new-custom-path"
          }
        }
      },
      "UrlMetadata": {
        "description": "",
        "type": "object",
        "properties": {}
      },
      "WhoAmIOut": {
        "description": "",
        "type": "object",
        "properties": {
          "userId": {
            "description": "",
            "type": "string"
          },
          "email": {
            "description": "",
            "type": "string",
            "format": "email"
          },
          "username": {
            "description": "",
            "type": "string"
          },
          "reqIpAddress": {
            "description": "",
            "type": "string"
          },
          "reqIpCountry": {
            "description": "",
            "type": "string"
          },
          "reqUserAgent": {
            "description": "",
            "type": "string"
          }
        }
      }
    }
  },
  "paths": {
    "/v1-create-api-key": {
      "post": {
        "deprecated": false,
        "description": "Create API Key - Generate a new API key",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with created API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetApiKeyDetailsOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Example created API key",
                    "value": {
                      "_id": "507f1f77bcf86cd799439011",
                      "name": "Production API Key",
                      "apiKey": "user123-abc456",
                      "services": ["currency", "country", "ip"],
                      "isEnabled": true,
                      "createdAt": "2024-01-15T10:30:00.000Z"
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "Invalid parameters": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "User not authenticated": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "tags": ["API Key"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateApiKeyIn"
              },
              "examples": {
                "example1": {
                  "summary": "Example request",
                  "value": "{\n  \"name\": \"Production API Key\",\n  \"services\": [\"currency\", \"country\", \"ip\"],\n  \"isEnabled\": true\n}"
                }
              }
            }
          },
          "description": "API key configuration",
          "required": true
        },
        "operationId": "v1CreateApiKey"
      }
    },
    "/v1-delete-api-key": {
      "post": {
        "deprecated": false,
        "description": "Delete API Key - Remove an API key permanently",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response confirming deletion",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteApiKeyOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Successful deletion",
                    "value": {
                      "success": true
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "Invalid API key ID": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "User not authenticated": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "API key not found": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "tags": ["API Key"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteApiKeyIn"
              },
              "examples": {
                "example1": {
                  "summary": "Example request",
                  "value": "{\n  \"_id\": \"507f1f77bcf86cd799439011\"\n}"
                }
              }
            }
          },
          "description": "API key to delete",
          "required": true
        },
        "operationId": "v1DeleteApiKey"
      }
    },
    "/v1-get-api-key-details": {
      "post": {
        "deprecated": false,
        "description": "Get API Key Details - Retrieve details of a specific API key",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with API key details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetApiKeyDetailsOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Example API key details",
                    "value": {
                      "_id": "507f1f77bcf86cd799439011",
                      "name": "Production API Key",
                      "apiKey": "user123-abc456",
                      "services": ["currency", "country", "ip"],
                      "isEnabled": true,
                      "userId": "507f191e810c19729de860ea",
                      "createdAt": "2024-01-15T10:30:00.000Z",
                      "updatedAt": "2024-01-15T10:30:00.000Z"
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "Invalid API key ID": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "User not authenticated": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "API key not found": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "tags": ["API Key"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetApiKeyDetailsIn"
              },
              "examples": {
                "example1": {
                  "summary": "Example request",
                  "value": "{\n  \"_id\": \"507f1f77bcf86cd799439011\"\n}"
                }
              }
            }
          },
          "description": "Request body with API key ID",
          "required": true
        },
        "operationId": "v1GetApiKeyDetails"
      }
    },
    "/v1-list-api-keys": {
      "post": {
        "deprecated": false,
        "description": "List API Keys - Retrieve user's API keys",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with list of API keys",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListApiKeysOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Example list of API keys",
                    "value": {
                      "list": [
                        {
                          "_id": "507f1f77bcf86cd799439011",
                          "name": "Production API Key",
                          "apiKey": "user123-abc456",
                          "services": ["currency", "country", "ip"],
                          "isEnabled": true,
                          "createdAt": "2024-01-15T10:30:00.000Z",
                          "updatedAt": "2024-01-15T10:30:00.000Z"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "User not authenticated": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "tags": ["API Key"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListApiKeysIn"
              },
              "examples": {
                "example1": {
                  "summary": "Example request",
                  "value": "{\n  \"_id\": \"507f1f77bcf86cd799439011\"\n}"
                }
              }
            }
          },
          "description": "Request body",
          "required": true
        },
        "operationId": "v1ListApiKeys"
      }
    },
    "/v1-update-api-key": {
      "post": {
        "deprecated": false,
        "description": "Update API Key - Modify an existing API key",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with updated API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetApiKeyDetailsOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Example updated API key",
                    "value": {
                      "_id": "507f1f77bcf86cd799439011",
                      "name": "Updated Production Key",
                      "apiKey": "user123-abc456",
                      "environment": "production",
                      "services": ["currency", "country", "ip", "domain-tools"],
                      "isEnabled": true,
                      "updatedAt": "2024-01-15T10:30:00.000Z"
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "Invalid parameters": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "User not authenticated": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "API key not found": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "tags": ["API Key"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateApiKeyIn"
              },
              "examples": {
                "example1": {
                  "summary": "Example request",
                  "value": "{\n  \"_id\": \"507f1f77bcf86cd799439011\",\n  \"name\": \"Updated Production Key\",\n  \"environment\": \"production\",\n  \"services\": [\"currency\", \"country\", \"ip\", \"domain-tools\"],\n  \"isEnabled\": true\n}"
                }
              }
            }
          },
          "description": "Updated API key configuration",
          "required": true
        },
        "operationId": "v1UpdateApiKey"
      }
    },
    "/v1-who-am-i": {
      "get": {
        "deprecated": false,
        "description": "Who Am I - Get current user information",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with user information",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WhoAmIOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Example user information",
                    "value": {
                      "userId": "507f191e810c19729de860ea",
                      "email": "user@example.com",
                      "username": "johndoe",
                      "reqIpAddress": "192.168.1.1",
                      "reqIpCountry": "US",
                      "reqUserAgent": "Mozilla/5.0..."
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "Invalid or missing authentication": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "tags": ["API Key"],
        "operationId": "v1GetWhoAmI"
      }
    },
    "/v1-download-api-usage": {
      "get": {
        "deprecated": false,
        "description": "Download API Usage - Export API usage data as CSV",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with downloadable file",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DownloadApiUsageOut"
                },
                "examples": {
                  "example1": {
                    "summary": "CSV file download",
                    "value": {
                      "url": "https://download.example.com/usage-export-2024-01.csv",
                      "filename": "api-usage-2024-01.csv",
                      "contentType": "text/csv"
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "User not authenticated": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "description": "Start date for usage period (ISO 8601 format) - eg: 2024-01-01",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "description": "End date for usage period (ISO 8601 format) - eg: 2024-01-31",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "service",
            "in": "query",
            "description": "Filter by specific service name - eg: currency, country, ip",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Export format csv,json, default: csv",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["API Usage"],
        "operationId": "v1GetDownloadApiUsage"
      }
    },
    "/v1-get-api-usage": {
      "get": {
        "deprecated": false,
        "description": "Get API Usage - Retrieve API usage statistics",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with usage data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetApiUsageOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Example usage statistics",
                    "value": {
                      "usage": [
                        {
                          "date": "2024-01-15",
                          "service": "currency",
                          "count": 150,
                          "userId": "507f191e810c19729de860ea"
                        },
                        {
                          "date": "2024-01-15",
                          "service": "country",
                          "count": 75,
                          "userId": "507f191e810c19729de860ea"
                        }
                      ],
                      "totalRequests": 225
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "User not authenticated": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "description": "Start date for usage period (ISO 8601 format) - eg: 2024-01-01",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "description": "End date for usage period (ISO 8601 format) - eg: 2024-01-31",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "service",
            "in": "query",
            "description": "Filter by specific service name - eg: currency, country, ip",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["API Usage"],
        "operationId": "v1GetApiUsage"
      }
    },
    "/v1-get-city-details": {
      "get": {
        "deprecated": false,
        "description": "Get City Details - Retrieve detailed information about a specific city",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with city details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCityDetailsOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Example city details",
                    "value": {
                      "id": 50388,
                      "name": "London",
                      "countryCode": "GB",
                      "countryName": "United Kingdom",
                      "stateCode": "ENG",
                      "stateName": "England",
                      "latitude": 51.50853,
                      "longitude": -0.12574
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "Invalid parameters": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "City not found": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "City ID",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "City name (must be exact match)",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "countryCode",
            "in": "query",
            "description": "Country code (2 letter ISO code) - eg: US, GB",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stateCode",
            "in": "query",
            "description": "State/Province code - eg: CA, NY",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "description": "Fields to include in response - eg: [\"name\", \"countryName\", \"stateName\"]",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "exclude",
            "in": "query",
            "description": "Fields to exclude from response - eg: [\"countryId\", \"stateId\"]",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "boolean",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "tags": ["Country"],
        "operationId": "v1GetCityDetails"
      }
    },
    "/v1-get-country-details": {
      "get": {
        "deprecated": false,
        "description": "Get Country Details - Retrieve detailed information about a specific country",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with country details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCountryDetailsOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Example Aruba country details",
                    "value": {
                      "code": "AW",
                      "cca2": "AW",
                      "cca3": "ABW",
                      "ccn3": "533",
                      "cioc": "ARU",
                      "fifa": "ARU",
                      "name": {
                        "common": "Aruba",
                        "official": "Aruba",
                        "nativeName": {
                          "nld": {
                            "official": "Aruba",
                            "common": "Aruba"
                          },
                          "pap": {
                            "official": "Aruba",
                            "common": "Aruba"
                          }
                        }
                      },
                      "capital": ["Oranjestad"],
                      "capitalInfo": {
                        "latlng": [12.52, -70.03]
                      },
                      "altSpellings": ["AW"],
                      "region": "Americas",
                      "subregion": "Caribbean",
                      "continents": ["North America"],
                      "languages": {
                        "nld": "Dutch",
                        "pap": "Papiamento"
                      },
                      "currencies": {
                        "AWG": {
                          "name": "Aruban florin",
                          "symbol": "ƒ"
                        }
                      },
                      "flag": "🇦🇼",
                      "flags": {
                        "svg": "https://flagcdn.com/aw.svg",
                        "png": "https://flagcdn.com/w320/aw.png",
                        "alt": ""
                      },
                      "coatOfArms": {
                        "svg": "https://mainfacts.com/media/images/coats_of_arms/aw.svg",
                        "png": "https://mainfacts.com/media/images/coats_of_arms/aw.png"
                      },
                      "area": 180,
                      "population": 106766,
                      "latlng": [12.5, -69.96666666],
                      "landlocked": false,
                      "borders": [],
                      "timezones": ["UTC-04:00"],
                      "tld": [".aw"],
                      "independent": false,
                      "unMember": false,
                      "status": "officially-assigned",
                      "startOfWeek": "monday",
                      "car": {
                        "signs": [],
                        "side": "right"
                      },
                      "idd": {
                        "root": "+2",
                        "suffixes": ["97"]
                      },
                      "postalCode": {
                        "format": "",
                        "regex": ""
                      },
                      "demonyms": {
                        "eng": {
                          "f": "Aruban",
                          "m": "Aruban"
                        },
                        "fra": {
                          "f": "Arubaise",
                          "m": "Arubais"
                        }
                      },
                      "gini": {},
                      "maps": {
                        "googleMaps": "https://goo.gl/maps/8hopbQqifHAgyZyg8",
                        "openStreetMaps": "https://www.openstreetmap.org/relation/1231749"
                      },
                      "translations": {
                        "ara": {
                          "official": "أروبا",
                          "common": "أروبا"
                        },
                        "fra": {
                          "official": "Aruba",
                          "common": "Aruba"
                        },
                        "spa": {
                          "official": "Aruba",
                          "common": "Aruba"
                        }
                      }
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "Invalid country code": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "Country not found": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "description": "Country code (2 or 3 letter ISO code) - eg: US, USA",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "description": "Fields to include in response - eg: [\"name\", \"capital\", \"currencies\", \"languages\"]",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "exclude",
            "in": "query",
            "description": "Fields to exclude from response - eg: [\"translations\", \"demonyms\"]",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "boolean",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "tags": ["Country"],
        "operationId": "v1GetCountryDetails"
      }
    },
    "/v1-get-factbook-details": {
      "get": {
        "deprecated": false,
        "description": "Get Factbook Details - Retrieve detailed CIA World Factbook information for a country",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with factbook details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetFactbookDetailsOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "Country factbook data not found": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "description": "Country code (2 or 3 letter ISO code) - eg: US, USA",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["Country"],
        "operationId": "v1GetFactbookDetails"
      }
    },
    "/v1-list-cities": {
      "get": {
        "deprecated": false,
        "description": "List Cities - Search and retrieve cities by name and country",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with city list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListCitiesOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Example list of cities",
                    "value": {
                      "list": [
                        {
                          "id": 50388,
                          "name": "London",
                          "countryCode": "GB",
                          "countryName": "United Kingdom",
                          "stateCode": "ENG",
                          "stateName": "England",
                          "latitude": 51.50853,
                          "longitude": -0.12574
                        }
                      ],
                      "page": 1,
                      "size": 20,
                      "total": 1,
                      "totalPages": 1
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "City name to search for (partial match supported)",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "description": "Filter by country codes (2 letter ISO codes) - eg: [\"US\", \"GB\", \"CA\"]",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sort fields (prefix with - for descending) - eg: [\"name\", \"-population\"]",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number for pagination - Default: 1",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page - Default: 20",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": ["Country"],
        "operationId": "v1ListCities"
      }
    },
    "/v1-list-countries": {
      "get": {
        "deprecated": false,
        "description": "List Countries - Retrieve a searchable list of countries with filtering options",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with country list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListCountriesOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Example list of countries",
                    "value": {
                      "page": 1,
                      "size": 20,
                      "total": 250,
                      "totalPages": 13,
                      "list": [
                        {
                          "code": "AW",
                          "name": {
                            "common": "Aruba",
                            "official": "Aruba"
                          }
                        },
                        {
                          "code": "US",
                          "name": {
                            "common": "United States",
                            "official": "United States of America"
                          }
                        }
                      ]
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "description": "Filter by country codes (2 or 3 letter ISO codes) - eg: [\"US\", \"GB\", \"FR\"]",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "expand",
            "in": "query",
            "description": "Fields to include in response - eg: [\"name\", \"capital\", \"currencies\"]",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "exclude",
            "in": "query",
            "description": "Fields to exclude from response - eg: [\"translations\", \"demonyms\"]",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "boolean",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sort fields (prefix with - for descending) - eg: [\"name\", \"-population\"]",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number for pagination - Default: 1",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page - Default: 20",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": ["Country"],
        "operationId": "v1ListCountries"
      }
    },
    "/v1-convert-currency": {
      "get": {
        "deprecated": false,
        "description": "Converts an amount from one currency to another using real-time exchange rates. Supports multiple data providers with automatic fallback.",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful conversion response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConvertCurrencyOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Example successful response",
                    "value": {
                      "from": "USD",
                      "to": "EUR",
                      "exchangeRate": 0.92,
                      "rateTime": "2024-01-15T10:30:00.000Z",
                      "originalAmount": 100,
                      "convertedAmount": 92,
                      "convertedText": "100 USD equal to 92 EUR"
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Invalid currency codes or amount",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Unable to fetch exchange rate",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "amount",
            "in": "query",
            "description": "Amount to convert (defaults to 1) - optional",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "from",
            "in": "query",
            "description": "Source currency code (3 letters, e.g., USD) - required",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "description": "Target currency code (3 letters, e.g., EUR) - required",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["Currency"],
        "operationId": "v1ConvertCurrency"
      }
    },
    "/v1-get-currency-details": {
      "get": {
        "deprecated": false,
        "description": "Get Currency Details - Retrieve detailed information about a specific currency",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with currency details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCurrencyDetailsOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Example AUD currency details",
                    "value": {
                      "code": "AUD",
                      "name": "Australian Dollar",
                      "nameNative": "Australian Dollar",
                      "namePlural": "Australian dollars",
                      "namePluralNative": "Australian Dollars",
                      "symbol": "AUD",
                      "symbolNative": "$",
                      "decimalDigits": 2,
                      "rounding": 0,
                      "flagCode": "au",
                      "iso": {
                        "code": "AUD",
                        "number": "036"
                      },
                      "units": {
                        "major": {
                          "name": "dollar",
                          "symbol": "$"
                        },
                        "minor": {
                          "name": "cent",
                          "symbol": "c",
                          "majorValue": 0.01
                        }
                      },
                      "banknotes": {
                        "frequent": ["$5", "$10", "$20", "$50", "$100"],
                        "rare": []
                      },
                      "coins": {
                        "frequent": ["$1", "$2", "5c", "10c", "20c", "50c"],
                        "rare": []
                      },
                      "countries": ["AU", "CX", "CC", "HM", "KI", "NR", "NF", "TV"]
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "Invalid currency code or parameters": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "Currency not found": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "description": "Currency code (3-letter ISO code) - eg: USD, EUR, BTC",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "description": "Fields to expand in response - eg: [\"symbol\", \"country\", \"decimal\"]",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "exclude",
            "in": "query",
            "description": "Fields to exclude from response",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "boolean",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "language",
            "in": "query",
            "description": "Language codes for localized names - eg: [\"en\", \"es\", \"fr\"]",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "tags": ["Currency"],
        "operationId": "v1GetCurrencyDetails"
      }
    },
    "/v1-get-currency-exchange-rate": {
      "get": {
        "deprecated": false,
        "description": "Get Currency Exchange Rate - Retrieve real-time exchange rate between two currencies",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with exchange rate",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCurrencyExchangeRateOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Example USD to EUR exchange rate",
                    "value": {
                      "from": "USD",
                      "to": "EUR",
                      "exchangeRate": 0.92,
                      "rateTime": "2024-01-15T12:00:00Z",
                      "provider": "pagesdev",
                      "cached": false
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "Invalid currency codes or parameters": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "Exchange rate not available": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "content": {
              "All providers failed": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "description": "Source currency code (3-letter ISO code) - eg: USD, EUR, GBP",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "description": "Target currency code (3-letter ISO code) - eg: JPY, CAD, AUD",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["Currency"],
        "operationId": "v1GetCurrencyExchangeRate"
      }
    },
    "/v1-list-currencies": {
      "get": {
        "deprecated": false,
        "description": "List Currencies - Retrieve a paginated list of available currencies",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with currency list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListCurrenciesOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Example list of currencies",
                    "value": {
                      "list": [
                        {
                          "code": "USD",
                          "name": "US Dollar",
                          "nameNative": "US Dollar",
                          "namePlural": "US dollars",
                          "namePluralNative": "US dollars",
                          "symbol": "USD",
                          "symbolNative": "$",
                          "decimalDigits": 2,
                          "rounding": 0,
                          "flagCode": "us",
                          "iso": {
                            "code": "USD",
                            "number": "840"
                          },
                          "countries": [
                            "US",
                            "AS",
                            "BQ",
                            "IO",
                            "EC",
                            "SV",
                            "GU",
                            "HT",
                            "MH",
                            "FM",
                            "MP",
                            "PW",
                            "PA",
                            "PR",
                            "TL",
                            "TC",
                            "UM",
                            "VG",
                            "VI"
                          ]
                        },
                        {
                          "code": "EUR",
                          "name": "Euro",
                          "nameNative": "Euro",
                          "namePlural": "euros",
                          "namePluralNative": "euros",
                          "symbol": "EUR",
                          "symbolNative": "€",
                          "decimalDigits": 2,
                          "rounding": 0,
                          "flagCode": "eu",
                          "iso": {
                            "code": "EUR",
                            "number": "978"
                          },
                          "countries": [
                            "AD",
                            "AT",
                            "AX",
                            "BE",
                            "BL",
                            "CY",
                            "DE",
                            "EE",
                            "ES",
                            "FI",
                            "FR",
                            "GF",
                            "GP",
                            "GR",
                            "HR",
                            "IE",
                            "IT",
                            "LT",
                            "LU",
                            "LV",
                            "MC",
                            "ME",
                            "MF",
                            "MQ",
                            "MT",
                            "NL",
                            "PM",
                            "PT",
                            "RE",
                            "SI",
                            "SK",
                            "SM",
                            "TF",
                            "VA",
                            "YT",
                            "XK"
                          ]
                        }
                      ],
                      "total": 180,
                      "page": 1,
                      "pageSize": 300,
                      "totalPages": 1
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "Invalid parameters": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "description": "Filter by specific currency codes - eg: [\"USD\", \"EUR\", \"GBP\"]",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "expand",
            "in": "query",
            "description": "Fields to include in response - eg: [\"symbol\", \"country\", \"decimal\", \"banknotes\", \"coins\"]",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "exclude",
            "in": "query",
            "description": "Fields to exclude from response - eg: [\"banknotes\", \"coins\"]",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "boolean",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "language",
            "in": "query",
            "description": "Language codes for localized names - eg: [\"en\", \"es\", \"fr\"]",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sort fields (prefix with - for descending) - eg: [\"code\", \"-name\"]",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number for pagination - Default: 1",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page (max: 500) - Default: 300",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": ["Currency"],
        "operationId": "v1ListCurrencies"
      }
    },
    "/v1-get-domain-whois": {
      "get": {
        "deprecated": false,
        "description": "Retrieves WHOIS information for a given domain, with optional JSON parsing and caching control",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetDomainWhoisOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Example response",
                    "value": {
                      "domain": "example.com",
                      "whoisText": "Domain Name: EXAMPLE.COM\nRegistrar: Example Registrar\n...",
                      "whoisJson": {
                        "domainName": "example.com",
                        "registrar": "Example Registrar"
                      }
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "description": "Domain name to query - required",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "parseWhoisToJson",
            "in": "query",
            "description": "Parse WHOIS text to JSON format - optional",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "tags": ["Domain Tools"],
        "operationId": "v1GetDomainWhois"
      }
    },
    "/v1-lookup-domain-dns": {
      "get": {
        "deprecated": false,
        "description": "Performs DNS lookups for various record types (A, AAAA, CNAME, MX, etc.) with caching support",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LookupDomainDnsOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Example A record response",
                    "value": {
                      "success": true,
                      "address": "example.com",
                      "type": "A",
                      "records": [
                        {
                          "address": "93.184.216.34",
                          "family": 4
                        }
                      ]
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "address",
            "in": "query",
            "description": "Domain or URL to lookup - required",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "DNS record type - required",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string",
              "enum": ["A", "AAAA", "CNAME", "MX", "NAPTR", "NS", "PTR", "SOA", "SRV", "TXT", "ANY"]
            }
          }
        ],
        "tags": ["Domain Tools"],
        "operationId": "v1GetLookupDomainDns"
      }
    },
    "/v1-get-email-details": {
      "get": {
        "deprecated": false,
        "description": "Get Email Details - Validate and verify email address",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with validation results",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetEmailDetailsOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Valid email example",
                    "value": {
                      "email": "john.doe@gmial.com",
                      "validFormat": true,
                      "validMx": false,
                      "validSmtp": false,
                      "isDisposable": false,
                      "isFree": true,
                      "detectedName": {
                        "firstName": "John",
                        "lastName": "Doe",
                        "confidence": 0.85
                      },
                      "domainSuggestion": {
                        "original": "gmial.com",
                        "suggested": "gmail.com",
                        "confidence": 0.95
                      },
                      "domainAge": {
                        "ageInDays": 7305,
                        "createdDate": "2004-08-18T00:00:00.000Z",
                        "isValid": true
                      },
                      "domainRegistration": {
                        "created": "2004-08-18T00:00:00.000Z",
                        "updated": "2023-09-19T00:00:00.000Z",
                        "expires": "2024-09-18T00:00:00.000Z",
                        "registrar": "MarkMonitor Inc.",
                        "registrantOrganization": "Google LLC",
                        "registrantCountry": "US",
                        "status": "active"
                      },
                      "score": 95
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "Invalid email format": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "description": "Email address to validate",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "verifyMx",
            "in": "query",
            "description": "Verify MX records - optional",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "verifySmtp",
            "in": "query",
            "description": "Verify SMTP connection - optional",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "detectName",
            "in": "query",
            "description": "Detect name from email address - optional",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "suggestDomain",
            "in": "query",
            "description": "Suggest domain corrections for typos - optional",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "checkDomainAge",
            "in": "query",
            "description": "Check domain age - optional",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "checkDomainRegistration",
            "in": "query",
            "description": "Check domain registration details - optional",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "timeout",
            "in": "query",
            "description": "Timeout in milliseconds (max: 10000)",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": ["Email"],
        "operationId": "v1GetEmailDetails"
      }
    },
    "/v1-get-ip-details": {
      "get": {
        "deprecated": false,
        "description": "Retrieves comprehensive geolocation data including country, city, ASN, and ISP information. Default provider is configurable via IP_PROVIDER environment variable (defaults to 'maxmind').",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response with IP geolocation details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetIpDetailsOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Example successful response",
                    "value": {
                      "ip": "8.8.8.8",
                      "ptr": "dns.google",
                      "countryCode": "US",
                      "countryCode3": "USA",
                      "countryName": "United States",
                      "continentCode": "NA",
                      "registeredCountryCode": "US",
                      "asn": 15169,
                      "aso": "Google LLC",
                      "organization": "Google",
                      "city": {
                        "name": "Mountain View",
                        "region": "California",
                        "latitude": 37.4223,
                        "longitude": -122.085,
                        "accuracyRadius": 1000,
                        "timeZone": "America/Los_Angeles",
                        "areaCode": "650"
                      }
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Invalid IP address format",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                },
                "examples": {
                  "example2": {
                    "summary": "Invalid IP address",
                    "value": {
                      "status": 400,
                      "name": "ValidationError",
                      "message": "Invalid IP address format",
                      "errors": [
                        {
                          "msg": "Invalid IP address format",
                          "param": "ip",
                          "location": "query"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "ip",
            "in": "query",
            "description": "IP address to lookup (IPv4 or IPv6). If not provided, uses the request IP - optional",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["IP"],
        "operationId": "v1GetIpDetails"
      }
    },
    "/v1-create-onetime-url": {
      "post": {
        "deprecated": false,
        "description": "Creates a one-time URL that will self-destruct after being accessed or after the specified lifetime expires. Perfect for sharing sensitive information securely.",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with created one-time URL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateOnetimeUrlOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Created one-time URL",
                    "value": {
                      "onetimeUrl": "https://in.mt/secret-abc123",
                      "domain": "in.mt",
                      "sid": "secret-abc123",
                      "createdAt": "2024-01-15T10:30:00.000Z"
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "Invalid configuration": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "Authentication required": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "tags": ["One-Time URL"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOnetimeUrlIn"
              },
              "examples": {
                "example1": {
                  "summary": "Example one-time URL creation",
                  "value": "{\n  \"text\": \"This is my secret message\",\n  \"passphrase\": \"optional-password\",\n  \"lifetime\": 86400,\n  \"domain\": \"in.mt\"\n}"
                }
              }
            }
          },
          "description": "One-time URL configuration",
          "required": true
        },
        "operationId": "v1CreateOnetimeUrl"
      }
    },
    "/v1-delete-onetime-url": {
      "post": {
        "deprecated": false,
        "description": "Deletes a one-time URL before it expires. Requires authentication or the correct passphrase.",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteOnetimeUrlOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Successful deletion",
                    "value": {
                      "success": true
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "Authentication required": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "URL not found or incorrect passphrase": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "tags": ["One-Time URL"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteOnetimeUrlIn"
              },
              "examples": {
                "example1": {
                  "summary": "Example delete request",
                  "value": "{\n  \"sid\": \"secret-abc123\",\n  \"domain\": \"in.mt\",\n  \"passphrase\": \"mySecretPassword\"\n}"
                }
              }
            }
          },
          "description": "Delete request parameters",
          "required": true
        },
        "operationId": "v1DeleteOnetimeUrl"
      }
    },
    "/v1-get-onetime-url-details": {
      "get": {
        "deprecated": false,
        "description": "Get One-Time URL Details - Retrieve and consume a one-time URL",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with one-time URL details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetOnetimeUrlDetailsOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Example one-time URL details",
                    "value": {
                      "requirePassphrase": false,
                      "onetimeUrl": "https://in.mt/secret123",
                      "sid": "secret123",
                      "domain": "in.mt",
                      "text": "This is the secret message",
                      "expireAt": "2024-01-16T10:30:00.000Z",
                      "createdAt": "2024-01-15T10:30:00.000Z"
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "URL not found or already viewed": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "sid",
            "in": "query",
            "description": "Short ID of the one-time URL",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "description": "Database ID of the one-time URL record",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "description": "Domain used for the one-time URL",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string",
              "enum": ["ur.link", "cfg.me", "in.mt", "wall.sh", "cia.sh"]
            }
          },
          {
            "name": "passphrase",
            "in": "query",
            "description": "Passphrase to access protected content",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["One-Time URL"],
        "operationId": "v1GetOnetimeUrlDetails"
      }
    },
    "/v1-list-onetime-urls": {
      "get": {
        "deprecated": false,
        "description": "List One-Time URLs - Retrieve user's one-time URLs",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with list of one-time URLs",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListOnetimeUrlsOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Example list of one-time URLs",
                    "value": {
                      "list": [
                        {
                          "requirePassphrase": false,
                          "onetimeUrl": "https://in.mt/secret123",
                          "sid": "secret123",
                          "domain": "in.mt",
                          "text": "This is the secret message",
                          "expireAt": "2024-01-16T10:30:00.000Z",
                          "createdAt": "2024-01-15T10:30:00.000Z"
                        }
                      ],
                      "page": 1,
                      "pageSize": 200,
                      "total": 10,
                      "totalPages": 1
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "sort",
            "in": "query",
            "description": "Sort fields (prefix with - for descending) - eg: [\"-createdAt\", \"expireAt\"]",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number for pagination - Default: 1",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page - Default: 200",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": ["One-Time URL"],
        "operationId": "v1ListOnetimeUrls"
      }
    },
    "/v1-get-phone-details": {
      "get": {
        "deprecated": false,
        "description": "Get Phone Details - Validate and get phone number information",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with phone details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPhoneDetailsOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Valid phone details",
                    "value": {
                      "valid": true,
                      "number": "+14155552671",
                      "localFormat": "(415) 555-2671",
                      "internationalFormat": "+1 415-555-2671",
                      "countryPrefix": "+1",
                      "countryCode": "US",
                      "countryName": "United States",
                      "location": "California",
                      "carrier": "AT&T",
                      "matchedCarriers": ["AT&T", "Verizon", "T-Mobile"],
                      "lineType": "mobile"
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "Invalid phone number": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "phone",
            "in": "query",
            "description": "Phone number to validate (with or without + prefix)",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["Phone"],
        "operationId": "v1GetPhoneDetails"
      }
    },
    "/v1-create-qr-code": {
      "post": {
        "deprecated": false,
        "description": "Create QR Code - Generate a new QR code",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with created QR code",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateQrCodeOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Created QR code",
                    "value": {
                      "_id": "507f1f77bcf86cd799439011",
                      "sid": "qr_abc123",
                      "data": "https://example.com",
                      "imageUrl": "https://api.example.com/qr/qr_abc123.png",
                      "createdAt": "2024-01-15T10:30:00.000Z"
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "Invalid configuration": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "Authentication required": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "tags": ["QR Code"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateQrCodeIn"
              },
              "examples": {
                "example1": {
                  "summary": "Example QR code creation",
                  "value": "{\n  \"options\": {\n    \"data\": \"https://example.com\",\n    \"size\": 300,\n    \"margin\": 4,\n    \"errorCorrectionLevel\": \"M\"\n  }\n}"
                }
              }
            }
          },
          "description": "QR code configuration",
          "required": true
        },
        "operationId": "v1CreateQrCode"
      }
    },
    "/v1-delete-qr-code": {
      "post": {
        "deprecated": false,
        "description": "Delete QR Code - Permanently remove a QR code",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteQrCodeOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Successful deletion",
                    "value": "{\n  \"success\": true,\n  \"deletedCount\": {\n    \"qrCode\": 1,\n    \"logs\": 42,\n  }\n}"
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "Invalid request": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "Authentication required": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "Not allowed to delete this QR code": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "QR code not found": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "tags": ["QR Code"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteQrCodeIn"
              },
              "examples": {
                "example1": {
                  "summary": "Delete by ID",
                  "value": "{\n  \"_id\": \"507f1f77bcf86cd799439011\"\n}"
                },
                "example2": {
                  "summary": "Delete by short ID",
                  "value": "{\n  \"sid\": \"qr_abc123\"\n}"
                }
              }
            }
          },
          "description": "Delete configuration",
          "required": true
        },
        "operationId": "v1DeleteQrCode"
      }
    },
    "/v1-get-qr-code-analytics": {
      "get": {
        "deprecated": false,
        "description": "Get QR Code Analytics - Retrieve detailed analytics for a QR code",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with analytics data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetQrCodeAnalyticsOut"
                },
                "examples": {
                  "example1": {
                    "summary": "QR code analytics",
                    "value": {
                      "qrCodeId": "507f1f77bcf86cd799439011",
                      "sid": "qr_abc123",
                      "totalScans": 150,
                      "uniqueScans": 75,
                      "lastScannedAt": "2024-01-15T10:30:00.000Z",
                      "deviceTypes": {
                        "mobile": 100,
                        "desktop": 40,
                        "tablet": 10
                      },
                      "countries": {
                        "US": 80,
                        "GB": 30,
                        "CA": 20
                      },
                      "browsers": {
                        "Chrome": 60,
                        "Safari": 50,
                        "Firefox": 40
                      },
                      "scanTimeline": [
                        {
                          "timestamp": "2024-01-15T10:30:00.000Z",
                          "country": "US",
                          "device": "mobile"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "Not authorized to view analytics": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "QR code not found": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "sid",
            "in": "query",
            "description": "Short ID of the QR code",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "description": "Database ID of the QR code",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "description": "Start date for analytics (ISO 8601)",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "description": "End date for analytics (ISO 8601)",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["QR Code"],
        "operationId": "v1GetQrCodeAnalytics"
      }
    },
    "/v1-get-qr-code-details": {
      "get": {
        "deprecated": false,
        "description": "Get QR Code Details - Retrieve QR code information for UI",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with QR code details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetQrCodeDetailsOut"
                },
                "examples": {
                  "example1": {
                    "summary": "QR code details",
                    "value": {
                      "_id": "507f1f77bcf86cd799439011",
                      "sid": "qr_abc123",
                      "data": "https://example.com",
                      "imageUrl": "https://api.example.com/qr/qr_abc123.png",
                      "createdAt": "2024-01-15T10:30:00.000Z",
                      "updatedAt": "2024-01-15T10:30:00.000Z"
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "QR code not found or disabled": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "sid",
            "in": "query",
            "description": "Short ID of the QR code",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "description": "Database ID of the QR code",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["QR Code"],
        "operationId": "v1GetQrCodeDetails"
      }
    },
    "/v1-get-qr-code-preview": {
      "post": {
        "deprecated": false,
        "description": "Get QR Code Preview - Generate a QR code preview as base64 image",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with QR code preview",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PreviewQrCodeOut"
                },
                "examples": {
                  "example1": {
                    "summary": "QR code preview as data URL",
                    "value": {
                      "format": "dataurl",
                      "data": "https://example.com",
                      "type": "url",
                      "qrCode": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA...",
                      "options": {
                        "size": 400,
                        "margin": 4,
                        "errorCorrectionLevel": "M"
                      }
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "Invalid configuration": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "tags": ["QR Code"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PreviewQrCodeIn"
              },
              "examples": {
                "example1": {
                  "summary": "Preview with custom colors",
                  "value": "{\n  \"data\": \"https://example.com\",\n  \"type\": \"url\",\n  \"format\": \"dataurl\",\n  \"options\": {\n    \"size\": 400,\n    \"color\": {\n      \"dark\": \"#000000\",\n      \"light\": \"#FFFFFF\"\n    }\n  }\n}"
                }
              }
            }
          },
          "description": "QR code configuration",
          "required": true
        },
        "operationId": "v1GetQrCodePreview"
      }
    },
    "/v1-list-qr-codes": {
      "get": {
        "deprecated": false,
        "description": "List QR Codes - Get paginated list of user's QR codes",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with QR codes list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListQrCodesOut"
                },
                "examples": {
                  "example1": {
                    "summary": "List of QR codes",
                    "value": {
                      "list": [
                        {
                          "_id": "507f1f77bcf86cd799439011",
                          "sid": "qr_abc123",
                          "data": "https://example.com",
                          "type": "url",
                          "imageUrl": "data:image/png;base64,...",
                          "isActive": true,
                          "createdAt": "2024-01-01T00:00:00.000Z"
                        }
                      ],
                      "pagination": {
                        "page": 1,
                        "pageSize": 20,
                        "total": 42,
                        "totalPages": 3
                      }
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "Authentication required": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page number (default: 1)",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Items per page (default: 20, max: 100)",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Filter by QR code type",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string",
              "enum": ["url", "text", "email", "phone", "sms", "wifi", "vcard"]
            }
          },
          {
            "name": "isActive",
            "in": "query",
            "description": "Filter by active status",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sort field",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string",
              "enum": ["createdAt", "-createdAt", "scans", "-scans", "updatedAt", "-updatedAt"]
            }
          },
          {
            "name": "search",
            "in": "query",
            "description": "Search in data field",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["QR Code"],
        "operationId": "v1ListQrCodes"
      }
    },
    "/v1-track-qr-view": {
      "post": {
        "deprecated": false,
        "description": "Track QR View - Track when a QR code is viewed/scanned",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackQrViewOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Tracking recorded",
                    "value": {
                      "success": true,
                      "tracked": true,
                      "message": "QR code view tracked successfully"
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "QR code not found": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "sid",
            "in": "query",
            "description": "Short ID of the QR code",
            "required": true,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["QR Code"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrackQrViewIn"
              },
              "examples": {
                "example1": {
                  "summary": "Track QR view",
                  "value": "{\n  \"referrer\": \"https://example.com\",\n  \"userAgent\": \"Mozilla/5.0...\",\n  \"meta\": {\n    \"campaign\": \"summer2024\"\n  }\n}"
                }
              }
            }
          },
          "description": "Tracking data",
          "required": false
        },
        "operationId": "v1CreateTrackQrView"
      }
    },
    "/v1-update-qr-code": {
      "post": {
        "deprecated": false,
        "description": "Update QR Code - Modify an existing QR code",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with updated QR code",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateQrCodeOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Updated QR code",
                    "value": {
                      "_id": "507f1f77bcf86cd799439011",
                      "sid": "qr_abc123",
                      "data": "https://newsite.com",
                      "type": "url",
                      "imageUrl": "data:image/png;base64,...",
                      "isActive": false,
                      "updatedAt": "2024-01-15T10:30:00.000Z"
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "Invalid configuration": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "Authentication required": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "Not allowed to update this QR code": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "QR code not found": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "tags": ["QR Code"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateQrCodeIn"
              },
              "examples": {
                "example1": {
                  "summary": "Update QR code data",
                  "value": "{\n  \"_id\": \"507f1f77bcf86cd799439011\",\n  \"data\": \"https://newsite.com\",\n  \"isActive\": false,\n  \"options\": {\n    \"size\": 400,\n    \"color\": {\n      \"dark\": \"#FF0000\"\n    }\n  }\n}"
                }
              }
            }
          },
          "description": "Update configuration",
          "required": true
        },
        "operationId": "v1UpdateQrCode"
      }
    },
    "/v1-create-bulk-short-urls": {
      "post": {
        "deprecated": false,
        "description": "Create multiple short URLs in a single request. Supports custom domains based on user settings.",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with created short URLs",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateBulkShortUrlsResponse"
                },
                "examples": {
                  "example1": {
                    "summary": "Example success response",
                    "value": {
                      "created": 2,
                      "failed": 0,
                      "batchId": "550e8400-e29b-41d4-a716-446655440000",
                      "results": [
                        {
                          "success": true,
                          "url": "https://example.com/page1",
                          "shortUrl": "https://in.mt/custom1",
                          "domain": "in.mt",
                          "sid": "custom1"
                        },
                        {
                          "success": true,
                          "url": "https://example.com/page2",
                          "shortUrl": "https://ur.link/abc123",
                          "domain": "ur.link",
                          "sid": "abc123"
                        }
                      ]
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "Invalid input data": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "tags": ["Short URL"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBulkShortUrlsRequest"
              },
              "examples": {
                "example1": {
                  "summary": "Example bulk create request",
                  "value": "{\n  \"items\": [\n    {\n      \"url\": \"https://example.com/page1\",\n      \"domain\": \"in.mt\",\n      \"suffix\": \"custom1\"\n    },\n    {\n      \"url\": \"https://example.com/page2\",\n      \"domain\": \"ur.link\"\n    }\n  ]\n}"
                }
              }
            }
          },
          "description": "",
          "required": true
        },
        "operationId": "v1CreateBulkShortUrls"
      }
    },
    "/v1-create-short-url": {
      "post": {
        "deprecated": false,
        "description": "Creates a shortened URL that redirects to the original URL. Validates the URL and checks against blocked domains.",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with created short URL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateShortUrlOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Created short URL",
                    "value": {
                      "shortUrl": "https://in.mt/custom-path",
                      "domain": "in.mt",
                      "sid": "custom-path",
                      "url": "https://example.com/very-long-url-path",
                      "createdAt": "2024-01-15T10:30:00.000Z"
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "Invalid URL or domain": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "Authentication required": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "tags": ["Short URL"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateShortUrlIn"
              },
              "examples": {
                "example1": {
                  "summary": "Example short URL creation",
                  "value": "{\n  \"url\": \"https://example.com/very-long-url-path\",\n  \"domain\": \"in.mt\",\n  \"suffix\": \"custom-path\"\n}"
                }
              }
            }
          },
          "description": "Short URL configuration",
          "required": true
        },
        "operationId": "v1CreateShortUrl"
      }
    },
    "/v1-delete-short-url": {
      "post": {
        "deprecated": false,
        "description": "Deletes a shortened URL. Requires authentication and ownership of the URL.",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteShortUrlOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Successful deletion",
                    "value": {
                      "success": true
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "Authentication required": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "URL not found": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "tags": ["Short URL"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteShortUrlIn"
              },
              "examples": {
                "example1": {
                  "summary": "Example delete request",
                  "value": "{\n  \"sid\": \"abc123\",\n  \"domain\": \"in.mt\"\n}"
                }
              }
            }
          },
          "description": "Delete request parameters",
          "required": true
        },
        "operationId": "v1DeleteShortUrl"
      }
    },
    "/v1-get-short-url-analytics": {
      "get": {
        "deprecated": false,
        "description": "Fetches detailed analytics including click data and visitor information for a shortened URL.",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with analytics data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetShortUrlAnalyticsOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Analytics data",
                    "value": {
                      "shortUrl": {
                        "_id": "507f1f77bcf86cd799439011",
                        "sid": "abc123",
                        "url": "https://example.com",
                        "domain": "in.mt",
                        "createdAt": "2024-01-15T10:30:00.000Z"
                      },
                      "views": [
                        {
                          "timestamp": "2024-01-15T10:35:00.000Z",
                          "country": "US",
                          "device": "mobile",
                          "browser": "Chrome"
                        }
                      ],
                      "domain": "in.mt",
                      "_id": "507f1f77bcf86cd799439011",
                      "sid": "abc123"
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "Authentication required": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "Short URL not found": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "sid",
            "in": "query",
            "description": "Short ID of the URL - eg: abc123",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "description": "Domain of the short URL - eg: in.mt",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "description": "Database ID of the short URL - optional",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["Short URL"],
        "operationId": "v1GetShortUrlAnalytics"
      }
    },
    "/v1-get-short-url-details": {
      "get": {
        "deprecated": false,
        "description": "Get Short URL Details - Retrieve details of a shortened URL",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with short URL details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetShortUrlDetailsOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Example short URL details",
                    "value": {
                      "_id": "507f1f77bcf86cd799439011",
                      "url": "https://example.com/very-long-url-that-needs-shortening",
                      "shortUrl": "https://in.mt/abc123",
                      "sid": "abc123",
                      "domain": "in.mt",
                      "clicks": 42,
                      "createdAt": "2024-01-15T10:30:00.000Z",
                      "updatedAt": "2024-01-15T10:30:00.000Z"
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "Short URL not found or disabled": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "sid",
            "in": "query",
            "description": "Short ID of the URL",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "description": "Domain used for the short URL",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string",
              "enum": ["ur.link", "cfg.me", "in.mt", "wall.sh", "cia.sh"]
            }
          },
          {
            "name": "_id",
            "in": "query",
            "description": "Database ID of the short URL record",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": ["Short URL"],
        "operationId": "v1GetShortUrlDetails"
      }
    },
    "/v1-list-short-urls": {
      "get": {
        "deprecated": false,
        "description": "List Short URLs - Retrieve user's shortened URLs",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with list of short URLs",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListShortUrlsOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Example list of short URLs",
                    "value": {
                      "list": [
                        {
                          "_id": "507f1f77bcf86cd799439011",
                          "url": "https://example.com/long-url",
                          "shortUrl": "https://in.mt/abc123",
                          "sid": "abc123",
                          "domain": "in.mt",
                          "clicks": 42,
                          "createdAt": "2024-01-15T10:30:00.000Z",
                          "updatedAt": "2024-01-15T10:30:00.000Z"
                        }
                      ],
                      "page": 1,
                      "pageSize": 200,
                      "total": 10,
                      "totalPages": 1
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "batchId",
            "in": "query",
            "description": "Filter by batch ID (for bulk created items)",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sort fields (prefix with - for descending) - eg: [\"-createdAt\", \"clicks\"]",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number for pagination - Default: 1",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Number of items per page - Default: 200",
            "required": false,
            "deprecated": false,
            "schema": {
              "type": "number"
            }
          }
        ],
        "tags": ["Short URL"],
        "operationId": "v1ListShortUrls"
      }
    },
    "/v1-update-short-url": {
      "post": {
        "deprecated": false,
        "description": "Updates the short ID or domain of an existing shortened URL. Requires authentication and ownership.",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with updated URL details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateShortUrlOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Updated short URL",
                    "value": {
                      "shortUrl": "https://in.mt/new-custom-path",
                      "domain": "in.mt",
                      "sid": "new-custom-path",
                      "originalUrl": "https://example.com/updated-url"
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "Invalid parameters": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "Authentication required": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "Short URL not found": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "tags": ["Short URL"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateShortUrlIn"
              },
              "examples": {
                "example1": {
                  "summary": "Example update request",
                  "value": "{\n  \"_id\": \"507f1f77bcf86cd799439011\",\n  \"sid\": \"new-custom-path\",\n  \"domain\": \"in.mt\",\n  \"url\": \"https://example.com/updated-url\"\n}"
                }
              }
            }
          },
          "description": "Update request parameters",
          "required": true
        },
        "operationId": "v1UpdateShortUrl"
      }
    },
    "/v1-scrape-url-data": {
      "post": {
        "deprecated": false,
        "description": "Scrape URL Data - Extract metadata and Open Graph data from URL",
        "security": [
          {
            "APIKeyHeader": []
          },
          {
            "APIKeyQueryParam": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success response with requested data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScrapeUrlDataOut"
                },
                "examples": {
                  "example1": {
                    "summary": "Scraped data (default: openGraph only)",
                    "value": {
                      "url": "https://example.com/article",
                      "openGraph": {
                        "og:title": "Article Title",
                        "og:description": "Article description",
                        "og:image": "https://example.com/og-image.jpg",
                        "og:type": "article"
                      }
                    }
                  }
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "Invalid URL": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "Bot detected": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "Rate limit exceeded": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpErrorOut"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The maximum number of requests per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of requests remaining in the current rate limit window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "The time at which the current rate limit window resets in UTC epoch seconds",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "tags": ["URL Metadata"],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScrapeUrlDataIn"
              },
              "examples": {
                "example1": {
                  "summary": "Example URL scraping with default options (openGraph only)",
                  "value": "{\n  \"url\": \"https://example.com/article\"\n}"
                },
                "example2": {
                  "summary": "Example with custom data types",
                  "value": "{\n  \"url\": \"https://example.com/article\",\n  \"dataTypes\": [\"metadata\", \"openGraph\", \"html\"]\n}"
                },
                "example3": {
                  "summary": "Example with cache skip",
                  "value": "{\n  \"url\": \"https://example.com/article\",\n  \"skipCache\": true\n}"
                },
                "example4": {
                  "summary": "Example with specific metadata fields",
                  "value": "{\n  \"url\": \"https://example.com/article\",\n  \"metadataFields\": [\"title\", \"description\", \"image\", \"author\"]\n}"
                }
              }
            }
          },
          "description": "URL and options for scraping",
          "required": true
        },
        "operationId": "v1CreateScrapeUrlData"
      }
    }
  },
  "tags": [
    {
      "name": "API Key",
      "description": "Manage API keys, permissions, rate limits, and access control for your applications"
    },
    {
      "name": "API Usage",
      "description": "Monitor API usage, track quotas, analyze performance metrics, and optimize costs"
    },
    {
      "name": "Country",
      "description": "Comprehensive data for 250+ countries including flags, currencies, languages, and timezones"
    },
    {
      "name": "Currency",
      "description": "Bank-grade currency data for 170+ currencies with real-time rates updated every 60 seconds"
    },
    {
      "name": "Domain Tools",
      "description": "Comprehensive domain WHOIS and DNS lookup tools for brand protection and monitoring"
    },
    {
      "name": "Email",
      "description": "Reduce bounce rates by 95% with real-time email validation, disposable detection, and MX verification"
    },
    {
      "name": "IP",
      "description": "Prevent fraud with 99.9% accurate IP intelligence, VPN/proxy detection, threat analysis, and geolocation"
    },
    {
      "name": "One-Time URL",
      "description": "Share sensitive data securely with self-destructing links and end-to-end encryption"
    },
    {
      "name": "Phone",
      "description": "Cut SMS costs by 40% with global phone validation for 240+ countries, carrier detection, and line type identification"
    },
    {
      "name": "QR Code",
      "description": "Generate high-quality QR codes with custom branding, bulk generation, and analytics tracking"
    },
    {
      "name": "Short URL",
      "description": "Create branded short links with advanced analytics and custom domains"
    },
    {
      "name": "URL Metadata",
      "description": "Extract Open Graph tags, meta information, and structured data from any website"
    }
  ],
  "externalDocs": {
    "description": "Full API Documentation and SDKs",
    "url": "https://dev.me/docs"
  }
}
