{
    "openapi": "3.1.0",
    "info": {
        "title": "Infikey free calculators API",
        "version": "1.0.0",
        "description": "Free, read-only, no-key API for the calculators at https://infikeytechnologies.com/tools by Infikey Technologies. Instant calculators return the computed result and a share_url that opens the same result on the website. Estimate tools return a pre-filled request link instead of a price. These tools are provided free for general information and planning only. Instant calculators give estimates based on your inputs and stated assumptions, and estimate tools only collect requirements — neither is a quote, offer, or financial, legal, tax, investment or other professional advice. Infikey Technologies Private Limited, Infikey Technologies LLC and their directors, employees and affiliates make no warranty about the accuracy, completeness or suitability of any tool or result, and accept no liability for any loss or damage, direct or indirect, arising from their use or from reliance on their results. Verify all figures independently before making any decision. Use of these tools is at your own risk.",
        "contact": {
            "name": "Infikey Technologies",
            "url": "https://infikeytechnologies.com/contact"
        }
    },
    "servers": [
        {
            "url": "https://infikeytechnologies.com"
        }
    ],
    "paths": {
        "/api/tools": {
            "get": {
                "operationId": "listCalculators",
                "summary": "List all free Infikey calculators with their parameters",
                "responses": {
                    "200": {
                        "description": "Calculators",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/app-development-cost-calculator": {
            "get": {
                "operationId": "prefillAppDevelopmentCost",
                "summary": "App development cost calculator",
                "description": "App development cost depends mainly on the number of platforms (iOS, Android, web), the features (payments, chat, maps, video, AI), the depth of custom design and the integrations with other systems. Cross-platform frameworks such as Flutter or React Native let one codebase serve iOS and Android. Choose your options below and Infikey replies with a scoped estimate for your exact app. Returns a pre-filled estimate request link; no automated price.",
                "parameters": [
                    {
                        "name": "platforms",
                        "in": "query",
                        "required": false,
                        "description": "Platforms",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: ios, android, cross_platform, web_app, admin_panel"
                        }
                    },
                    {
                        "name": "app_type",
                        "in": "query",
                        "required": false,
                        "description": "Type of app",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "marketplace",
                                "ecommerce",
                                "on_demand",
                                "booking",
                                "social",
                                "fintech",
                                "health",
                                "education",
                                "saas",
                                "enterprise",
                                "other"
                            ]
                        }
                    },
                    {
                        "name": "features",
                        "in": "query",
                        "required": false,
                        "description": "Features you need",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: login, payments, subscriptions, chat, push, maps, booking, video, reviews, analytics, multilingual, offline, ai, integrations"
                        }
                    },
                    {
                        "name": "design",
                        "in": "query",
                        "required": false,
                        "description": "Design",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "have_designs",
                                "standard",
                                "custom"
                            ],
                            "default": "custom"
                        }
                    },
                    {
                        "name": "stage",
                        "in": "query",
                        "required": false,
                        "description": "Where are you now?",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "idea",
                                "designs",
                                "existing"
                            ],
                            "default": "idea"
                        }
                    },
                    {
                        "name": "timeline",
                        "in": "query",
                        "required": false,
                        "description": "Target launch",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "asap",
                                "3_months",
                                "6_months",
                                "later",
                                "flexible"
                            ],
                            "default": "flexible"
                        }
                    },
                    {
                        "name": "budget",
                        "in": "query",
                        "required": false,
                        "description": "Budget in mind (optional). Any currency. Helps us suggest the right scope for a first release.",
                        "schema": {
                            "type": "string",
                            "maxLength": 500
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Pre-filled estimate request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/app-like-cost-calculator": {
            "get": {
                "operationId": "prefillAppLikeCost",
                "summary": "\"App like X\" cost calculator",
                "description": "Building an app like Uber, Swiggy or Airbnb usually means building three products: a customer app, a provider or partner app, and an admin panel, plus the backend that matches orders, takes payments and tracks locations in real time. The cost depends on which of the famous app’s features you really need for launch. Pick the closest app below, adjust the features, and Infikey replies with a scoped estimate. Returns a pre-filled estimate request link; no automated price.",
                "parameters": [
                    {
                        "name": "app_like",
                        "in": "query",
                        "required": false,
                        "description": "Closest well-known app",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "uber",
                                "swiggy",
                                "blinkit",
                                "airbnb",
                                "urban_company",
                                "netflix",
                                "instagram",
                                "whatsapp",
                                "tinder",
                                "amazon",
                                "practo",
                                "other"
                            ],
                            "default": "uber"
                        }
                    },
                    {
                        "name": "other_app",
                        "in": "query",
                        "required": false,
                        "description": "Which app, if another? (optional)",
                        "schema": {
                            "type": "string",
                            "maxLength": 500
                        }
                    },
                    {
                        "name": "apps",
                        "in": "query",
                        "required": false,
                        "description": "Apps to build",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: customer, provider, admin, web"
                        }
                    },
                    {
                        "name": "platforms",
                        "in": "query",
                        "required": false,
                        "description": "Mobile platforms",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "cross_platform",
                                "native_both",
                                "android",
                                "ios"
                            ],
                            "default": "cross_platform"
                        }
                    },
                    {
                        "name": "scope",
                        "in": "query",
                        "required": false,
                        "description": "How close to the original?",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "mvp",
                                "similar",
                                "full"
                            ],
                            "default": "mvp"
                        }
                    },
                    {
                        "name": "twist",
                        "in": "query",
                        "required": false,
                        "description": "What makes yours different?",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: niche, b2b, ai, subscription, multi_region, white_label"
                        }
                    },
                    {
                        "name": "launch_market",
                        "in": "query",
                        "required": false,
                        "description": "Launch market (optional). City or country, e.g. Ahmedabad, Dubai, London.",
                        "schema": {
                            "type": "string",
                            "maxLength": 500
                        }
                    },
                    {
                        "name": "timeline",
                        "in": "query",
                        "required": false,
                        "description": "Target launch",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "asap",
                                "3_months",
                                "6_months",
                                "flexible"
                            ],
                            "default": "flexible"
                        }
                    },
                    {
                        "name": "budget",
                        "in": "query",
                        "required": false,
                        "description": "Budget in mind (optional). Any currency.",
                        "schema": {
                            "type": "string",
                            "maxLength": 500
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Pre-filled estimate request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/website-cost-calculator": {
            "get": {
                "operationId": "prefillWebsiteCost",
                "summary": "Website cost calculator",
                "description": "Website cost depends on the type of site (company site, e-commerce store, portal or web app), the number of unique page layouts, custom design, content writing, integrations such as payments, CRM or booking, and the platform — WordPress, Shopify, Webflow or a custom build. Select what you need below and Infikey replies with a scoped estimate. Returns a pre-filled estimate request link; no automated price.",
                "parameters": [
                    {
                        "name": "site_type",
                        "in": "query",
                        "required": false,
                        "description": "Type of website",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "business",
                                "landing",
                                "ecommerce",
                                "portal",
                                "redesign"
                            ],
                            "default": "business"
                        }
                    },
                    {
                        "name": "pages",
                        "in": "query",
                        "required": false,
                        "description": "Approximate number of pages",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "1_5",
                                "6_15",
                                "16_40",
                                "40_plus"
                            ],
                            "default": "6_15"
                        }
                    },
                    {
                        "name": "features",
                        "in": "query",
                        "required": false,
                        "description": "Features",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: cms, blog, multilingual, forms, booking, payments, catalogue, members, erp, seo, copywriting, maintenance"
                        }
                    },
                    {
                        "name": "platform",
                        "in": "query",
                        "required": false,
                        "description": "Platform preference",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "none",
                                "wordpress",
                                "shopify",
                                "webflow",
                                "laravel",
                                "headless"
                            ],
                            "default": "none"
                        }
                    },
                    {
                        "name": "design",
                        "in": "query",
                        "required": false,
                        "description": "Design",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "have_designs",
                                "template",
                                "custom"
                            ],
                            "default": "custom"
                        }
                    },
                    {
                        "name": "current_site",
                        "in": "query",
                        "required": false,
                        "description": "Current website (optional)",
                        "schema": {
                            "type": "string",
                            "maxLength": 500
                        }
                    },
                    {
                        "name": "timeline",
                        "in": "query",
                        "required": false,
                        "description": "Target launch",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "asap",
                                "1_month",
                                "3_months",
                                "flexible"
                            ],
                            "default": "flexible"
                        }
                    },
                    {
                        "name": "budget",
                        "in": "query",
                        "required": false,
                        "description": "Budget in mind (optional). Any currency.",
                        "schema": {
                            "type": "string",
                            "maxLength": 500
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Pre-filled estimate request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/ecommerce-website-cost-calculator": {
            "get": {
                "operationId": "prefillEcommerceWebsiteCost",
                "summary": "E-commerce website cost calculator",
                "description": "E-commerce website cost depends on the platform (Shopify, WooCommerce, Magento or a custom build), the size and complexity of the catalogue, payment and shipping rules, integrations with inventory, ERP or accounting, and whether other sellers will list products (a marketplace). Monthly platform, app and payment fees add to the build. Choose your options below and Infikey replies with a scoped estimate. Returns a pre-filled estimate request link; no automated price.",
                "parameters": [
                    {
                        "name": "store_type",
                        "in": "query",
                        "required": false,
                        "description": "Type of store",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "d2c",
                                "b2b",
                                "marketplace",
                                "subscription",
                                "migration"
                            ],
                            "default": "d2c"
                        }
                    },
                    {
                        "name": "products",
                        "in": "query",
                        "required": false,
                        "description": "Number of products (SKUs)",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "under_100",
                                "100_1k",
                                "1k_10k",
                                "over_10k"
                            ],
                            "default": "100_1k"
                        }
                    },
                    {
                        "name": "features",
                        "in": "query",
                        "required": false,
                        "description": "Store features",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: variants, multi_currency, multilingual, cod, shipping_rules, loyalty, reviews, wishlist, subscriptions, b2b_pricing, vendor_panel, app"
                        }
                    },
                    {
                        "name": "integrations",
                        "in": "query",
                        "required": false,
                        "description": "Integrations",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: payment, shipping, erp, accounting, crm, marketplaces, pos"
                        }
                    },
                    {
                        "name": "platform",
                        "in": "query",
                        "required": false,
                        "description": "Platform preference",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "none",
                                "shopify",
                                "woocommerce",
                                "magento",
                                "custom",
                                "headless"
                            ],
                            "default": "none"
                        }
                    },
                    {
                        "name": "design",
                        "in": "query",
                        "required": false,
                        "description": "Design",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "theme",
                                "custom",
                                "have_designs"
                            ],
                            "default": "custom"
                        }
                    },
                    {
                        "name": "current_store",
                        "in": "query",
                        "required": false,
                        "description": "Current store URL (optional)",
                        "schema": {
                            "type": "string",
                            "maxLength": 500
                        }
                    },
                    {
                        "name": "timeline",
                        "in": "query",
                        "required": false,
                        "description": "Target launch",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "asap",
                                "1_month",
                                "3_months",
                                "flexible"
                            ],
                            "default": "flexible"
                        }
                    },
                    {
                        "name": "budget",
                        "in": "query",
                        "required": false,
                        "description": "Budget in mind (optional). Any currency.",
                        "schema": {
                            "type": "string",
                            "maxLength": 500
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Pre-filled estimate request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/custom-software-cost-calculator": {
            "get": {
                "operationId": "prefillCustomSoftwareCost",
                "summary": "Custom software cost calculator",
                "description": "Custom software cost is driven by the number of modules and user roles, the complexity of business rules and approvals, integrations with existing systems, data migration, reporting, and security or compliance needs. Starting with the workflow that costs your team the most time keeps the first release focused. Describe your system below and Infikey replies with a scoped estimate and delivery plan. Returns a pre-filled estimate request link; no automated price.",
                "parameters": [
                    {
                        "name": "system_type",
                        "in": "query",
                        "required": false,
                        "description": "What are you building?",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "crm",
                                "erp",
                                "portal",
                                "workflow",
                                "inventory",
                                "hr",
                                "reporting",
                                "replace_legacy",
                                "other"
                            ],
                            "default": "workflow"
                        }
                    },
                    {
                        "name": "users",
                        "in": "query",
                        "required": false,
                        "description": "Number of users",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "under_10",
                                "10_100",
                                "100_1k",
                                "over_1k"
                            ],
                            "default": "10_100"
                        }
                    },
                    {
                        "name": "roles",
                        "in": "query",
                        "required": false,
                        "description": "User roles",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2_4",
                                "5_plus"
                            ],
                            "default": "2_4"
                        }
                    },
                    {
                        "name": "modules",
                        "in": "query",
                        "required": false,
                        "description": "Modules",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: auth, approvals, documents, billing, inventory, scheduling, notifications, reports, audit, mobile, ai"
                        }
                    },
                    {
                        "name": "integrations",
                        "in": "query",
                        "required": false,
                        "description": "Systems to connect",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: accounting, erp, crm, payments, sso, government, other_api"
                        }
                    },
                    {
                        "name": "data_migration",
                        "in": "query",
                        "required": false,
                        "description": "Existing data to migrate?",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "none",
                                "spreadsheets",
                                "legacy"
                            ],
                            "default": "spreadsheets"
                        }
                    },
                    {
                        "name": "hosting",
                        "in": "query",
                        "required": false,
                        "description": "Hosting",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "cloud",
                                "on_premise",
                                "recommend"
                            ],
                            "default": "cloud"
                        }
                    },
                    {
                        "name": "compliance",
                        "in": "query",
                        "required": false,
                        "description": "Compliance needs",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: gdpr, dpdp, hipaa, soc2"
                        }
                    },
                    {
                        "name": "timeline",
                        "in": "query",
                        "required": false,
                        "description": "Target go-live",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "asap",
                                "3_months",
                                "6_months",
                                "flexible"
                            ],
                            "default": "flexible"
                        }
                    },
                    {
                        "name": "budget",
                        "in": "query",
                        "required": false,
                        "description": "Budget in mind (optional). Any currency.",
                        "schema": {
                            "type": "string",
                            "maxLength": 500
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Pre-filled estimate request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/saas-mvp-cost-calculator": {
            "get": {
                "operationId": "prefillSaasMvpCost",
                "summary": "SaaS MVP cost calculator",
                "description": "A SaaS MVP needs more than the core feature: sign-up and team accounts, multi-tenant data separation, subscription billing, an admin console, email notifications, analytics and secure hosting. Cost depends on how much of this the first release needs and on integrations and compliance. An MVP proves demand with the smallest set; version 1 adds what paying customers expect. Scope yours below for an estimate from Infikey. Returns a pre-filled estimate request link; no automated price.",
                "parameters": [
                    {
                        "name": "release",
                        "in": "query",
                        "required": false,
                        "description": "Release",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "prototype",
                                "mvp",
                                "v1",
                                "rebuild"
                            ],
                            "default": "mvp"
                        }
                    },
                    {
                        "name": "audience",
                        "in": "query",
                        "required": false,
                        "description": "Customers",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "consumer",
                                "smb",
                                "enterprise"
                            ],
                            "default": "smb"
                        }
                    },
                    {
                        "name": "core",
                        "in": "query",
                        "required": false,
                        "description": "Platform features",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: auth, teams, multi_tenant, billing, usage_billing, admin, onboarding, notifications, api, white_label, sso, ai, mobile"
                        }
                    },
                    {
                        "name": "integrations",
                        "in": "query",
                        "required": false,
                        "description": "Integrations",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: crm, accounting, slack, google, zapier, other"
                        }
                    },
                    {
                        "name": "compliance",
                        "in": "query",
                        "required": false,
                        "description": "Compliance",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: gdpr, soc2, hipaa, data_residency"
                        }
                    },
                    {
                        "name": "stage",
                        "in": "query",
                        "required": false,
                        "description": "Where are you now?",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "idea",
                                "validated",
                                "designs",
                                "live"
                            ],
                            "default": "idea"
                        }
                    },
                    {
                        "name": "product",
                        "in": "query",
                        "required": false,
                        "description": "Describe the product in one line (optional)",
                        "schema": {
                            "type": "string",
                            "maxLength": 500
                        }
                    },
                    {
                        "name": "timeline",
                        "in": "query",
                        "required": false,
                        "description": "Target launch",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "asap",
                                "3_months",
                                "6_months",
                                "flexible"
                            ],
                            "default": "flexible"
                        }
                    },
                    {
                        "name": "budget",
                        "in": "query",
                        "required": false,
                        "description": "Budget in mind (optional). Any currency.",
                        "schema": {
                            "type": "string",
                            "maxLength": 500
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Pre-filled estimate request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/project-timeline-estimator": {
            "get": {
                "operationId": "calculateProjectTimelineEstimator",
                "summary": "Software project timeline estimator",
                "description": "A software project timeline is the sum of its phases: discovery, design, development, testing and launch. Development time grows with the number of unique screens and integrations and their complexity, and shrinks — less than proportionally — as developers are added, because coordination takes time. Design can overlap with development. Enter your scope below to see a phase-by-phase plan in weeks. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "project_type",
                        "in": "query",
                        "required": false,
                        "description": "Project type",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "website",
                                "web_app",
                                "mobile",
                                "mobile_native",
                                "enterprise"
                            ],
                            "default": "web_app"
                        }
                    },
                    {
                        "name": "complexity",
                        "in": "query",
                        "required": false,
                        "description": "Complexity",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "simple",
                                "standard",
                                "complex"
                            ],
                            "default": "standard"
                        }
                    },
                    {
                        "name": "screens",
                        "in": "query",
                        "required": false,
                        "description": "Unique screens or page layouts. Count distinct layouts, not every page that reuses one.",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 500,
                            "default": 25
                        }
                    },
                    {
                        "name": "integrations",
                        "in": "query",
                        "required": false,
                        "description": "Third-party integrations. Payments, CRM, maps, ERP, SMS, etc.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 50,
                            "default": 3
                        }
                    },
                    {
                        "name": "developers",
                        "in": "query",
                        "required": false,
                        "description": "Developers on the project",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 30,
                            "default": 3
                        }
                    },
                    {
                        "name": "design_ready",
                        "in": "query",
                        "required": false,
                        "description": "Are designs ready?",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "no",
                                "yes"
                            ],
                            "default": "no"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/software-maintenance-cost-calculator": {
            "get": {
                "operationId": "calculateSoftwareMaintenanceCost",
                "summary": "Software maintenance cost calculator",
                "description": "A common rule of thumb is that software maintenance costs 15–25% of the original build cost every year, covering bug fixes, security patches, operating-system and framework updates, monitoring and small improvements. Hosting, third-party licences and API fees come on top. A higher support level, such as 24×7 response with an SLA, raises the budget. Enter your numbers below for a yearly and multi-year estimate. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "build_cost",
                        "in": "query",
                        "required": false,
                        "description": "Original build cost",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 50000
                        }
                    },
                    {
                        "name": "rate",
                        "in": "query",
                        "required": false,
                        "description": "Yearly maintenance rate. 15–25% of build cost is the commonly used range.",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 20
                        }
                    },
                    {
                        "name": "level",
                        "in": "query",
                        "required": false,
                        "description": "Support level",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "basic",
                                "standard",
                                "premium"
                            ],
                            "default": "standard"
                        }
                    },
                    {
                        "name": "hosting",
                        "in": "query",
                        "required": false,
                        "description": "Hosting & infrastructure per month",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 300
                        }
                    },
                    {
                        "name": "licences",
                        "in": "query",
                        "required": false,
                        "description": "Licences, APIs & SaaS tools per month",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 150
                        }
                    },
                    {
                        "name": "years",
                        "in": "query",
                        "required": false,
                        "description": "Years to plan for",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 10,
                            "default": 3
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/logo-branding-cost-calculator": {
            "get": {
                "operationId": "prefillLogoBrandingCost",
                "summary": "Logo & branding cost calculator",
                "description": "Logo and branding cost depends on what you need beyond the logo itself: research and strategy, the number of initial concepts and revision rounds, a brand guideline document, and applications such as stationery, social media templates, packaging, signage and presentation decks. A refresh of an existing brand usually needs less exploration than a new one. Choose your deliverables below and Infikey replies with a costed proposal. Returns a pre-filled estimate request link; no automated price.",
                "parameters": [
                    {
                        "name": "stage",
                        "in": "query",
                        "required": false,
                        "description": "What do you need?",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "new",
                                "refresh",
                                "logo_only",
                                "extend"
                            ],
                            "default": "new"
                        }
                    },
                    {
                        "name": "deliverables",
                        "in": "query",
                        "required": false,
                        "description": "Deliverables",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: naming, strategy, logo, guidelines, stationery, social, deck, packaging, signage, website_ui, illustrations, motion"
                        }
                    },
                    {
                        "name": "concepts",
                        "in": "query",
                        "required": false,
                        "description": "Initial logo concepts",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "2",
                                "3",
                                "5"
                            ],
                            "default": "3"
                        }
                    },
                    {
                        "name": "industry",
                        "in": "query",
                        "required": false,
                        "description": "Industry. e.g. fintech, restaurant, clinic, real estate",
                        "schema": {
                            "type": "string",
                            "maxLength": 500
                        }
                    },
                    {
                        "name": "style",
                        "in": "query",
                        "required": false,
                        "description": "Style direction",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: minimal, premium, playful, corporate, bold, traditional"
                        }
                    },
                    {
                        "name": "markets",
                        "in": "query",
                        "required": false,
                        "description": "Markets",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "one",
                                "several",
                                "global"
                            ],
                            "default": "one"
                        }
                    },
                    {
                        "name": "timeline",
                        "in": "query",
                        "required": false,
                        "description": "Needed by",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "asap",
                                "2_weeks",
                                "1_month",
                                "flexible"
                            ],
                            "default": "flexible"
                        }
                    },
                    {
                        "name": "budget",
                        "in": "query",
                        "required": false,
                        "description": "Budget in mind (optional). Any currency.",
                        "schema": {
                            "type": "string",
                            "maxLength": 500
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Pre-filled estimate request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/offshore-team-cost-calculator": {
            "get": {
                "operationId": "prefillOffshoreTeamCost",
                "summary": "Offshore team vs in-house cost calculator",
                "description": "The true cost of an in-house developer is more than salary: recruitment, benefits, payroll taxes, equipment, office space, management time and the months a role stays unfilled. A dedicated offshore team bundles these into one monthly rate. Tell us the roles, seniority and working hours you need, and Infikey replies with a team proposal you can compare like-for-like. Returns a pre-filled estimate request link; no automated price.",
                "parameters": [
                    {
                        "name": "roles",
                        "in": "query",
                        "required": false,
                        "description": "Roles you need",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: frontend, backend, fullstack, mobile, qa, devops, designer, pm, data_ai"
                        }
                    },
                    {
                        "name": "team_size",
                        "in": "query",
                        "required": false,
                        "description": "Team size",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2_3",
                                "4_6",
                                "7_10",
                                "10_plus"
                            ],
                            "default": "2_3"
                        }
                    },
                    {
                        "name": "seniority",
                        "in": "query",
                        "required": false,
                        "description": "Seniority",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "mid",
                                "senior",
                                "mixed"
                            ],
                            "default": "mixed"
                        }
                    },
                    {
                        "name": "engagement",
                        "in": "query",
                        "required": false,
                        "description": "Engagement",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "dedicated",
                                "part_time",
                                "project"
                            ],
                            "default": "dedicated"
                        }
                    },
                    {
                        "name": "duration",
                        "in": "query",
                        "required": false,
                        "description": "Expected duration",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "1_3",
                                "3_6",
                                "6_12",
                                "ongoing"
                            ],
                            "default": "6_12"
                        }
                    },
                    {
                        "name": "overlap",
                        "in": "query",
                        "required": false,
                        "description": "Working-hours overlap",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "uk",
                                "us_east",
                                "us_west",
                                "gulf",
                                "india",
                                "flexible"
                            ],
                            "default": "uk"
                        }
                    },
                    {
                        "name": "compare_with",
                        "in": "query",
                        "required": false,
                        "description": "Compare with hiring in",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "uk",
                                "us",
                                "uae",
                                "europe",
                                "australia",
                                "other"
                            ],
                            "default": "uk"
                        }
                    },
                    {
                        "name": "stack",
                        "in": "query",
                        "required": false,
                        "description": "Technology stack (optional). e.g. React, Laravel, Flutter, AWS",
                        "schema": {
                            "type": "string",
                            "maxLength": 500
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Pre-filled estimate request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/dedicated-developer-cost-calculator": {
            "get": {
                "operationId": "prefillDedicatedDeveloperCost",
                "summary": "Dedicated developer cost calculator",
                "description": "A dedicated developer works only on your product, full-time or part-time, usually on a monthly rate that covers salary, benefits, equipment, office, HR and replacement cover. The rate depends on the role, seniority, technology stack, working-hours overlap and contract length. Choose what you need below and Infikey replies with monthly rates and developer profiles you can interview. Returns a pre-filled estimate request link; no automated price.",
                "parameters": [
                    {
                        "name": "role",
                        "in": "query",
                        "required": false,
                        "description": "Role",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "frontend",
                                "backend",
                                "fullstack",
                                "mobile",
                                "qa",
                                "devops",
                                "ai",
                                "designer",
                                "pm"
                            ],
                            "default": "fullstack"
                        }
                    },
                    {
                        "name": "seniority",
                        "in": "query",
                        "required": false,
                        "description": "Seniority",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "junior",
                                "mid",
                                "senior",
                                "lead"
                            ],
                            "default": "mid"
                        }
                    },
                    {
                        "name": "count",
                        "in": "query",
                        "required": false,
                        "description": "Number of developers",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3_5",
                                "6_plus"
                            ],
                            "default": "1"
                        }
                    },
                    {
                        "name": "hours",
                        "in": "query",
                        "required": false,
                        "description": "Hours",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "full_time",
                                "part_time",
                                "hourly"
                            ],
                            "default": "full_time"
                        }
                    },
                    {
                        "name": "duration",
                        "in": "query",
                        "required": false,
                        "description": "Duration",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "1_3",
                                "3_6",
                                "6_12",
                                "ongoing"
                            ],
                            "default": "6_12"
                        }
                    },
                    {
                        "name": "overlap",
                        "in": "query",
                        "required": false,
                        "description": "Working hours",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "uk",
                                "us",
                                "gulf",
                                "india",
                                "flexible"
                            ],
                            "default": "uk"
                        }
                    },
                    {
                        "name": "stack",
                        "in": "query",
                        "required": false,
                        "description": "Skills / stack. e.g. Laravel + Vue, Flutter + Firebase, AWS + Terraform",
                        "schema": {
                            "type": "string",
                            "maxLength": 500
                        }
                    },
                    {
                        "name": "start",
                        "in": "query",
                        "required": false,
                        "description": "Start",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "now",
                                "2_weeks",
                                "1_month",
                                "later"
                            ],
                            "default": "2_weeks"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Pre-filled estimate request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/fixed-price-vs-time-and-materials-calculator": {
            "get": {
                "operationId": "calculateFixedPriceVsTimeAndMaterials",
                "summary": "Fixed price vs time & materials calculator",
                "description": "Fixed price suits projects with a clear, stable scope: the vendor carries the delivery risk and you know the cost up front. Time and materials (T&M) suits evolving products: you pay for the hours worked and can change priorities every sprint. Many projects use a hybrid — a fixed-price discovery phase followed by T&M sprints with a budget cap. Answer the questions below to see which fits your project. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "scope",
                        "in": "query",
                        "required": false,
                        "description": "How clear is the scope?",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "clear",
                                "mostly",
                                "evolving"
                            ],
                            "default": "mostly"
                        }
                    },
                    {
                        "name": "changes",
                        "in": "query",
                        "required": false,
                        "description": "How much change do you expect during the project?",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "low",
                                "some",
                                "high"
                            ],
                            "default": "some"
                        }
                    },
                    {
                        "name": "budget",
                        "in": "query",
                        "required": false,
                        "description": "Budget priority",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "fixed",
                                "balanced",
                                "flexible"
                            ],
                            "default": "balanced"
                        }
                    },
                    {
                        "name": "involvement",
                        "in": "query",
                        "required": false,
                        "description": "How involved can you be?",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "low",
                                "weekly",
                                "daily"
                            ],
                            "default": "weekly"
                        }
                    },
                    {
                        "name": "duration",
                        "in": "query",
                        "required": false,
                        "description": "Expected duration",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "short",
                                "medium",
                                "long"
                            ],
                            "default": "medium"
                        }
                    },
                    {
                        "name": "discovery",
                        "in": "query",
                        "required": false,
                        "description": "Has a discovery or specification phase been done?",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "done",
                                "partial",
                                "none"
                            ],
                            "default": "partial"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/freelancer-vs-agency-vs-in-house-calculator": {
            "get": {
                "operationId": "calculateFreelancerVsAgencyVsInHouse",
                "summary": "Freelancer vs agency vs in-house calculator",
                "description": "Compare the three options on total cost, not hourly rate. A freelancer’s rate looks lowest but adds your management time and continuity risk. An agency rate includes project management, QA and cover. An in-house hire adds benefits, equipment and recruitment costs on top of salary, and usually takes months to start — so it rarely pays off for projects shorter than a year. Enter your own rates below. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "hours",
                        "in": "query",
                        "required": false,
                        "description": "Development hours needed per month",
                        "schema": {
                            "type": "number",
                            "minimum": 10,
                            "maximum": 10000,
                            "default": 160
                        }
                    },
                    {
                        "name": "months",
                        "in": "query",
                        "required": false,
                        "description": "Project length",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 60,
                            "default": 6
                        }
                    },
                    {
                        "name": "freelancer_rate",
                        "in": "query",
                        "required": false,
                        "description": "Freelancer hourly rate. Replace the example with real quotes.",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 10000,
                            "default": 45
                        }
                    },
                    {
                        "name": "freelancer_overhead",
                        "in": "query",
                        "required": false,
                        "description": "Your extra management & rework for freelancers. Your time coordinating, testing and fixing gaps.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 20
                        }
                    },
                    {
                        "name": "agency_rate",
                        "in": "query",
                        "required": false,
                        "description": "Agency blended hourly rate. Including project management and QA.",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 10000,
                            "default": 40
                        }
                    },
                    {
                        "name": "salary",
                        "in": "query",
                        "required": false,
                        "description": "In-house annual salary per developer",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000,
                            "default": 90000
                        }
                    },
                    {
                        "name": "employer_overhead",
                        "in": "query",
                        "required": false,
                        "description": "Employer overheads on salary. Taxes, benefits, equipment, office, software.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 150,
                            "default": 30
                        }
                    },
                    {
                        "name": "recruitment",
                        "in": "query",
                        "required": false,
                        "description": "Recruitment cost per hire",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000,
                            "default": 12000
                        }
                    },
                    {
                        "name": "hiring_months",
                        "in": "query",
                        "required": false,
                        "description": "Time to hire",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 12,
                            "default": 3
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/sprint-capacity-calculator": {
            "get": {
                "operationId": "calculateSprintCapacity",
                "summary": "Sprint capacity & velocity calculator",
                "description": "Sprint capacity is the focused working time a team has in a sprint: people × working days, minus leave and holidays, × focus hours per day, minus time for scrum ceremonies and meetings. To plan story points, scale your average velocity by available capacity compared with a full sprint. Dividing the remaining backlog by that velocity gives the number of sprints, and so a delivery date. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "members",
                        "in": "query",
                        "required": false,
                        "description": "Developers in the team",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 50,
                            "default": 5
                        }
                    },
                    {
                        "name": "sprint_days",
                        "in": "query",
                        "required": false,
                        "description": "Working days per sprint. 10 for a two-week sprint.",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 30,
                            "default": 10
                        }
                    },
                    {
                        "name": "days_off",
                        "in": "query",
                        "required": false,
                        "description": "Leave & holidays this sprint (person-days, whole team)",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 500,
                            "default": 3
                        }
                    },
                    {
                        "name": "focus_hours",
                        "in": "query",
                        "required": false,
                        "description": "Focus hours per person per day",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 12,
                            "default": 6
                        }
                    },
                    {
                        "name": "ceremonies",
                        "in": "query",
                        "required": false,
                        "description": "Time in meetings & ceremonies. Planning, stand-ups, review, retrospective, refinement.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 12
                        }
                    },
                    {
                        "name": "velocity",
                        "in": "query",
                        "required": false,
                        "description": "Average velocity (points per full sprint). Average of your last 3–5 sprints.",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 2000,
                            "default": 40
                        }
                    },
                    {
                        "name": "backlog",
                        "in": "query",
                        "required": false,
                        "description": "Remaining backlog (story points)",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000,
                            "default": 300
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/ai-chatbot-cost-calculator": {
            "get": {
                "operationId": "prefillAiChatbotCost",
                "summary": "AI chatbot cost calculator",
                "description": "An AI chatbot has two costs: the one-time build (conversation design, connecting your knowledge sources, integrations, testing and guardrails) and the running cost (LLM tokens, hosting, vector search and monitoring). Build cost grows with channels and integrations; running cost grows with conversation volume and model choice. Scope yours below and Infikey replies with both estimates. Returns a pre-filled estimate request link; no automated price.",
                "parameters": [
                    {
                        "name": "use_case",
                        "in": "query",
                        "required": false,
                        "description": "Main use case",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "support",
                                "sales",
                                "internal",
                                "booking",
                                "shopping",
                                "other"
                            ],
                            "default": "support"
                        }
                    },
                    {
                        "name": "channels",
                        "in": "query",
                        "required": false,
                        "description": "Channels",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: website, whatsapp, app, slack_teams, social, voice"
                        }
                    },
                    {
                        "name": "knowledge",
                        "in": "query",
                        "required": false,
                        "description": "What should it learn from?",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: website, documents, helpdesk, catalogue, database, drive"
                        }
                    },
                    {
                        "name": "integrations",
                        "in": "query",
                        "required": false,
                        "description": "Actions & integrations",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: crm, helpdesk, calendar, orders, payments, handoff"
                        }
                    },
                    {
                        "name": "volume",
                        "in": "query",
                        "required": false,
                        "description": "Expected conversations per month",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "under_1k",
                                "1k_10k",
                                "10k_100k",
                                "over_100k"
                            ],
                            "default": "1k_10k"
                        }
                    },
                    {
                        "name": "languages",
                        "in": "query",
                        "required": false,
                        "description": "Languages",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2_3",
                                "4_plus"
                            ],
                            "default": "1"
                        }
                    },
                    {
                        "name": "model",
                        "in": "query",
                        "required": false,
                        "description": "Model preference",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "none",
                                "openai",
                                "claude",
                                "gemini",
                                "open_source"
                            ],
                            "default": "none"
                        }
                    },
                    {
                        "name": "residency",
                        "in": "query",
                        "required": false,
                        "description": "Data residency requirement",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "none",
                                "india",
                                "uk_eu",
                                "uae",
                                "us"
                            ],
                            "default": "none"
                        }
                    },
                    {
                        "name": "timeline",
                        "in": "query",
                        "required": false,
                        "description": "Target launch",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "asap",
                                "1_month",
                                "3_months",
                                "flexible"
                            ],
                            "default": "flexible"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Pre-filled estimate request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/llm-token-cost-calculator": {
            "get": {
                "operationId": "calculateLlmTokenCost",
                "summary": "LLM token & API cost calculator",
                "description": "LLM APIs charge per million tokens, with output tokens costing 5–8 times more than input. Monthly cost = requests × (input tokens × input price + output tokens × output price) ÷ 1,000,000. For example, 1,000 requests a day with 1,500 input and 400 output tokens costs about $210 a month on GPT-6.1 Sol or Claude Sonnet 5.5, and about $11 on GPT-6 Luna. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "model",
                        "in": "query",
                        "required": false,
                        "description": "Model",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "gpt-6-astra",
                                "gpt-6.1-sol",
                                "gpt-6-luna",
                                "claude-fable-5.1",
                                "claude-opus-5.5",
                                "claude-sonnet-5.5",
                                "claude-haiku-4.5",
                                "gemini-3.1-pro",
                                "gemini-3.8-flash",
                                "gemini-3.5-flash-lite"
                            ],
                            "default": "gpt-6.1-sol"
                        }
                    },
                    {
                        "name": "requests",
                        "in": "query",
                        "required": false,
                        "description": "Requests per day. API calls, e.g. chatbot messages or documents processed.",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 100000000,
                            "default": 1000
                        }
                    },
                    {
                        "name": "input_tokens",
                        "in": "query",
                        "required": false,
                        "description": "Input tokens per request. System prompt + context + user message. 1,000 tokens ≈ 750 English words.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 200000,
                            "default": 1500
                        }
                    },
                    {
                        "name": "output_tokens",
                        "in": "query",
                        "required": false,
                        "description": "Output tokens per request. Length of the reply, including any reasoning tokens.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 128000,
                            "default": 400
                        }
                    },
                    {
                        "name": "cached",
                        "in": "query",
                        "required": false,
                        "description": "Input served from prompt cache. Share of input tokens that repeat across requests (e.g. a long system prompt).",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 0
                        }
                    },
                    {
                        "name": "days",
                        "in": "query",
                        "required": false,
                        "description": "Days per month",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 31,
                            "default": 30
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/ai-customer-support-cost-calculator": {
            "get": {
                "operationId": "calculateAiCustomerSupportCost",
                "summary": "AI support agent vs human support cost calculator",
                "description": "An AI support agent answers every incoming conversation first and resolves a share of them — order status, policies, how-to questions — handing the rest to human agents. Savings = human cost for the tickets AI resolves − the AI cost per conversation − platform fees. With 5,000 tickets a month and a 50% AI resolution rate, roughly half the agent workload is freed for complex cases. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "tickets",
                        "in": "query",
                        "required": false,
                        "description": "Support conversations per month",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 5000
                        }
                    },
                    {
                        "name": "agent_cost",
                        "in": "query",
                        "required": false,
                        "description": "Cost per human agent per month. Salary plus benefits, tools, office and management.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000,
                            "default": 2500
                        }
                    },
                    {
                        "name": "tickets_per_agent",
                        "in": "query",
                        "required": false,
                        "description": "Conversations one agent handles per month",
                        "schema": {
                            "type": "number",
                            "minimum": 10,
                            "maximum": 20000,
                            "default": 600
                        }
                    },
                    {
                        "name": "resolution",
                        "in": "query",
                        "required": false,
                        "description": "Share the AI resolves without a human",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 50
                        }
                    },
                    {
                        "name": "ai_cost",
                        "in": "query",
                        "required": false,
                        "description": "AI cost per conversation. Model tokens or per-resolution platform pricing.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 0.8
                        }
                    },
                    {
                        "name": "platform_fee",
                        "in": "query",
                        "required": false,
                        "description": "AI platform & monitoring per month",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000,
                            "default": 500
                        }
                    },
                    {
                        "name": "setup_cost",
                        "in": "query",
                        "required": false,
                        "description": "One-off setup cost (from your quote). Example value — replace with your own quote to see payback.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 15000
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/ai-automation-roi-calculator": {
            "get": {
                "operationId": "calculateAiAutomationRoi",
                "summary": "AI automation ROI calculator",
                "description": "AI automation ROI starts with the time a task takes today: tasks per month × minutes per task × hourly cost. Multiply by the share AI can automate, subtract AI running and maintenance costs, and you have the monthly saving. Payback is the one-off build cost divided by that saving. Document processing, data entry, email triage and report writing are common high-ROI candidates. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "tasks",
                        "in": "query",
                        "required": false,
                        "description": "Tasks per month. e.g. invoices processed, emails triaged, reports written.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 2000
                        }
                    },
                    {
                        "name": "minutes",
                        "in": "query",
                        "required": false,
                        "description": "Minutes per task today",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000,
                            "default": 12
                        }
                    },
                    {
                        "name": "hourly_cost",
                        "in": "query",
                        "required": false,
                        "description": "Fully loaded hourly staff cost",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000,
                            "default": 25
                        }
                    },
                    {
                        "name": "automation",
                        "in": "query",
                        "required": false,
                        "description": "Share of the work AI automates. Allow time for human review of AI output.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 70
                        }
                    },
                    {
                        "name": "ai_cost",
                        "in": "query",
                        "required": false,
                        "description": "AI running cost per task",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000,
                            "default": 0.05
                        }
                    },
                    {
                        "name": "monthly_fixed",
                        "in": "query",
                        "required": false,
                        "description": "Hosting, licences & maintenance per month",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000,
                            "default": 400
                        }
                    },
                    {
                        "name": "build_cost",
                        "in": "query",
                        "required": false,
                        "description": "One-off build cost (from your quote). Example value — replace with your own quote.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 20000
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/rag-ai-assistant-cost-calculator": {
            "get": {
                "operationId": "prefillRagAiAssistantCost",
                "summary": "AI assistant on your documents (RAG) cost calculator",
                "description": "An AI assistant on your own documents uses retrieval-augmented generation (RAG): documents are split into passages, indexed in a vector database, and the most relevant passages are given to a language model to answer each question with citations. Cost depends on the number and type of sources, document volume, user permissions, query volume, model choice and where it is hosted. Scope yours below for an estimate. Returns a pre-filled estimate request link; no automated price.",
                "parameters": [
                    {
                        "name": "use_case",
                        "in": "query",
                        "required": false,
                        "description": "Who will use it?",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "employees",
                                "customers",
                                "both"
                            ],
                            "default": "employees"
                        }
                    },
                    {
                        "name": "sources",
                        "in": "query",
                        "required": false,
                        "description": "Where is the knowledge?",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: files, drive, wiki, helpdesk, website, database, email, scanned"
                        }
                    },
                    {
                        "name": "volume",
                        "in": "query",
                        "required": false,
                        "description": "How many documents?",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "under_1k",
                                "1k_10k",
                                "10k_100k",
                                "over_100k"
                            ],
                            "default": "1k_10k"
                        }
                    },
                    {
                        "name": "users",
                        "in": "query",
                        "required": false,
                        "description": "Users",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "under_50",
                                "50_500",
                                "500_5k",
                                "over_5k"
                            ],
                            "default": "50_500"
                        }
                    },
                    {
                        "name": "permissions",
                        "in": "query",
                        "required": false,
                        "description": "Access control",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "open",
                                "roles",
                                "document"
                            ],
                            "default": "roles"
                        }
                    },
                    {
                        "name": "interfaces",
                        "in": "query",
                        "required": false,
                        "description": "Where should people ask questions?",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: web, slack_teams, in_app, website, api"
                        }
                    },
                    {
                        "name": "hosting",
                        "in": "query",
                        "required": false,
                        "description": "Hosting & model",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "recommend",
                                "cloud_api",
                                "private_cloud",
                                "self_hosted"
                            ],
                            "default": "recommend"
                        }
                    },
                    {
                        "name": "compliance",
                        "in": "query",
                        "required": false,
                        "description": "Requirements",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: residency, audit, citations, pii"
                        }
                    },
                    {
                        "name": "timeline",
                        "in": "query",
                        "required": false,
                        "description": "Target launch",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "asap",
                                "1_month",
                                "3_months",
                                "flexible"
                            ],
                            "default": "flexible"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Pre-filled estimate request",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/voice-ai-agent-cost-calculator": {
            "get": {
                "operationId": "calculateVoiceAiAgentCost",
                "summary": "Voice AI agent vs call centre cost calculator",
                "description": "A voice AI agent is usually priced per minute of conversation, covering speech recognition, the language model, text-to-speech and telephony. A human call centre costs agents’ paid hours, including time between calls and after-call work. Compare them per call: AI cost = minutes × AI rate; human cost = (talk + wrap-up minutes) ÷ occupancy × hourly cost. Calls the AI cannot finish are transferred to a person. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "calls",
                        "in": "query",
                        "required": false,
                        "description": "Calls per month",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 3000
                        }
                    },
                    {
                        "name": "minutes",
                        "in": "query",
                        "required": false,
                        "description": "Average call length",
                        "schema": {
                            "type": "number",
                            "minimum": 0.5,
                            "maximum": 120,
                            "default": 4
                        }
                    },
                    {
                        "name": "ai_rate",
                        "in": "query",
                        "required": false,
                        "description": "Voice AI cost per minute. All-in: speech, model, voice and telephony.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10,
                            "default": 0.12
                        }
                    },
                    {
                        "name": "handled",
                        "in": "query",
                        "required": false,
                        "description": "Calls the AI completes without a person",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 60
                        }
                    },
                    {
                        "name": "hourly",
                        "in": "query",
                        "required": false,
                        "description": "Human agent cost per paid hour. Fully loaded: wages, benefits, seat, supervision.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000,
                            "default": 15
                        }
                    },
                    {
                        "name": "wrap_up",
                        "in": "query",
                        "required": false,
                        "description": "After-call work per call",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 1
                        }
                    },
                    {
                        "name": "occupancy",
                        "in": "query",
                        "required": false,
                        "description": "Agent occupancy. Share of paid time spent handling calls.",
                        "schema": {
                            "type": "number",
                            "minimum": 10,
                            "maximum": 100,
                            "default": 75
                        }
                    },
                    {
                        "name": "platform_fee",
                        "in": "query",
                        "required": false,
                        "description": "AI platform fee per month",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000,
                            "default": 300
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/ai-content-cost-savings-calculator": {
            "get": {
                "operationId": "calculateAiContentCostSavings",
                "summary": "AI content generation savings calculator",
                "description": "AI-assisted content does not remove people from the process; it shortens drafting. Manual cost per article = writer hours × hourly rate. AI-assisted cost = (research, editing and fact-checking hours) × rate + AI tool costs. The saving is largest for structured content such as product descriptions and summaries, and smallest for original thought leadership, which still needs expert time. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "pieces",
                        "in": "query",
                        "required": false,
                        "description": "Pieces of content per month",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000,
                            "default": 20
                        }
                    },
                    {
                        "name": "manual_hours",
                        "in": "query",
                        "required": false,
                        "description": "Hours per piece, fully manual. Research, writing, editing.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 200,
                            "default": 6
                        }
                    },
                    {
                        "name": "ai_hours",
                        "in": "query",
                        "required": false,
                        "description": "Hours per piece, AI-assisted. Briefing, editing, fact-checking, adding expertise.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 200,
                            "default": 2.5
                        }
                    },
                    {
                        "name": "rate",
                        "in": "query",
                        "required": false,
                        "description": "Writer / editor hourly cost",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000,
                            "default": 35
                        }
                    },
                    {
                        "name": "tool_cost",
                        "in": "query",
                        "required": false,
                        "description": "AI tools per month",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000,
                            "default": 100
                        }
                    },
                    {
                        "name": "review_cost",
                        "in": "query",
                        "required": false,
                        "description": "Extra expert review per piece. e.g. legal or medical sign-off for AI-assisted drafts.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000,
                            "default": 0
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/ai-readiness-score-calculator": {
            "get": {
                "operationId": "calculateAiReadinessScore",
                "summary": "AI readiness assessment",
                "description": "AI readiness is how prepared a business is to get value from AI. It rests on eight areas: accessible data, documented processes, clear use cases, leadership support, skills, technology with APIs, governance for safe use, and budget. Businesses rarely need to be strong in all eight to start — a pilot needs good data and a clear use case. Answer the questions below for your score and next steps. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "data",
                        "in": "query",
                        "required": false,
                        "description": "Where is your business data?",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "scattered",
                                "some",
                                "central",
                                "connected"
                            ],
                            "default": "some"
                        }
                    },
                    {
                        "name": "processes",
                        "in": "query",
                        "required": false,
                        "description": "How well are your processes documented?",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "none",
                                "some",
                                "most",
                                "measured"
                            ],
                            "default": "some"
                        }
                    },
                    {
                        "name": "use_cases",
                        "in": "query",
                        "required": false,
                        "description": "Have you identified AI use cases?",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "none",
                                "ideas",
                                "shortlist",
                                "business_case"
                            ],
                            "default": "ideas"
                        }
                    },
                    {
                        "name": "leadership",
                        "in": "query",
                        "required": false,
                        "description": "Leadership support for AI",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "sceptical",
                                "interested",
                                "sponsor",
                                "strategy"
                            ],
                            "default": "interested"
                        }
                    },
                    {
                        "name": "skills",
                        "in": "query",
                        "required": false,
                        "description": "AI and data skills in the team",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "none",
                                "tools",
                                "champions",
                                "team"
                            ],
                            "default": "tools"
                        }
                    },
                    {
                        "name": "technology",
                        "in": "query",
                        "required": false,
                        "description": "Your technology",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "legacy",
                                "mixed",
                                "cloud",
                                "api"
                            ],
                            "default": "mixed"
                        }
                    },
                    {
                        "name": "governance",
                        "in": "query",
                        "required": false,
                        "description": "Rules for using AI and data",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "none",
                                "informal",
                                "policy",
                                "governed"
                            ],
                            "default": "informal"
                        }
                    },
                    {
                        "name": "budget",
                        "in": "query",
                        "required": false,
                        "description": "Budget for AI",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "none",
                                "possible",
                                "pilot",
                                "program"
                            ],
                            "default": "possible"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/google-ads-budget-calculator": {
            "get": {
                "operationId": "calculateGoogleAdsBudget",
                "summary": "Google Ads budget & ROAS calculator",
                "description": "Your Google Ads budget = target leads ÷ conversion rate × cost per click. For example, 50 leads a month at a 4% conversion rate and $2.50 CPC needs 1,250 clicks, or about $3,125 a month — a $62.50 cost per lead. Campaigns are profitable when ROAS (revenue ÷ ad spend) is above break-even ROAS, which is 1 ÷ gross margin. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "leads",
                        "in": "query",
                        "required": false,
                        "description": "Target leads per month",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 1000000,
                            "default": 50
                        }
                    },
                    {
                        "name": "conversion_rate",
                        "in": "query",
                        "required": false,
                        "description": "Landing page conversion rate. Share of ad clicks that become a lead (form, call, booking).",
                        "schema": {
                            "type": "number",
                            "minimum": 0.1,
                            "maximum": 100,
                            "default": 4
                        }
                    },
                    {
                        "name": "cpc",
                        "in": "query",
                        "required": false,
                        "description": "Average cost per click. From Google Ads Keyword Planner or past campaigns.",
                        "schema": {
                            "type": "number",
                            "minimum": 0.01,
                            "maximum": 100000,
                            "default": 2.5
                        }
                    },
                    {
                        "name": "close_rate",
                        "in": "query",
                        "required": false,
                        "description": "Lead-to-customer close rate",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 20
                        }
                    },
                    {
                        "name": "deal_value",
                        "in": "query",
                        "required": false,
                        "description": "Average revenue per customer",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 5000
                        }
                    },
                    {
                        "name": "margin",
                        "in": "query",
                        "required": false,
                        "description": "Gross margin. Revenue left after delivery costs, before marketing.",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 60
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/roas-calculator": {
            "get": {
                "operationId": "calculateRoas",
                "summary": "ROAS & break-even ROAS calculator",
                "description": "ROAS (return on ad spend) is revenue from ads divided by ad spend: $20,000 of revenue from $5,000 of ads is a 4x ROAS. Whether that is profitable depends on margin. Break-even ROAS is 1 ÷ gross margin — at a 40% margin you need 2.5x just to cover ad spend. To earn a target profit, aim for 1 ÷ (margin − target profit margin). Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "spend",
                        "in": "query",
                        "required": false,
                        "description": "Ad spend",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 5000
                        }
                    },
                    {
                        "name": "revenue",
                        "in": "query",
                        "required": false,
                        "description": "Revenue from ads",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000000,
                            "default": 20000
                        }
                    },
                    {
                        "name": "margin",
                        "in": "query",
                        "required": false,
                        "description": "Gross margin. Revenue left after product, delivery and payment costs.",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 40
                        }
                    },
                    {
                        "name": "fees",
                        "in": "query",
                        "required": false,
                        "description": "Agency, tool & creative fees",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 0
                        }
                    },
                    {
                        "name": "target_profit",
                        "in": "query",
                        "required": false,
                        "description": "Target net profit margin",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 99,
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/marketing-roi-calculator": {
            "get": {
                "operationId": "calculateMarketingRoi",
                "summary": "Marketing ROI calculator",
                "description": "Marketing ROI = (gross profit from the campaign − campaign cost) ÷ campaign cost. Using gross profit rather than revenue gives the true return: $30,000 of revenue at a 50% margin from a $10,000 campaign is a 50% ROI, not 200%. Include every cost — media, agency fees, creative, tools and staff time — and only revenue the campaign really caused. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "media",
                        "in": "query",
                        "required": false,
                        "description": "Media / ad spend",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 7000
                        }
                    },
                    {
                        "name": "other_costs",
                        "in": "query",
                        "required": false,
                        "description": "Agency, creative, tools & staff time",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 3000
                        }
                    },
                    {
                        "name": "revenue",
                        "in": "query",
                        "required": false,
                        "description": "Revenue attributed to the campaign",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000000,
                            "default": 30000
                        }
                    },
                    {
                        "name": "margin",
                        "in": "query",
                        "required": false,
                        "description": "Gross margin",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 50
                        }
                    },
                    {
                        "name": "baseline",
                        "in": "query",
                        "required": false,
                        "description": "Revenue you would have made anyway. Optional: subtract sales that would have happened without the campaign.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000000,
                            "default": 0
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/customer-acquisition-cost-calculator": {
            "get": {
                "operationId": "calculateCustomerAcquisitionCost",
                "summary": "Customer acquisition cost (CAC) calculator",
                "description": "Customer acquisition cost (CAC) is total sales and marketing spend divided by the number of new customers won in the same period. Channel CAC divides each channel’s spend by the customers it brought in; blended CAC adds shared costs such as the sales team and tools. CAC payback — CAC ÷ monthly gross profit per customer — shows how long a customer takes to repay their cost. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "spend_search",
                        "in": "query",
                        "required": false,
                        "description": "Paid search spend",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 6000
                        }
                    },
                    {
                        "name": "customers_search",
                        "in": "query",
                        "required": false,
                        "description": "New customers from paid search",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000,
                            "default": 30
                        }
                    },
                    {
                        "name": "spend_social",
                        "in": "query",
                        "required": false,
                        "description": "Paid social spend",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 4000
                        }
                    },
                    {
                        "name": "customers_social",
                        "in": "query",
                        "required": false,
                        "description": "New customers from paid social",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000,
                            "default": 16
                        }
                    },
                    {
                        "name": "spend_content",
                        "in": "query",
                        "required": false,
                        "description": "SEO & content spend",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 2500
                        }
                    },
                    {
                        "name": "customers_content",
                        "in": "query",
                        "required": false,
                        "description": "New customers from seo & content",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000,
                            "default": 14
                        }
                    },
                    {
                        "name": "spend_other",
                        "in": "query",
                        "required": false,
                        "description": "Other channels spend",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 0
                        }
                    },
                    {
                        "name": "customers_other",
                        "in": "query",
                        "required": false,
                        "description": "New customers from other channels",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000,
                            "default": 0
                        }
                    },
                    {
                        "name": "shared",
                        "in": "query",
                        "required": false,
                        "description": "Shared sales & marketing costs. Sales salaries and commissions, marketing team, tools, agency retainers.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 8000
                        }
                    },
                    {
                        "name": "arpa",
                        "in": "query",
                        "required": false,
                        "description": "Average revenue per customer per month. For one-off purchases, enter the average order value and read payback as orders.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000,
                            "default": 150
                        }
                    },
                    {
                        "name": "margin",
                        "in": "query",
                        "required": false,
                        "description": "Gross margin",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 70
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/lead-funnel-calculator": {
            "get": {
                "operationId": "calculateLeadFunnel",
                "summary": "Lead funnel & conversion calculator",
                "description": "A lead funnel multiplies conversion rates stage by stage: visitors × visitor-to-lead rate = leads; leads × qualification rate = qualified leads; qualified leads × close rate = customers; customers × average deal value = revenue. Working backwards from a revenue target gives the traffic you need. Improving the weakest stage usually adds more revenue than buying more traffic. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "visitors",
                        "in": "query",
                        "required": false,
                        "description": "Website visitors per month",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 10000
                        }
                    },
                    {
                        "name": "lead_rate",
                        "in": "query",
                        "required": false,
                        "description": "Visitor-to-lead rate",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 2
                        }
                    },
                    {
                        "name": "qualified_rate",
                        "in": "query",
                        "required": false,
                        "description": "Leads that are qualified",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 40
                        }
                    },
                    {
                        "name": "close_rate",
                        "in": "query",
                        "required": false,
                        "description": "Qualified leads that buy",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 20
                        }
                    },
                    {
                        "name": "deal_value",
                        "in": "query",
                        "required": false,
                        "description": "Average deal value",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 3000
                        }
                    },
                    {
                        "name": "target_revenue",
                        "in": "query",
                        "required": false,
                        "description": "Monthly revenue target",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000000,
                            "default": 100000
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/seo-traffic-value-calculator": {
            "get": {
                "operationId": "calculateSeoTrafficValue",
                "summary": "SEO traffic value calculator",
                "description": "SEO traffic value is the amount you would have to spend on Google Ads to buy the same clicks: monthly non-brand organic visits × the average cost per click for those keywords. Brand searches are usually excluded because you would win them cheaply anyway. Combined with your conversion rate and lead value, it shows both the ad-equivalent value and the real revenue your organic traffic brings. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "visits",
                        "in": "query",
                        "required": false,
                        "description": "Organic search visits per month. From Google Search Console clicks or Analytics.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 5000
                        }
                    },
                    {
                        "name": "non_brand",
                        "in": "query",
                        "required": false,
                        "description": "Share of visits from non-brand searches",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 70
                        }
                    },
                    {
                        "name": "cpc",
                        "in": "query",
                        "required": false,
                        "description": "Average cost per click for your keywords. From Google Ads Keyword Planner.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000,
                            "default": 2.5
                        }
                    },
                    {
                        "name": "conversion_rate",
                        "in": "query",
                        "required": false,
                        "description": "Visitor-to-lead or sale conversion rate",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 2
                        }
                    },
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "description": "Average value of a lead or sale. For leads: deal value × close rate.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 200
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/seo-roi-calculator": {
            "get": {
                "operationId": "calculateSeoRoi",
                "summary": "SEO ROI forecast calculator",
                "description": "An SEO ROI forecast multiplies the monthly search volume of your target keywords by the click-through rate of the position you expect to reach, then by your conversion and close rates and deal value. Rankings build gradually, so the forecast ramps traffic up over several months. ROI compares the gross profit from that revenue with the SEO investment over the same period. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "volume",
                        "in": "query",
                        "required": false,
                        "description": "Monthly search volume of target keywords",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 15000
                        }
                    },
                    {
                        "name": "position",
                        "in": "query",
                        "required": false,
                        "description": "Expected average position",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "1",
                                "2",
                                "3",
                                "4_5",
                                "6_10",
                                "11_20"
                            ],
                            "default": "4_5"
                        }
                    },
                    {
                        "name": "conversion_rate",
                        "in": "query",
                        "required": false,
                        "description": "Visitor-to-lead rate",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 2
                        }
                    },
                    {
                        "name": "close_rate",
                        "in": "query",
                        "required": false,
                        "description": "Lead-to-customer rate",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 20
                        }
                    },
                    {
                        "name": "deal_value",
                        "in": "query",
                        "required": false,
                        "description": "Average revenue per customer",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 2500
                        }
                    },
                    {
                        "name": "margin",
                        "in": "query",
                        "required": false,
                        "description": "Gross margin",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 60
                        }
                    },
                    {
                        "name": "budget",
                        "in": "query",
                        "required": false,
                        "description": "Monthly SEO investment",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 1500
                        }
                    },
                    {
                        "name": "ramp",
                        "in": "query",
                        "required": false,
                        "description": "Months to reach the target position",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 24,
                            "default": 6
                        }
                    },
                    {
                        "name": "months",
                        "in": "query",
                        "required": false,
                        "description": "Forecast period",
                        "schema": {
                            "type": "number",
                            "minimum": 3,
                            "maximum": 36,
                            "default": 12
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/marketing-budget-calculator": {
            "get": {
                "operationId": "calculateMarketingBudget",
                "summary": "Marketing budget calculator",
                "description": "Most companies set the marketing budget as a percentage of revenue. Gartner’s 2026 CMO Spend Survey puts average marketing budgets at 7.8% of company revenue, but the right share depends on the business: manufacturers often spend low single digits, while fast-growing SaaS companies spend far more. Pick your business type and growth goal below for a budget and a suggested channel split. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "revenue",
                        "in": "query",
                        "required": false,
                        "description": "Annual revenue (or revenue target)",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000000,
                            "default": 2000000
                        }
                    },
                    {
                        "name": "business",
                        "in": "query",
                        "required": false,
                        "description": "Business type",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "b2b_services",
                                "b2b_saas",
                                "ecommerce",
                                "local",
                                "consumer_brand",
                                "manufacturing"
                            ],
                            "default": "b2b_services"
                        }
                    },
                    {
                        "name": "goal",
                        "in": "query",
                        "required": false,
                        "description": "Growth goal",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "maintain",
                                "grow",
                                "aggressive"
                            ],
                            "default": "grow"
                        }
                    },
                    {
                        "name": "custom_percent",
                        "in": "query",
                        "required": false,
                        "description": "Or set your own % of revenue. Leave at 0 to use the suggested share.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 0
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/email-marketing-roi-calculator": {
            "get": {
                "operationId": "calculateEmailMarketingRoi",
                "summary": "Email marketing ROI calculator",
                "description": "Email revenue = emails delivered × open rate × click-to-open rate × conversion rate × average order value. ROI compares that revenue with the cost of your email platform, content and design. Because open rates are inflated by privacy features such as Apple Mail Privacy Protection, clicks and orders are the more reliable measures of how a list performs. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "subscribers",
                        "in": "query",
                        "required": false,
                        "description": "Subscribers",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 10000
                        }
                    },
                    {
                        "name": "emails",
                        "in": "query",
                        "required": false,
                        "description": "Campaigns per month",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 60,
                            "default": 4
                        }
                    },
                    {
                        "name": "delivery",
                        "in": "query",
                        "required": false,
                        "description": "Delivery rate",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 98
                        }
                    },
                    {
                        "name": "open_rate",
                        "in": "query",
                        "required": false,
                        "description": "Open rate",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 35
                        }
                    },
                    {
                        "name": "ctor",
                        "in": "query",
                        "required": false,
                        "description": "Click-to-open rate. Clicks ÷ opens.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 8
                        }
                    },
                    {
                        "name": "conversion",
                        "in": "query",
                        "required": false,
                        "description": "Click-to-order conversion rate",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 3
                        }
                    },
                    {
                        "name": "order_value",
                        "in": "query",
                        "required": false,
                        "description": "Average order value",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000,
                            "default": 60
                        }
                    },
                    {
                        "name": "cost",
                        "in": "query",
                        "required": false,
                        "description": "Monthly email costs. Platform, design, copywriting and staff time.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 500
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/engagement-rate-calculator": {
            "get": {
                "operationId": "calculateEngagementRate",
                "summary": "Social media engagement rate calculator",
                "description": "Engagement rate by followers = (likes + comments + shares + saves) ÷ followers ÷ number of posts × 100. Engagement rate by reach divides by the people who actually saw the posts, which is fairer for accounts whose reach varies. Benchmarks differ widely by platform: TikTok engagement tends to be far higher than Facebook or X, so compare like with like. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "platform",
                        "in": "query",
                        "required": false,
                        "description": "Platform",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "instagram",
                                "facebook",
                                "tiktok",
                                "x",
                                "linkedin",
                                "youtube"
                            ],
                            "default": "instagram"
                        }
                    },
                    {
                        "name": "followers",
                        "in": "query",
                        "required": false,
                        "description": "Followers",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 1000000000,
                            "default": 5000
                        }
                    },
                    {
                        "name": "posts",
                        "in": "query",
                        "required": false,
                        "description": "Number of posts these totals cover",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 10000,
                            "default": 10
                        }
                    },
                    {
                        "name": "likes",
                        "in": "query",
                        "required": false,
                        "description": "Likes / reactions (total)",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000000,
                            "default": 600
                        }
                    },
                    {
                        "name": "comments",
                        "in": "query",
                        "required": false,
                        "description": "Comments (total)",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000000,
                            "default": 45
                        }
                    },
                    {
                        "name": "shares",
                        "in": "query",
                        "required": false,
                        "description": "Shares / reposts (total)",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000000,
                            "default": 20
                        }
                    },
                    {
                        "name": "saves",
                        "in": "query",
                        "required": false,
                        "description": "Saves (total)",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000000,
                            "default": 25
                        }
                    },
                    {
                        "name": "reach",
                        "in": "query",
                        "required": false,
                        "description": "Total reach (optional). Sum of accounts reached across these posts.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000000,
                            "default": 0
                        }
                    },
                    {
                        "name": "impressions",
                        "in": "query",
                        "required": false,
                        "description": "Total impressions or views (optional)",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000000,
                            "default": 0
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/saas-metrics-calculator": {
            "get": {
                "operationId": "calculateSaasMetrics",
                "summary": "SaaS metrics calculator (MRR, churn, LTV, CAC)",
                "description": "MRR is paying customers × average revenue per account (ARPA); ARR is MRR × 12. Monthly churn is customers lost ÷ customers at the start of the month. LTV = ARPA × gross margin ÷ churn rate, and a healthy SaaS business usually aims for an LTV:CAC ratio of 3:1 or better with CAC paid back within about 12 months. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "customers",
                        "in": "query",
                        "required": false,
                        "description": "Paying customers at start of month",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 100000000,
                            "default": 200
                        }
                    },
                    {
                        "name": "arpa",
                        "in": "query",
                        "required": false,
                        "description": "Average revenue per account per month (ARPA)",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000,
                            "default": 99
                        }
                    },
                    {
                        "name": "new_customers",
                        "in": "query",
                        "required": false,
                        "description": "New customers this month",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 20
                        }
                    },
                    {
                        "name": "churned",
                        "in": "query",
                        "required": false,
                        "description": "Customers lost this month",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 6
                        }
                    },
                    {
                        "name": "expansion",
                        "in": "query",
                        "required": false,
                        "description": "Expansion MRR (upgrades, add-ons)",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 500
                        }
                    },
                    {
                        "name": "contraction",
                        "in": "query",
                        "required": false,
                        "description": "Contraction MRR (downgrades)",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 100
                        }
                    },
                    {
                        "name": "margin",
                        "in": "query",
                        "required": false,
                        "description": "Gross margin",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 80
                        }
                    },
                    {
                        "name": "cac",
                        "in": "query",
                        "required": false,
                        "description": "Customer acquisition cost (CAC). Sales and marketing spend ÷ new customers.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 600
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/churn-rate-calculator": {
            "get": {
                "operationId": "calculateChurnRate",
                "summary": "Churn rate & retention calculator",
                "description": "Churn rate = customers lost during a period ÷ customers at the start of that period. Monthly churn does not convert to annual churn by multiplying by 12: annual churn = 1 − (1 − monthly churn)¹². So 3% monthly churn is about 31% a year, not 36%. Average customer lifetime is roughly 1 ÷ monthly churn — about 33 months at 3%. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "description": "Period of your numbers",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "month",
                                "quarter",
                                "year"
                            ],
                            "default": "month"
                        }
                    },
                    {
                        "name": "start",
                        "in": "query",
                        "required": false,
                        "description": "Customers at start of period",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 1000000000,
                            "default": 1000
                        }
                    },
                    {
                        "name": "lost",
                        "in": "query",
                        "required": false,
                        "description": "Customers lost during period",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 30
                        }
                    },
                    {
                        "name": "new",
                        "in": "query",
                        "required": false,
                        "description": "New customers during period",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 60
                        }
                    },
                    {
                        "name": "months",
                        "in": "query",
                        "required": false,
                        "description": "Forecast length",
                        "schema": {
                            "type": "number",
                            "minimum": 3,
                            "maximum": 60,
                            "default": 12
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/customer-lifetime-value-calculator": {
            "get": {
                "operationId": "calculateCustomerLifetimeValue",
                "summary": "Customer lifetime value (LTV) calculator",
                "description": "Customer lifetime value (LTV or CLV) is the gross profit a customer brings over their whole relationship with you. For subscriptions: LTV = monthly revenue per customer × gross margin ÷ monthly churn. For repeat purchases: LTV = average order value × orders per year × years as a customer × gross margin. Dividing LTV by three gives a common ceiling for customer acquisition cost. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "model",
                        "in": "query",
                        "required": false,
                        "description": "Business model",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "subscription",
                                "repeat"
                            ],
                            "default": "subscription"
                        }
                    },
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "description": "Monthly revenue per customer, or average order value",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 80
                        }
                    },
                    {
                        "name": "churn",
                        "in": "query",
                        "required": false,
                        "description": "Monthly churn (subscription)",
                        "schema": {
                            "type": "number",
                            "minimum": 0.01,
                            "maximum": 100,
                            "default": 3
                        }
                    },
                    {
                        "name": "orders",
                        "in": "query",
                        "required": false,
                        "description": "Orders per year (repeat purchases)",
                        "schema": {
                            "type": "number",
                            "minimum": 0.1,
                            "maximum": 365,
                            "default": 4
                        }
                    },
                    {
                        "name": "years",
                        "in": "query",
                        "required": false,
                        "description": "Years as a customer (repeat purchases)",
                        "schema": {
                            "type": "number",
                            "minimum": 0.1,
                            "maximum": 50,
                            "default": 3
                        }
                    },
                    {
                        "name": "margin",
                        "in": "query",
                        "required": false,
                        "description": "Gross margin",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 70
                        }
                    },
                    {
                        "name": "discount",
                        "in": "query",
                        "required": false,
                        "description": "Annual discount rate. Values future profit less than profit today.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 50,
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/ltv-cac-ratio-calculator": {
            "get": {
                "operationId": "calculateLtvCacRatio",
                "summary": "LTV:CAC ratio & CAC payback calculator",
                "description": "LTV:CAC compares the gross profit a customer brings over their lifetime with the cost of acquiring them; 3:1 or better is the commonly cited target. CAC payback is CAC ÷ monthly gross profit per customer — ideally under 12 months. Because some customers churn before paying back, the churn-adjusted payback, which counts only customers who remain, is longer than the simple figure. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "cac",
                        "in": "query",
                        "required": false,
                        "description": "Customer acquisition cost (CAC)",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 1200
                        }
                    },
                    {
                        "name": "arpa",
                        "in": "query",
                        "required": false,
                        "description": "Monthly revenue per customer",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000,
                            "default": 150
                        }
                    },
                    {
                        "name": "margin",
                        "in": "query",
                        "required": false,
                        "description": "Gross margin",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 75
                        }
                    },
                    {
                        "name": "churn",
                        "in": "query",
                        "required": false,
                        "description": "Monthly churn",
                        "schema": {
                            "type": "number",
                            "minimum": 0.01,
                            "maximum": 100,
                            "default": 2.5
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/burn-rate-runway-calculator": {
            "get": {
                "operationId": "calculateBurnRateRunway",
                "summary": "Burn rate & runway calculator",
                "description": "Gross burn is total monthly spending; net burn is spending minus revenue. Runway = cash in the bank ÷ net burn. With $500,000 in cash, $90,000 of monthly costs and $40,000 of revenue, net burn is $50,000 and runway is 10 months. If revenue grows faster than costs, runway stretches; the company is “default alive” if it reaches break-even before the cash runs out. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "cash",
                        "in": "query",
                        "required": false,
                        "description": "Cash in the bank",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000000,
                            "default": 500000
                        }
                    },
                    {
                        "name": "revenue",
                        "in": "query",
                        "required": false,
                        "description": "Monthly revenue",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000000,
                            "default": 40000
                        }
                    },
                    {
                        "name": "expenses",
                        "in": "query",
                        "required": false,
                        "description": "Monthly expenses (gross burn)",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000000,
                            "default": 90000
                        }
                    },
                    {
                        "name": "revenue_growth",
                        "in": "query",
                        "required": false,
                        "description": "Monthly revenue growth",
                        "schema": {
                            "type": "number",
                            "minimum": -50,
                            "maximum": 100,
                            "default": 5
                        }
                    },
                    {
                        "name": "expense_growth",
                        "in": "query",
                        "required": false,
                        "description": "Monthly expense growth",
                        "schema": {
                            "type": "number",
                            "minimum": -50,
                            "maximum": 100,
                            "default": 2
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/net-revenue-retention-calculator": {
            "get": {
                "operationId": "calculateNetRevenueRetention",
                "summary": "Net revenue retention (NRR) calculator",
                "description": "Net revenue retention (NRR) = (starting recurring revenue + expansion − contraction − churned revenue) ÷ starting recurring revenue, measured on the same group of customers. Above 100% means existing customers grow revenue on their own. Gross revenue retention (GRR) leaves expansion out and can never exceed 100%; it shows how well you keep the revenue you already have. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "period",
                        "in": "query",
                        "required": false,
                        "description": "Period",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "month",
                                "quarter",
                                "year"
                            ],
                            "default": "year"
                        }
                    },
                    {
                        "name": "start",
                        "in": "query",
                        "required": false,
                        "description": "Recurring revenue from existing customers at start. MRR or ARR — use the same unit for every field.",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 100000000000,
                            "default": 100000
                        }
                    },
                    {
                        "name": "expansion",
                        "in": "query",
                        "required": false,
                        "description": "Expansion (upgrades, add-ons, seats)",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000000,
                            "default": 18000
                        }
                    },
                    {
                        "name": "contraction",
                        "in": "query",
                        "required": false,
                        "description": "Contraction (downgrades)",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000000,
                            "default": 4000
                        }
                    },
                    {
                        "name": "churned",
                        "in": "query",
                        "required": false,
                        "description": "Churned revenue (cancellations)",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000000,
                            "default": 8000
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/saas-pricing-freemium-calculator": {
            "get": {
                "operationId": "calculateSaasPricingFreemium",
                "summary": "SaaS pricing & freemium conversion calculator",
                "description": "SaaS revenue from self-serve sign-ups = sign-ups × free-to-paid (or trial) conversion rate × blended price, minus churn. Blended price, or ARPA, is the average of your tier prices weighted by how many customers choose each tier. Freemium usually converts a few percent of users and free trials convert more, so small changes in conversion or tier mix move MRR as much as price changes do. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "model",
                        "in": "query",
                        "required": false,
                        "description": "Model",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "freemium",
                                "trial"
                            ],
                            "default": "freemium"
                        }
                    },
                    {
                        "name": "signups",
                        "in": "query",
                        "required": false,
                        "description": "New sign-ups per month",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 2000
                        }
                    },
                    {
                        "name": "conversion",
                        "in": "query",
                        "required": false,
                        "description": "Sign-ups that become paying customers",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 4
                        }
                    },
                    {
                        "name": "price_1",
                        "in": "query",
                        "required": false,
                        "description": "Tier 1 price per month",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000,
                            "default": 19
                        }
                    },
                    {
                        "name": "mix_1",
                        "in": "query",
                        "required": false,
                        "description": "Customers choosing tier 1",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 60
                        }
                    },
                    {
                        "name": "price_2",
                        "in": "query",
                        "required": false,
                        "description": "Tier 2 price per month",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000,
                            "default": 49
                        }
                    },
                    {
                        "name": "mix_2",
                        "in": "query",
                        "required": false,
                        "description": "Customers choosing tier 2",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 30
                        }
                    },
                    {
                        "name": "price_3",
                        "in": "query",
                        "required": false,
                        "description": "Tier 3 price per month",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000,
                            "default": 149
                        }
                    },
                    {
                        "name": "mix_3",
                        "in": "query",
                        "required": false,
                        "description": "Customers choosing tier 3",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 10
                        }
                    },
                    {
                        "name": "churn",
                        "in": "query",
                        "required": false,
                        "description": "Monthly churn of paying customers",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 4
                        }
                    },
                    {
                        "name": "free_cost",
                        "in": "query",
                        "required": false,
                        "description": "Cost per free user per month. Hosting, support and AI usage for non-paying users.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000,
                            "default": 0.1
                        }
                    },
                    {
                        "name": "months",
                        "in": "query",
                        "required": false,
                        "description": "Forecast length",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 60,
                            "default": 12
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/build-vs-buy-software-calculator": {
            "get": {
                "operationId": "calculateBuildVsBuySoftware",
                "summary": "Build vs buy software calculator",
                "description": "Build vs buy comes down to total cost of ownership over the system’s life. Buying SaaS has a low start-up cost but per-user fees that grow with your team and with annual price rises. Building has a higher upfront cost plus yearly maintenance and hosting, but costs barely change as users grow. The break-even year is when cumulative SaaS fees overtake the custom build’s total cost. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "users",
                        "in": "query",
                        "required": false,
                        "description": "Users today",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 1000000,
                            "default": 50
                        }
                    },
                    {
                        "name": "user_growth",
                        "in": "query",
                        "required": false,
                        "description": "User growth per year",
                        "schema": {
                            "type": "number",
                            "minimum": -50,
                            "maximum": 300,
                            "default": 20
                        }
                    },
                    {
                        "name": "seat_price",
                        "in": "query",
                        "required": false,
                        "description": "SaaS price per user per month",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000,
                            "default": 45
                        }
                    },
                    {
                        "name": "price_increase",
                        "in": "query",
                        "required": false,
                        "description": "SaaS price increase per year",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 7
                        }
                    },
                    {
                        "name": "saas_extras",
                        "in": "query",
                        "required": false,
                        "description": "SaaS add-ons & integrations per month. Extra modules, integration tools, consultants.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000,
                            "default": 300
                        }
                    },
                    {
                        "name": "saas_setup",
                        "in": "query",
                        "required": false,
                        "description": "SaaS one-off setup & migration",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 8000
                        }
                    },
                    {
                        "name": "build_cost",
                        "in": "query",
                        "required": false,
                        "description": "Custom build cost (from your quote). Example value — replace with your own quote.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 90000
                        }
                    },
                    {
                        "name": "maintenance",
                        "in": "query",
                        "required": false,
                        "description": "Custom maintenance per year",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 20
                        }
                    },
                    {
                        "name": "hosting",
                        "in": "query",
                        "required": false,
                        "description": "Custom hosting per month",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000,
                            "default": 400
                        }
                    },
                    {
                        "name": "years",
                        "in": "query",
                        "required": false,
                        "description": "Years to compare",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 10,
                            "default": 5
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/uptime-sla-calculator": {
            "get": {
                "operationId": "calculateUptimeSla",
                "summary": "Uptime SLA calculator",
                "description": "An uptime SLA states the share of time a service must be available. 99.9% uptime (\"three nines\") allows about 43 minutes 50 seconds of downtime per month, or 8 hours 46 minutes per year. 99.99% allows about 4 minutes 23 seconds per month, and 99.999% about 26 seconds. When services depend on each other, their availabilities multiply, so the combined SLA is lower than any single one. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "uptime",
                        "in": "query",
                        "required": false,
                        "description": "Uptime / SLA target. For example 99.9, 99.95 or 99.99.",
                        "schema": {
                            "type": "number",
                            "minimum": 50,
                            "maximum": 99.99999,
                            "default": 99.9
                        }
                    },
                    {
                        "name": "components",
                        "in": "query",
                        "required": false,
                        "description": "Services in the request path. Each with this SLA, all required (e.g. load balancer + app + database = 3).",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 20,
                            "default": 1
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/cloud-migration-cost-savings-calculator": {
            "get": {
                "operationId": "calculateCloudMigrationCostSavings",
                "summary": "Cloud migration cost savings calculator",
                "description": "Cloud migration saves money when the yearly cost of owning servers — hardware spread over its refresh cycle, data centre space, power, admin time and licences — is higher than the cloud bill plus cloud operations. Right-sizing, auto-scaling and switching off idle environments usually cut the cloud bill well below a like-for-like copy of your servers. The payback period is the one-off migration cost divided by the yearly saving. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "servers",
                        "in": "query",
                        "required": false,
                        "description": "Servers (physical or VMs)",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 100000,
                            "default": 20
                        }
                    },
                    {
                        "name": "hardware",
                        "in": "query",
                        "required": false,
                        "description": "Hardware cost per server. Include storage and networking share.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000,
                            "default": 8000
                        }
                    },
                    {
                        "name": "refresh_years",
                        "in": "query",
                        "required": false,
                        "description": "Hardware refresh cycle",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 10,
                            "default": 5
                        }
                    },
                    {
                        "name": "facility",
                        "in": "query",
                        "required": false,
                        "description": "Data centre, power & cooling per month",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 3000
                        }
                    },
                    {
                        "name": "admin_hours",
                        "in": "query",
                        "required": false,
                        "description": "Admin hours on infrastructure per month",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000,
                            "default": 160
                        }
                    },
                    {
                        "name": "hourly_cost",
                        "in": "query",
                        "required": false,
                        "description": "Loaded cost per admin hour",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000,
                            "default": 45
                        }
                    },
                    {
                        "name": "licences",
                        "in": "query",
                        "required": false,
                        "description": "Software licences & support per year",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 25000
                        }
                    },
                    {
                        "name": "cloud_per_server",
                        "in": "query",
                        "required": false,
                        "description": "Cloud cost per equivalent server per month. Compute, storage, backup and network for one like-for-like server. Check your provider’s pricing calculator.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000,
                            "default": 250
                        }
                    },
                    {
                        "name": "rightsizing",
                        "in": "query",
                        "required": false,
                        "description": "Saving from right-sizing & auto-scaling. Smaller instances, reserved pricing, switching off idle environments.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 80,
                            "default": 25
                        }
                    },
                    {
                        "name": "cloud_admin",
                        "in": "query",
                        "required": false,
                        "description": "Admin hours in the cloud vs today",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 200,
                            "default": 60
                        }
                    },
                    {
                        "name": "cloud_licences",
                        "in": "query",
                        "required": false,
                        "description": "Licence cost in the cloud vs today",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 300,
                            "default": 90
                        }
                    },
                    {
                        "name": "migration_cost",
                        "in": "query",
                        "required": false,
                        "description": "One-off migration cost. Example value — replace with your own quote.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 40000
                        }
                    },
                    {
                        "name": "years",
                        "in": "query",
                        "required": false,
                        "description": "Years to compare",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 10,
                            "default": 5
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/downtime-cost-calculator": {
            "get": {
                "operationId": "calculateDowntimeCost",
                "summary": "Downtime cost calculator",
                "description": "The cost of downtime per hour is lost revenue (revenue per operating hour × the share that stops during an outage) plus lost productivity (affected staff × hourly cost × share of work they cannot do) plus recovery costs. Multiply by expected downtime hours a year for the annual cost. Reputation damage and SLA penalties come on top and are often larger for customer-facing systems. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "revenue",
                        "in": "query",
                        "required": false,
                        "description": "Annual revenue",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000000,
                            "default": 5000000
                        }
                    },
                    {
                        "name": "revenue_share",
                        "in": "query",
                        "required": false,
                        "description": "Revenue that stops during an outage. 100% for an online store; lower if customers wait or come back later.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 40
                        }
                    },
                    {
                        "name": "hours",
                        "in": "query",
                        "required": false,
                        "description": "Operating hours",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "24x7",
                                "extended",
                                "business"
                            ],
                            "default": "24x7"
                        }
                    },
                    {
                        "name": "employees",
                        "in": "query",
                        "required": false,
                        "description": "Employees affected",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000,
                            "default": 50
                        }
                    },
                    {
                        "name": "hourly_cost",
                        "in": "query",
                        "required": false,
                        "description": "Loaded cost per employee hour",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000,
                            "default": 35
                        }
                    },
                    {
                        "name": "productivity_loss",
                        "in": "query",
                        "required": false,
                        "description": "Work they cannot do during an outage",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 60
                        }
                    },
                    {
                        "name": "recovery",
                        "in": "query",
                        "required": false,
                        "description": "Recovery cost per incident. Overtime, contractors, data recovery, SLA credits.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 2000
                        }
                    },
                    {
                        "name": "uptime",
                        "in": "query",
                        "required": false,
                        "description": "Current uptime. Measured over your operating hours.",
                        "schema": {
                            "type": "number",
                            "minimum": 90,
                            "maximum": 99.999,
                            "default": 99.5
                        }
                    },
                    {
                        "name": "incidents",
                        "in": "query",
                        "required": false,
                        "description": "Incidents per year",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000,
                            "default": 6
                        }
                    },
                    {
                        "name": "target_uptime",
                        "in": "query",
                        "required": false,
                        "description": "Target uptime",
                        "schema": {
                            "type": "number",
                            "minimum": 90,
                            "maximum": 99.999,
                            "default": 99.9
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/technical-debt-cost-calculator": {
            "get": {
                "operationId": "calculateTechnicalDebtCost",
                "summary": "Technical debt cost calculator",
                "description": "Technical debt costs the share of developer time spent working around old code, fixing avoidable bugs and handling fragile releases, plus the cost of incidents it causes. Multiply your team’s yearly cost by the share of time lost and add incident costs. Paying debt down — refactoring, tests, upgrades — is worth it when the time it frees each year exceeds the cost of the work within one to two years. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "developers",
                        "in": "query",
                        "required": false,
                        "description": "Developers",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 10000,
                            "default": 10
                        }
                    },
                    {
                        "name": "developer_cost",
                        "in": "query",
                        "required": false,
                        "description": "Loaded cost per developer per year",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000,
                            "default": 90000
                        }
                    },
                    {
                        "name": "debt_time",
                        "in": "query",
                        "required": false,
                        "description": "Time lost to technical debt. Workarounds, avoidable bugs, slow builds and manual releases.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 90,
                            "default": 25
                        }
                    },
                    {
                        "name": "incidents",
                        "in": "query",
                        "required": false,
                        "description": "Production incidents per month caused by fragile code",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000,
                            "default": 3
                        }
                    },
                    {
                        "name": "incident_cost",
                        "in": "query",
                        "required": false,
                        "description": "Average cost per incident. Staff time, lost sales, SLA credits.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 1500
                        }
                    },
                    {
                        "name": "reduction",
                        "in": "query",
                        "required": false,
                        "description": "Debt removed by a paydown project",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 50
                        }
                    },
                    {
                        "name": "paydown_cost",
                        "in": "query",
                        "required": false,
                        "description": "Cost of the paydown project. Example value — replace with your own estimate.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1000000000,
                            "default": 80000
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/bandwidth-hosting-calculator": {
            "get": {
                "operationId": "calculateBandwidthHosting",
                "summary": "Website bandwidth & hosting calculator",
                "description": "Monthly bandwidth = visitors × pages per visit × average page size, plus downloads and API traffic. A CDN serves most images, scripts and styles from cache, so the origin server only transfers the rest. Peak load is average page views per second multiplied by a peak factor, typically 3–5× for sites with daily traffic spikes. Concurrent users ≈ visits per second × average visit length. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "visitors",
                        "in": "query",
                        "required": false,
                        "description": "Visits per month",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 10000000000,
                            "default": 100000
                        }
                    },
                    {
                        "name": "pages",
                        "in": "query",
                        "required": false,
                        "description": "Pages per visit",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 100,
                            "default": 3
                        }
                    },
                    {
                        "name": "page_size",
                        "in": "query",
                        "required": false,
                        "description": "Average page size. Check the transferred size in your browser’s network tab. Repeat visitors download less thanks to caching.",
                        "schema": {
                            "type": "number",
                            "minimum": 0.05,
                            "maximum": 100,
                            "default": 2.5
                        }
                    },
                    {
                        "name": "extra_gb",
                        "in": "query",
                        "required": false,
                        "description": "Downloads, video & API traffic per month",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000,
                            "default": 0
                        }
                    },
                    {
                        "name": "cdn_offload",
                        "in": "query",
                        "required": false,
                        "description": "Traffic served by a CDN. 0% if you do not use a CDN.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 99,
                            "default": 80
                        }
                    },
                    {
                        "name": "visit_minutes",
                        "in": "query",
                        "required": false,
                        "description": "Average visit length",
                        "schema": {
                            "type": "number",
                            "minimum": 0.1,
                            "maximum": 120,
                            "default": 3
                        }
                    },
                    {
                        "name": "peak_factor",
                        "in": "query",
                        "required": false,
                        "description": "Peak vs average traffic. Busiest hour compared with the monthly average. Campaigns and launches can be 10× or more.",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 50,
                            "default": 4
                        }
                    },
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "price_gb",
                        "in": "query",
                        "required": false,
                        "description": "Data transfer price per GB. Example value — check your host or CDN. Many hosts include a monthly allowance.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10,
                            "default": 0.09
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/data-breach-cost-calculator": {
            "get": {
                "operationId": "calculateDataBreachCost",
                "summary": "Data breach cost calculator",
                "description": "A data breach costs roughly the number of records exposed × the cost per record, adjusted for your security controls, plus any regulatory fines. IBM’s 2026 Cost of a Data Breach Report puts the global average breach at USD 4.99 million and stolen customer personal data at USD 192 per record. A tested incident response plan, encryption and security automation reduce the cost; third-party involvement and skills shortages increase it. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "records",
                        "in": "query",
                        "required": false,
                        "description": "Records that could be exposed. Customer, employee and other personal records in the system.",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 10000000000,
                            "default": 50000
                        }
                    },
                    {
                        "name": "cost_per_record",
                        "in": "query",
                        "required": false,
                        "description": "Cost per record. Default is IBM’s 2026 global average for customer personal data, in USD. Adjust for your currency, country and industry — healthcare and finance are higher.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000,
                            "default": 192
                        }
                    },
                    {
                        "name": "controls",
                        "in": "query",
                        "required": false,
                        "description": "Controls in place",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: ir_plan, automation, encryption, training, devsecops"
                        }
                    },
                    {
                        "name": "risk_factors",
                        "in": "query",
                        "required": false,
                        "description": "Risk factors",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: third_party, shadow_data, skills_gap"
                        }
                    },
                    {
                        "name": "fine",
                        "in": "query",
                        "required": false,
                        "description": "Possible regulatory fine. Optional. GDPR fines can reach 4% of global turnover; India’s DPDP Act up to ₹250 crore.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100000000000,
                            "default": 0
                        }
                    },
                    {
                        "name": "likelihood",
                        "in": "query",
                        "required": false,
                        "description": "Chance of a breach in a year. Your own estimate, for the expected yearly loss.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 100,
                            "default": 10
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/password-strength-calculator": {
            "get": {
                "operationId": "calculatePasswordStrength",
                "summary": "Password strength & entropy calculator",
                "description": "Password strength is measured in bits of entropy: length × log2(size of the character set) for a random password, or words × log2(wordlist size) for a random passphrase. Each extra bit doubles the guesses needed. A random 12-character password using all four character types has about 79 bits; a 5-word Diceware passphrase about 65 bits. Human-chosen passwords are far weaker than these figures because attackers try common patterns first. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "mode",
                        "in": "query",
                        "required": false,
                        "description": "Password type",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "characters",
                                "passphrase"
                            ],
                            "default": "characters"
                        }
                    },
                    {
                        "name": "length",
                        "in": "query",
                        "required": false,
                        "description": "Length (characters). Used for random characters. Enter the length only — never your actual password.",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 128,
                            "default": 12
                        }
                    },
                    {
                        "name": "sets",
                        "in": "query",
                        "required": false,
                        "description": "Character types used",
                        "schema": {
                            "type": "string",
                            "description": "Comma-separated list of: lower, upper, digits, symbols"
                        }
                    },
                    {
                        "name": "words",
                        "in": "query",
                        "required": false,
                        "description": "Words in passphrase. Used for passphrases chosen at random from a 7,776-word list.",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 20,
                            "default": 5
                        }
                    },
                    {
                        "name": "attack",
                        "in": "query",
                        "required": false,
                        "description": "Attack scenario",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "online",
                                "online_fast",
                                "offline_slow",
                                "offline_fast"
                            ],
                            "default": "offline_slow"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/security-compliance-readiness-score": {
            "get": {
                "operationId": "calculateSecurityComplianceReadinessScore",
                "summary": "Security & compliance readiness score",
                "description": "Security compliance readiness is how close your controls are to what an auditor or regulator expects. ISO 27001, SOC 2, GDPR and India’s DPDP Act share the same foundations: policies, an inventory of data, risk assessment, access control with MFA, encryption, patching, monitoring, incident response, backups, vendor management, training and privacy rights. Score each area below to see your gaps mapped to the framework you are targeting. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "framework",
                        "in": "query",
                        "required": false,
                        "description": "Framework you are working towards",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "iso27001",
                                "soc2",
                                "gdpr",
                                "dpdp"
                            ],
                            "default": "iso27001"
                        }
                    },
                    {
                        "name": "policies",
                        "in": "query",
                        "required": false,
                        "description": "Security policies and ownership",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "l0",
                                "l1",
                                "l2",
                                "l3"
                            ],
                            "default": "l1"
                        }
                    },
                    {
                        "name": "assets",
                        "in": "query",
                        "required": false,
                        "description": "Do you know what systems and personal data you have?",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "l0",
                                "l1",
                                "l2",
                                "l3"
                            ],
                            "default": "l1"
                        }
                    },
                    {
                        "name": "risk",
                        "in": "query",
                        "required": false,
                        "description": "Security risk assessment",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "l0",
                                "l1",
                                "l2",
                                "l3"
                            ],
                            "default": "l1"
                        }
                    },
                    {
                        "name": "access",
                        "in": "query",
                        "required": false,
                        "description": "Access control and multi-factor authentication",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "l0",
                                "l1",
                                "l2",
                                "l3"
                            ],
                            "default": "l1"
                        }
                    },
                    {
                        "name": "encryption",
                        "in": "query",
                        "required": false,
                        "description": "Encryption of data",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "l0",
                                "l1",
                                "l2",
                                "l3"
                            ],
                            "default": "l1"
                        }
                    },
                    {
                        "name": "vulnerabilities",
                        "in": "query",
                        "required": false,
                        "description": "Patching and vulnerability management",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "l0",
                                "l1",
                                "l2",
                                "l3"
                            ],
                            "default": "l1"
                        }
                    },
                    {
                        "name": "monitoring",
                        "in": "query",
                        "required": false,
                        "description": "Logging and monitoring",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "l0",
                                "l1",
                                "l2",
                                "l3"
                            ],
                            "default": "l1"
                        }
                    },
                    {
                        "name": "incidents",
                        "in": "query",
                        "required": false,
                        "description": "Incident response",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "l0",
                                "l1",
                                "l2",
                                "l3"
                            ],
                            "default": "l1"
                        }
                    },
                    {
                        "name": "backups",
                        "in": "query",
                        "required": false,
                        "description": "Backups and business continuity",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "l0",
                                "l1",
                                "l2",
                                "l3"
                            ],
                            "default": "l1"
                        }
                    },
                    {
                        "name": "vendors",
                        "in": "query",
                        "required": false,
                        "description": "Vendors and data processors",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "l0",
                                "l1",
                                "l2",
                                "l3"
                            ],
                            "default": "l1"
                        }
                    },
                    {
                        "name": "training",
                        "in": "query",
                        "required": false,
                        "description": "Staff security awareness",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "l0",
                                "l1",
                                "l2",
                                "l3"
                            ],
                            "default": "l1"
                        }
                    },
                    {
                        "name": "privacy",
                        "in": "query",
                        "required": false,
                        "description": "Privacy rights and data retention",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "l0",
                                "l1",
                                "l2",
                                "l3"
                            ],
                            "default": "l1"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/page-speed-revenue-calculator": {
            "get": {
                "operationId": "calculatePageSpeedRevenue",
                "summary": "Page speed revenue calculator",
                "description": "A slow website loses sales because conversion rates fall as load time rises. Deloitte found a 0.1-second mobile speed improvement went with 8.4% more retail conversions, and Portent found e-commerce sites loading in 1 second convert 2.5 times better than sites loading in 5 seconds. To estimate your gain, apply a conversion change for each second saved to your current conversion rate, then multiply the extra conversions by your order or lead value. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "required": false,
                        "description": "Currency",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "USD",
                                "INR",
                                "AED",
                                "GBP",
                                "EUR"
                            ],
                            "default": "USD"
                        }
                    },
                    {
                        "name": "visitors",
                        "in": "query",
                        "required": false,
                        "description": "Visits per month",
                        "schema": {
                            "type": "number",
                            "minimum": 1,
                            "maximum": 10000000000,
                            "default": 50000
                        }
                    },
                    {
                        "name": "conversion",
                        "in": "query",
                        "required": false,
                        "description": "Current conversion rate",
                        "schema": {
                            "type": "number",
                            "minimum": 0.01,
                            "maximum": 100,
                            "default": 2
                        }
                    },
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "description": "Average order or lead value",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 10000000,
                            "default": 80
                        }
                    },
                    {
                        "name": "current_time",
                        "in": "query",
                        "required": false,
                        "description": "Current load time. Use Largest Contentful Paint (LCP) on mobile from PageSpeed Insights or your analytics.",
                        "schema": {
                            "type": "number",
                            "minimum": 0.3,
                            "maximum": 30,
                            "default": 4.5
                        }
                    },
                    {
                        "name": "target_time",
                        "in": "query",
                        "required": false,
                        "description": "Target load time",
                        "schema": {
                            "type": "number",
                            "minimum": 0.3,
                            "maximum": 30,
                            "default": 2
                        }
                    },
                    {
                        "name": "loss_per_second",
                        "in": "query",
                        "required": false,
                        "description": "Conversion loss per extra second. Conservative assumption — published studies report larger effects. Use your own A/B test results if you have them.",
                        "schema": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 50,
                            "default": 7
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/tools/color-contrast-checker": {
            "get": {
                "operationId": "calculateColorContrastChecker",
                "summary": "Colour contrast checker (WCAG)",
                "description": "Contrast ratio compares the relative luminance of two colours, from 1:1 (identical) to 21:1 (black on white). WCAG 2.2 level AA requires at least 4.5:1 for normal text and 3:1 for large text (24 px, or 18.66 px bold) and for icons, borders and other UI components. Level AAA requires 7:1 for normal text and 4.5:1 for large text. Enter two hex colours to check them. Missing parameters use the defaults; out-of-range values are clamped.",
                "parameters": [
                    {
                        "name": "foreground",
                        "in": "query",
                        "required": false,
                        "description": "Text colour (hex). For example #333, #1A73E8 or 1a73e8.",
                        "schema": {
                            "type": "string",
                            "maxLength": 500
                        }
                    },
                    {
                        "name": "background",
                        "in": "query",
                        "required": false,
                        "description": "Background colour (hex)",
                        "schema": {
                            "type": "string",
                            "maxLength": 500
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Calculated result with a shareable link",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}