{
    "openapi": "3.1.0",
    "info": {
        "title": "OTPDrop",
        "version": "0.3.0",
        "description": "Catalog, pricing, account registration, balance top-up, and number purchase for SMS verification numbers. OTPDrop is balance-funded: a top-up funds the account, created \"awaiting_payment\" and credited once the deposit confirms on the network. Buying a number, once funded, is instant — it debits the balance and returns the number in the same request."
    },
    "servers": [
        {
            "url": "https://otpdrop.com"
        }
    ],
    "paths": {
        "/": {
            "get": {
                "summary": "Home page: full service and country catalog",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/pricing": {
            "get": {
                "summary": "Full price list, plus reference rental and top-up bonus tables",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/faq": {
            "get": {
                "summary": "Frequently asked questions",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/about": {
            "get": {
                "summary": "About the project",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/api": {
            "get": {
                "summary": "Human-readable agent API documentation",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/countries": {
            "get": {
                "summary": "Country index: every country, dial code, service count, cheapest price",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/services": {
            "get": {
                "summary": "Service index: every service, category, from-price, country count",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/rental": {
            "get": {
                "summary": "Rental pricing and how it differs from a one-time number",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/sms/{service}": {
            "get": {
                "summary": "One service, price by country",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "any-other",
                                "adidasnike",
                                "adobe",
                                "airbnb",
                                "alibaba",
                                "aliexpress",
                                "amazon",
                                "aol",
                                "apple",
                                "applemusic",
                                "badoo",
                                "bet365",
                                "binance",
                                "blizzard",
                                "bolt",
                                "booking",
                                "bumble",
                                "bwin",
                                "bybit",
                                "canva",
                                "cashapp",
                                "claude",
                                "clubhouse",
                                "coinbase",
                                "craigslist",
                                "cryptodotcom",
                                "deezer",
                                "deliveroo",
                                "didi",
                                "discord",
                                "disneyplus",
                                "doordash",
                                "dropbox",
                                "eaorigin",
                                "ebay",
                                "epicgames",
                                "etsy",
                                "facebook",
                                "fiverr",
                                "foodpanda",
                                "g2a",
                                "github",
                                "glovo",
                                "googlevoice",
                                "google",
                                "grab",
                                "grailed",
                                "grindr",
                                "happn",
                                "hbomax",
                                "her",
                                "hinge",
                                "huawei",
                                "icloud",
                                "ifood",
                                "imo",
                                "indrive",
                                "instagram",
                                "kakaotalk",
                                "kraken",
                                "kucoin",
                                "lazada",
                                "leboncoin",
                                "line",
                                "linkedin",
                                "lyft",
                                "mailru",
                                "match",
                                "mercadolibre",
                                "michat",
                                "microsoft",
                                "naver",
                                "netflix",
                                "nintendo",
                                "notion",
                                "offerup",
                                "okcupid",
                                "okx",
                                "olx",
                                "openai",
                                "payoneer",
                                "paypal",
                                "paysafecard",
                                "pinterest",
                                "playstation",
                                "pof",
                                "protonmail",
                                "rappi",
                                "reddit",
                                "revolut",
                                "riotgames",
                                "roblox",
                                "samsung",
                                "shopee",
                                "signal",
                                "slack",
                                "snapchat",
                                "soundcloud",
                                "spotify",
                                "steam",
                                "stripe",
                                "swagbucks",
                                "tango",
                                "telegram",
                                "tencentqq",
                                "threads",
                                "ticketmaster",
                                "tidal",
                                "tiktok",
                                "tinder",
                                "twilio",
                                "twitch",
                                "twitter",
                                "uber",
                                "ubereats",
                                "ubisoft",
                                "venmo",
                                "viber",
                                "vinted",
                                "vk",
                                "walmart",
                                "wechat",
                                "whatsapp",
                                "wise",
                                "wish",
                                "wolt",
                                "xbox",
                                "yahoo",
                                "yandex",
                                "youtube",
                                "zalo",
                                "zoho",
                                "zoom"
                            ]
                        }
                    }
                ]
            }
        },
        "/numbers/{country}": {
            "get": {
                "summary": "One country, price by service",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "parameters": [
                    {
                        "name": "country",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "us",
                                "gb",
                                "de",
                                "fr",
                                "nl",
                                "ca",
                                "ru",
                                "ua",
                                "in",
                                "br",
                                "tr",
                                "pl",
                                "es",
                                "it",
                                "id",
                                "ph",
                                "vn",
                                "th",
                                "mx",
                                "ar",
                                "ng",
                                "ke",
                                "za",
                                "kz",
                                "ge",
                                "af",
                                "al",
                                "dz",
                                "ad",
                                "ao",
                                "ag",
                                "am",
                                "au",
                                "at",
                                "az",
                                "bs",
                                "bh",
                                "bd",
                                "bb",
                                "by",
                                "be",
                                "bz",
                                "bj",
                                "bt",
                                "bo",
                                "ba",
                                "bw",
                                "bn",
                                "bg",
                                "bf",
                                "bi",
                                "kh",
                                "cm",
                                "cv",
                                "cf",
                                "td",
                                "cl",
                                "cn",
                                "co",
                                "km",
                                "cg",
                                "cd",
                                "cr",
                                "hr",
                                "cu",
                                "cy",
                                "cz",
                                "ci",
                                "dk",
                                "dj",
                                "dm",
                                "do",
                                "ec",
                                "eg",
                                "sv",
                                "gq",
                                "er",
                                "ee",
                                "sz",
                                "et",
                                "fj",
                                "fi",
                                "ga",
                                "gm",
                                "gh",
                                "gr",
                                "gd",
                                "gt",
                                "gn",
                                "gw",
                                "gy",
                                "ht",
                                "hn",
                                "hk",
                                "hu",
                                "is",
                                "ir",
                                "iq",
                                "ie",
                                "il",
                                "jm",
                                "jp",
                                "jo",
                                "ki",
                                "kw",
                                "kg",
                                "la",
                                "lv",
                                "lb",
                                "ls",
                                "lr",
                                "ly",
                                "li",
                                "lt",
                                "lu",
                                "mo",
                                "mg",
                                "mw",
                                "my",
                                "mv",
                                "ml",
                                "mt",
                                "mh",
                                "mr",
                                "mu",
                                "fm",
                                "md",
                                "mc",
                                "mn",
                                "me",
                                "ma",
                                "mz",
                                "mm",
                                "na",
                                "nr",
                                "np",
                                "nz",
                                "ni",
                                "ne",
                                "kp",
                                "mk",
                                "no",
                                "om",
                                "pk",
                                "pw",
                                "ps",
                                "pa",
                                "pg",
                                "py",
                                "pe",
                                "pt",
                                "pr",
                                "qa",
                                "ro",
                                "rw",
                                "ws",
                                "sm",
                                "sa",
                                "sn",
                                "sc",
                                "sl",
                                "sg",
                                "sk",
                                "si",
                                "sb",
                                "so",
                                "kr",
                                "lk",
                                "kn",
                                "lc",
                                "vc",
                                "sd",
                                "sr",
                                "se",
                                "ch",
                                "sy",
                                "st",
                                "tw",
                                "tj",
                                "tz",
                                "tl",
                                "tg",
                                "to",
                                "tt",
                                "tn",
                                "tm",
                                "tv",
                                "ug",
                                "ae",
                                "uy",
                                "uz",
                                "vu",
                                "va",
                                "ve",
                                "ye",
                                "zm",
                                "zw"
                            ]
                        }
                    }
                ]
            }
        },
        "/sms/{service}/{country}": {
            "get": {
                "summary": "Exact price for one (service, country) pair",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "any-other",
                                "adidasnike",
                                "adobe",
                                "airbnb",
                                "alibaba",
                                "aliexpress",
                                "amazon",
                                "aol",
                                "apple",
                                "applemusic",
                                "badoo",
                                "bet365",
                                "binance",
                                "blizzard",
                                "bolt",
                                "booking",
                                "bumble",
                                "bwin",
                                "bybit",
                                "canva",
                                "cashapp",
                                "claude",
                                "clubhouse",
                                "coinbase",
                                "craigslist",
                                "cryptodotcom",
                                "deezer",
                                "deliveroo",
                                "didi",
                                "discord",
                                "disneyplus",
                                "doordash",
                                "dropbox",
                                "eaorigin",
                                "ebay",
                                "epicgames",
                                "etsy",
                                "facebook",
                                "fiverr",
                                "foodpanda",
                                "g2a",
                                "github",
                                "glovo",
                                "googlevoice",
                                "google",
                                "grab",
                                "grailed",
                                "grindr",
                                "happn",
                                "hbomax",
                                "her",
                                "hinge",
                                "huawei",
                                "icloud",
                                "ifood",
                                "imo",
                                "indrive",
                                "instagram",
                                "kakaotalk",
                                "kraken",
                                "kucoin",
                                "lazada",
                                "leboncoin",
                                "line",
                                "linkedin",
                                "lyft",
                                "mailru",
                                "match",
                                "mercadolibre",
                                "michat",
                                "microsoft",
                                "naver",
                                "netflix",
                                "nintendo",
                                "notion",
                                "offerup",
                                "okcupid",
                                "okx",
                                "olx",
                                "openai",
                                "payoneer",
                                "paypal",
                                "paysafecard",
                                "pinterest",
                                "playstation",
                                "pof",
                                "protonmail",
                                "rappi",
                                "reddit",
                                "revolut",
                                "riotgames",
                                "roblox",
                                "samsung",
                                "shopee",
                                "signal",
                                "slack",
                                "snapchat",
                                "soundcloud",
                                "spotify",
                                "steam",
                                "stripe",
                                "swagbucks",
                                "tango",
                                "telegram",
                                "tencentqq",
                                "threads",
                                "ticketmaster",
                                "tidal",
                                "tiktok",
                                "tinder",
                                "twilio",
                                "twitch",
                                "twitter",
                                "uber",
                                "ubereats",
                                "ubisoft",
                                "venmo",
                                "viber",
                                "vinted",
                                "vk",
                                "walmart",
                                "wechat",
                                "whatsapp",
                                "wise",
                                "wish",
                                "wolt",
                                "xbox",
                                "yahoo",
                                "yandex",
                                "youtube",
                                "zalo",
                                "zoho",
                                "zoom"
                            ]
                        }
                    },
                    {
                        "name": "country",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "us",
                                "gb",
                                "de",
                                "fr",
                                "nl",
                                "ca",
                                "ru",
                                "ua",
                                "in",
                                "br",
                                "tr",
                                "pl",
                                "es",
                                "it",
                                "id",
                                "ph",
                                "vn",
                                "th",
                                "mx",
                                "ar",
                                "ng",
                                "ke",
                                "za",
                                "kz",
                                "ge",
                                "af",
                                "al",
                                "dz",
                                "ad",
                                "ao",
                                "ag",
                                "am",
                                "au",
                                "at",
                                "az",
                                "bs",
                                "bh",
                                "bd",
                                "bb",
                                "by",
                                "be",
                                "bz",
                                "bj",
                                "bt",
                                "bo",
                                "ba",
                                "bw",
                                "bn",
                                "bg",
                                "bf",
                                "bi",
                                "kh",
                                "cm",
                                "cv",
                                "cf",
                                "td",
                                "cl",
                                "cn",
                                "co",
                                "km",
                                "cg",
                                "cd",
                                "cr",
                                "hr",
                                "cu",
                                "cy",
                                "cz",
                                "ci",
                                "dk",
                                "dj",
                                "dm",
                                "do",
                                "ec",
                                "eg",
                                "sv",
                                "gq",
                                "er",
                                "ee",
                                "sz",
                                "et",
                                "fj",
                                "fi",
                                "ga",
                                "gm",
                                "gh",
                                "gr",
                                "gd",
                                "gt",
                                "gn",
                                "gw",
                                "gy",
                                "ht",
                                "hn",
                                "hk",
                                "hu",
                                "is",
                                "ir",
                                "iq",
                                "ie",
                                "il",
                                "jm",
                                "jp",
                                "jo",
                                "ki",
                                "kw",
                                "kg",
                                "la",
                                "lv",
                                "lb",
                                "ls",
                                "lr",
                                "ly",
                                "li",
                                "lt",
                                "lu",
                                "mo",
                                "mg",
                                "mw",
                                "my",
                                "mv",
                                "ml",
                                "mt",
                                "mh",
                                "mr",
                                "mu",
                                "fm",
                                "md",
                                "mc",
                                "mn",
                                "me",
                                "ma",
                                "mz",
                                "mm",
                                "na",
                                "nr",
                                "np",
                                "nz",
                                "ni",
                                "ne",
                                "kp",
                                "mk",
                                "no",
                                "om",
                                "pk",
                                "pw",
                                "ps",
                                "pa",
                                "pg",
                                "py",
                                "pe",
                                "pt",
                                "pr",
                                "qa",
                                "ro",
                                "rw",
                                "ws",
                                "sm",
                                "sa",
                                "sn",
                                "sc",
                                "sl",
                                "sg",
                                "sk",
                                "si",
                                "sb",
                                "so",
                                "kr",
                                "lk",
                                "kn",
                                "lc",
                                "vc",
                                "sd",
                                "sr",
                                "se",
                                "ch",
                                "sy",
                                "st",
                                "tw",
                                "tj",
                                "tz",
                                "tl",
                                "tg",
                                "to",
                                "tt",
                                "tn",
                                "tm",
                                "tv",
                                "ug",
                                "ae",
                                "uy",
                                "uz",
                                "vu",
                                "va",
                                "ve",
                                "ye",
                                "zm",
                                "zw"
                            ]
                        }
                    }
                ]
            }
        },
        "/register": {
            "get": {
                "summary": "Registration form",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            },
            "post": {
                "summary": "Create an account; shows the seed exactly once",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/login": {
            "get": {
                "summary": "Login form",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            },
            "post": {
                "summary": "Log in with a seed; starts a session",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/logout": {
            "post": {
                "summary": "End the session",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/buy/{service}/{country}": {
            "get": {
                "summary": "Buy page for one (service, country) pair: price against balance, buys instantly if funded",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "any-other",
                                "adidasnike",
                                "adobe",
                                "airbnb",
                                "alibaba",
                                "aliexpress",
                                "amazon",
                                "aol",
                                "apple",
                                "applemusic",
                                "badoo",
                                "bet365",
                                "binance",
                                "blizzard",
                                "bolt",
                                "booking",
                                "bumble",
                                "bwin",
                                "bybit",
                                "canva",
                                "cashapp",
                                "claude",
                                "clubhouse",
                                "coinbase",
                                "craigslist",
                                "cryptodotcom",
                                "deezer",
                                "deliveroo",
                                "didi",
                                "discord",
                                "disneyplus",
                                "doordash",
                                "dropbox",
                                "eaorigin",
                                "ebay",
                                "epicgames",
                                "etsy",
                                "facebook",
                                "fiverr",
                                "foodpanda",
                                "g2a",
                                "github",
                                "glovo",
                                "googlevoice",
                                "google",
                                "grab",
                                "grailed",
                                "grindr",
                                "happn",
                                "hbomax",
                                "her",
                                "hinge",
                                "huawei",
                                "icloud",
                                "ifood",
                                "imo",
                                "indrive",
                                "instagram",
                                "kakaotalk",
                                "kraken",
                                "kucoin",
                                "lazada",
                                "leboncoin",
                                "line",
                                "linkedin",
                                "lyft",
                                "mailru",
                                "match",
                                "mercadolibre",
                                "michat",
                                "microsoft",
                                "naver",
                                "netflix",
                                "nintendo",
                                "notion",
                                "offerup",
                                "okcupid",
                                "okx",
                                "olx",
                                "openai",
                                "payoneer",
                                "paypal",
                                "paysafecard",
                                "pinterest",
                                "playstation",
                                "pof",
                                "protonmail",
                                "rappi",
                                "reddit",
                                "revolut",
                                "riotgames",
                                "roblox",
                                "samsung",
                                "shopee",
                                "signal",
                                "slack",
                                "snapchat",
                                "soundcloud",
                                "spotify",
                                "steam",
                                "stripe",
                                "swagbucks",
                                "tango",
                                "telegram",
                                "tencentqq",
                                "threads",
                                "ticketmaster",
                                "tidal",
                                "tiktok",
                                "tinder",
                                "twilio",
                                "twitch",
                                "twitter",
                                "uber",
                                "ubereats",
                                "ubisoft",
                                "venmo",
                                "viber",
                                "vinted",
                                "vk",
                                "walmart",
                                "wechat",
                                "whatsapp",
                                "wise",
                                "wish",
                                "wolt",
                                "xbox",
                                "yahoo",
                                "yandex",
                                "youtube",
                                "zalo",
                                "zoho",
                                "zoom"
                            ]
                        }
                    },
                    {
                        "name": "country",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "us",
                                "gb",
                                "de",
                                "fr",
                                "nl",
                                "ca",
                                "ru",
                                "ua",
                                "in",
                                "br",
                                "tr",
                                "pl",
                                "es",
                                "it",
                                "id",
                                "ph",
                                "vn",
                                "th",
                                "mx",
                                "ar",
                                "ng",
                                "ke",
                                "za",
                                "kz",
                                "ge",
                                "af",
                                "al",
                                "dz",
                                "ad",
                                "ao",
                                "ag",
                                "am",
                                "au",
                                "at",
                                "az",
                                "bs",
                                "bh",
                                "bd",
                                "bb",
                                "by",
                                "be",
                                "bz",
                                "bj",
                                "bt",
                                "bo",
                                "ba",
                                "bw",
                                "bn",
                                "bg",
                                "bf",
                                "bi",
                                "kh",
                                "cm",
                                "cv",
                                "cf",
                                "td",
                                "cl",
                                "cn",
                                "co",
                                "km",
                                "cg",
                                "cd",
                                "cr",
                                "hr",
                                "cu",
                                "cy",
                                "cz",
                                "ci",
                                "dk",
                                "dj",
                                "dm",
                                "do",
                                "ec",
                                "eg",
                                "sv",
                                "gq",
                                "er",
                                "ee",
                                "sz",
                                "et",
                                "fj",
                                "fi",
                                "ga",
                                "gm",
                                "gh",
                                "gr",
                                "gd",
                                "gt",
                                "gn",
                                "gw",
                                "gy",
                                "ht",
                                "hn",
                                "hk",
                                "hu",
                                "is",
                                "ir",
                                "iq",
                                "ie",
                                "il",
                                "jm",
                                "jp",
                                "jo",
                                "ki",
                                "kw",
                                "kg",
                                "la",
                                "lv",
                                "lb",
                                "ls",
                                "lr",
                                "ly",
                                "li",
                                "lt",
                                "lu",
                                "mo",
                                "mg",
                                "mw",
                                "my",
                                "mv",
                                "ml",
                                "mt",
                                "mh",
                                "mr",
                                "mu",
                                "fm",
                                "md",
                                "mc",
                                "mn",
                                "me",
                                "ma",
                                "mz",
                                "mm",
                                "na",
                                "nr",
                                "np",
                                "nz",
                                "ni",
                                "ne",
                                "kp",
                                "mk",
                                "no",
                                "om",
                                "pk",
                                "pw",
                                "ps",
                                "pa",
                                "pg",
                                "py",
                                "pe",
                                "pt",
                                "pr",
                                "qa",
                                "ro",
                                "rw",
                                "ws",
                                "sm",
                                "sa",
                                "sn",
                                "sc",
                                "sl",
                                "sg",
                                "sk",
                                "si",
                                "sb",
                                "so",
                                "kr",
                                "lk",
                                "kn",
                                "lc",
                                "vc",
                                "sd",
                                "sr",
                                "se",
                                "ch",
                                "sy",
                                "st",
                                "tw",
                                "tj",
                                "tz",
                                "tl",
                                "tg",
                                "to",
                                "tt",
                                "tn",
                                "tm",
                                "tv",
                                "ug",
                                "ae",
                                "uy",
                                "uz",
                                "vu",
                                "va",
                                "ve",
                                "ye",
                                "zm",
                                "zw"
                            ]
                        }
                    }
                ]
            }
        },
        "/orders": {
            "post": {
                "summary": "Create an order: debits the balance and issues the number immediately; refuses if the balance is short",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            },
            "get": {
                "summary": "The signed-in account's order list",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/orders/{id}": {
            "get": {
                "summary": "Order page: status, phone once issued, SMS code once it arrives, cancel-and-refund",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "An order's public id, e.g. \"ord_…\"."
                        }
                    }
                ]
            }
        },
        "/orders/{id}/status": {
            "get": {
                "summary": "JSON status for the order page's SMS polling script",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "An order's public id, e.g. \"ord_…\"."
                        }
                    }
                ]
            }
        },
        "/orders/{id}/cancel": {
            "post": {
                "summary": "Cancel an order before its code arrives; refunds the price to the balance",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "An order's public id, e.g. \"ord_…\"."
                        }
                    }
                ]
            }
        },
        "/account": {
            "get": {
                "summary": "Cabinet: balance overview, top-up form, deposits history",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/topups": {
            "post": {
                "summary": "Create a top-up: claims an address and amount; awaiting_payment until the deposit confirms",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/topups/{id}": {
            "get": {
                "summary": "Top-up invoice page: address, QR code, amount, countdown, bonus, and status",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "A top-up's public id, e.g. \"top_…\"."
                        }
                    }
                ]
            }
        },
        "/topups/{id}/status": {
            "get": {
                "summary": "JSON status for the top-up invoice page's polling script",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "A top-up's public id, e.g. \"top_…\"."
                        }
                    }
                ]
            }
        },
        "/sitemap.xml": {
            "get": {
                "summary": "Sitemap of every page this slice serves",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/robots.txt": {
            "get": {
                "summary": "Robots policy",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/.well-known/agent.json": {
            "get": {
                "summary": "Agent service card",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/openapi.json": {
            "get": {
                "summary": "This OpenAPI 3.1 document",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/llms.txt": {
            "get": {
                "summary": "Compact key facts for LLM citation",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/llms-full.txt": {
            "get": {
                "summary": "Full catalog and pricing corpus for LLM citation",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/mcp": {
            "get": {
                "summary": "MCP server self-description",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            },
            "post": {
                "summary": "MCP JSON-RPC 2.0 endpoint (initialize, tools/list, tools/call, resources/list, resources/read)",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "JSON-RPC 2.0 request. tools/call for topup, topup_status, buy_number, get_order, or get_sms requires \"Authorization: Bearer <seed>\" on the HTTP request itself.",
                                "required": [
                                    "jsonrpc",
                                    "method"
                                ],
                                "properties": {
                                    "jsonrpc": {
                                        "const": "2.0"
                                    },
                                    "id": {
                                        "type": [
                                            "string",
                                            "integer",
                                            "null"
                                        ]
                                    },
                                    "method": {
                                        "type": "string"
                                    },
                                    "params": {
                                        "type": "object"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [
                    [],
                    {
                        "seedBearer": []
                    }
                ]
            }
        },
        "/api/v1/services": {
            "get": {
                "summary": "JSON: all services with code, category and from-price",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/api/v1/countries": {
            "get": {
                "summary": "JSON: all countries with dial code and service count",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/api/v1/catalog": {
            "get": {
                "summary": "JSON: pricing matrix, cheapest first (limit 1-500)",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/api/v1/quote": {
            "get": {
                "summary": "JSON: exact price for one service and country",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/api/v1/accounts": {
            "post": {
                "summary": "JSON: create an account, returns the seed once",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/api/v1/topups": {
            "post": {
                "summary": "JSON: create a crypto top-up (Bearer seed); amount_usd 25-1000",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/api/v1/topups/{id}": {
            "get": {
                "summary": "JSON: top-up status (Bearer seed)",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "An order's public id, e.g. \"ord_…\"."
                        }
                    }
                ]
            }
        },
        "/api/v1/orders": {
            "post": {
                "summary": "JSON: buy a number, debits the balance (Bearer seed)",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            },
            "get": {
                "summary": "JSON: your orders, newest first (Bearer seed)",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                }
            }
        },
        "/api/v1/orders/{id}": {
            "get": {
                "summary": "JSON: one order (Bearer seed)",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "An order's public id, e.g. \"ord_…\"."
                        }
                    }
                ]
            }
        },
        "/api/v1/orders/{id}/sms": {
            "get": {
                "summary": "JSON: the SMS code once it arrives (Bearer seed)",
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "description": "An order's public id, e.g. \"ord_…\"."
                        }
                    }
                ]
            }
        }
    },
    "components": {
        "securitySchemes": {
            "seedBearer": {
                "type": "http",
                "scheme": "bearer",
                "description": "The account seed, sent as a Bearer token. Used by the MCP write and account-scoped read tools (topup, topup_status, buy_number, get_order, get_sms); the HTML site uses a PHP session instead."
            }
        }
    }
}