{
    "openapi": "3.1.0",
    "info": {
        "title": "Orax API",
        "version": "1.0.0",
        "description": "Two surfaces under /api/v1:\n\n\u2022 **Public API** \u2014 OAuth2 (Laravel Passport). Authorize at /oauth/authorize, exchange at /oauth/token; each route needs the matching scope. Throttle 90/min.\n\n\u2022 **Reseller API** (/api/v1/reseller) \u2014 personal API key (Authorization: Bearer rsk_\u2026 or X-Api-Key). Tag services with your own client_ref; no client data stored in Orax. Throttle 60/min.\n\nAdministrative endpoints (/api/v1/admin) are intentionally undocumented here \u2014 they require the `admin` scope and the admin role, so they are not part of the integrator-facing API.\n\nMoney is always USD minor units (usd_cents); other currencies are display-only ({usd_cents, currency, amount, display}). Money-moving POSTs accept an Idempotency-Key header."
    },
    "servers": [
        {
            "url": "https://orax.uz"
        }
    ],
    "tags": [
        {
            "name": "OAuth 2.0",
            "description": "Getting a token: the authorization-code flow (PKCE for public clients) and the token exchange."
        },
        {
            "name": "Content",
            "description": "Published data readable without a token."
        },
        {
            "name": "Catalog",
            "description": "Products, plans and categories."
        },
        {
            "name": "Account",
            "description": "Profile, display preferences, push devices, loyalty and referrals."
        },
        {
            "name": "Services",
            "description": "Your services, their state, renewal and tariff."
        },
        {
            "name": "Service management",
            "description": "Everything inside one hosting account: domains, databases, mail, FTP, SSL, cron, DNS, PHP, logs, shell, SSH keys, backups."
        },
        {
            "name": "Files",
            "description": "Read and write project files through the panel adapter."
        },
        {
            "name": "Add-ons",
            "description": "Extras attached to a service (dedicated IPs). Prices are re-quoted live from the supplier cost book."
        },
        {
            "name": "Domains",
            "description": "TLD price book, WHOIS availability, your registrations and ordering."
        },
        {
            "name": "Monitors",
            "description": "Uptime monitors: create, inspect history, delete."
        },
        {
            "name": "Security & SLA",
            "description": "Security scans, per-service posture, uptime and the SLA compensation assessment."
        },
        {
            "name": "Orders",
            "description": "Create, pay and cancel orders."
        },
        {
            "name": "Wallet",
            "description": "Balance, transactions, top-ups and available gateways."
        },
        {
            "name": "AI agent",
            "description": "Run the AI agent over a project, read conversations, audit and insights."
        },
        {
            "name": "MCP",
            "description": "JSON-RPC 2.0 facade so an external AI agent can manage hosting over the Model Context Protocol."
        },
        {
            "name": "Embeds",
            "description": "Public endpoints you embed in a page rather than call from a backend \u2014 no token needed."
        },
        {
            "name": "Reseller",
            "description": "Reseller API key (rsk_\u2026). Separate surface: no OAuth, no Orax-side client records."
        }
    ],
    "components": {
        "securitySchemes": {
            "ApiKey": {
                "type": "http",
                "scheme": "bearer",
                "description": "Personal reseller API key (rsk_\u2026). Issue it on the /reseller page (live) or in the onboarding wizard (sandbox: rsk_test_\u2026)."
            },
            "OAuth2": {
                "type": "oauth2",
                "description": "Laravel Passport OAuth2. Register a client with `php artisan passport:client`.",
                "flows": {
                    "authorizationCode": {
                        "authorizationUrl": "https://orax.uz/oauth/authorize",
                        "tokenUrl": "https://orax.uz/oauth/token",
                        "refreshUrl": "https://orax.uz/oauth/token/refresh",
                        "scopes": {
                            "profile": "Read your profile",
                            "services:read": "View your services",
                            "services:write": "Manage domains, databases, FTP",
                            "orders:read": "View orders",
                            "orders:write": "Create / pay / cancel orders",
                            "wallet:read": "View wallet",
                            "wallet:write": "Top up the wallet",
                            "ai:read": "Read AI settings/insights",
                            "ai:write": "Run the AI agent",
                            "admin": "Administrative access (admin role required)"
                        }
                    }
                }
            }
        },
        "schemas": {
            "Money": {
                "type": "object",
                "properties": {
                    "usd_cents": {
                        "type": "integer",
                        "description": "USD minor units (cents)"
                    },
                    "currency": {
                        "type": "string"
                    },
                    "amount": {
                        "type": "integer"
                    },
                    "display": {
                        "type": "string"
                    }
                }
            },
            "Service": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "label": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string"
                    },
                    "status": {
                        "type": "string"
                    },
                    "domain": {
                        "type": "string",
                        "nullable": true
                    },
                    "client_ref": {
                        "type": "string",
                        "nullable": true
                    },
                    "expires_at": {
                        "type": "string",
                        "nullable": true
                    }
                }
            }
        }
    },
    "paths": {
        "/oauth/authorize": {
            "get": {
                "tags": [
                    "OAuth 2.0"
                ],
                "security": [],
                "summary": "Start the authorization-code flow (browser redirect)",
                "description": "Send the user here. They see the Orax consent screen and are redirected back to `redirect_uri` with `?code=\u2026`. Use PKCE (`code_challenge`, `code_challenge_method=S256`) for public clients \u2014 a mobile app or SPA must not ship a client secret.",
                "parameters": [
                    {
                        "name": "client_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "redirect_uri",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "response_type",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "example": "code"
                        }
                    },
                    {
                        "name": "scope",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "example": "profile services:read"
                        }
                    },
                    {
                        "name": "state",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "code_challenge",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "code_challenge_method",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "example": "S256"
                        }
                    }
                ],
                "responses": {
                    "302": {
                        "description": "Redirect back to your redirect_uri with ?code"
                    }
                }
            }
        },
        "/oauth/token": {
            "post": {
                "tags": [
                    "OAuth 2.0"
                ],
                "security": [],
                "summary": "Exchange a code (or refresh token) for an access token",
                "description": "Access tokens live 15 days, refresh tokens 30. Scopes are granted at authorize time; a token can never gain a scope the user did not approve.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/x-www-form-urlencoded": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "grant_type": {
                                        "type": "string",
                                        "example": "authorization_code"
                                    },
                                    "client_id": {
                                        "type": "string"
                                    },
                                    "client_secret": {
                                        "type": "string",
                                        "description": "Confidential clients only; omit with PKCE."
                                    },
                                    "redirect_uri": {
                                        "type": "string"
                                    },
                                    "code": {
                                        "type": "string"
                                    },
                                    "code_verifier": {
                                        "type": "string",
                                        "description": "PKCE"
                                    },
                                    "refresh_token": {
                                        "type": "string",
                                        "description": "With grant_type=refresh_token"
                                    }
                                },
                                "required": [
                                    "grant_type",
                                    "client_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "{access_token, refresh_token, expires_in, token_type: Bearer}"
                    },
                    "400": {
                        "description": "Invalid grant / client"
                    }
                }
            }
        },
        "/api/v1/ai/settings": {
            "get": {
                "tags": [
                    "AI agent"
                ],
                "summary": "Settings",
                "security": [
                    {
                        "OAuth2": [
                            "ai:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                }
            },
            "put": {
                "tags": [
                    "AI agent"
                ],
                "summary": "Update settings",
                "security": [
                    {
                        "OAuth2": [
                            "ai:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                }
            }
        },
        "/api/v1/assistant": {
            "get": {
                "tags": [
                    "AI agent"
                ],
                "summary": "Assistant",
                "security": [
                    {
                        "OAuth2": [
                            "profile"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                }
            },
            "post": {
                "tags": [
                    "AI agent"
                ],
                "summary": "Create assistant",
                "security": [
                    {
                        "OAuth2": [
                            "profile"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                }
            }
        },
        "/api/v1/blog": {
            "get": {
                "tags": [
                    "Content"
                ],
                "summary": "Blog posts (?category=guides|comparison|tips|news)",
                "security": [],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                },
                "description": "Public \u2014 no token required."
            }
        },
        "/api/v1/blog/{slug}": {
            "get": {
                "tags": [
                    "Content"
                ],
                "summary": "Blog",
                "security": [],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                },
                "description": "Public \u2014 no token required.",
                "parameters": [
                    {
                        "name": "slug",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/api/v1/catalog": {
            "get": {
                "tags": [
                    "Catalog"
                ],
                "summary": "Catalog",
                "security": [
                    {
                        "OAuth2": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    }
                }
            }
        },
        "/api/v1/categories": {
            "get": {
                "tags": [
                    "Catalog"
                ],
                "summary": "Categories",
                "security": [
                    {
                        "OAuth2": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    }
                }
            }
        },
        "/api/v1/currencies": {
            "get": {
                "tags": [
                    "Content"
                ],
                "summary": "Display currencies + rate per 1 USD",
                "security": [],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                },
                "description": "Public \u2014 no token required."
            }
        },
        "/api/v1/domains": {
            "get": {
                "tags": [
                    "Domains"
                ],
                "summary": "Domains",
                "security": [
                    {
                        "OAuth2": [
                            "domains:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                }
            },
            "post": {
                "tags": [
                    "Domains"
                ],
                "summary": "Order a domain \u2014 charges the wallet, send Idempotency-Key",
                "security": [
                    {
                        "OAuth2": [
                            "domains:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "required": false,
                        "description": "Unique key per money-moving request; a retry with the same key is not re-charged (24h).",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/api/v1/domains/check": {
            "get": {
                "tags": [
                    "Domains"
                ],
                "summary": "WHOIS availability (true / false / null = unknown)",
                "security": [],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                },
                "description": "Public \u2014 no token required."
            }
        },
        "/api/v1/domains/tlds": {
            "get": {
                "tags": [
                    "Domains"
                ],
                "summary": "TLD price book (retail, USD cents)",
                "security": [],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                },
                "description": "Public \u2014 no token required."
            }
        },
        "/api/v1/domains/{domain}": {
            "get": {
                "tags": [
                    "Domains"
                ],
                "summary": "Domains",
                "security": [
                    {
                        "OAuth2": [
                            "domains:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "domain",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/glossary": {
            "get": {
                "tags": [
                    "Content"
                ],
                "summary": "Hosting glossary with short and full definitions",
                "security": [],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                },
                "description": "Public \u2014 no token required."
            }
        },
        "/api/v1/kb": {
            "get": {
                "tags": [
                    "Content"
                ],
                "summary": "Knowledge-base articles (?category=, ?q=, paginated)",
                "security": [],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                },
                "description": "Public \u2014 no token required."
            }
        },
        "/api/v1/kb/{slug}": {
            "get": {
                "tags": [
                    "Content"
                ],
                "summary": "Kb",
                "security": [],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                },
                "description": "Public \u2014 no token required.",
                "parameters": [
                    {
                        "name": "slug",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/api/v1/mcp": {
            "post": {
                "tags": [
                    "MCP"
                ],
                "summary": "JSON-RPC 2.0 endpoint (tools/list, tools/call)",
                "security": [
                    {
                        "OAuth2": []
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                }
            }
        },
        "/api/v1/me": {
            "get": {
                "tags": [
                    "Account"
                ],
                "summary": "Current user (locale, display currency, enabled modules)",
                "security": [
                    {
                        "OAuth2": [
                            "profile"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                }
            },
            "patch": {
                "tags": [
                    "Account"
                ],
                "summary": "Update display preferences (locale + currency)",
                "security": [
                    {
                        "OAuth2": [
                            "profile"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                }
            }
        },
        "/api/v1/me/devices": {
            "post": {
                "tags": [
                    "Account"
                ],
                "summary": "Create devices",
                "security": [
                    {
                        "OAuth2": [
                            "profile"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                }
            },
            "delete": {
                "tags": [
                    "Account"
                ],
                "summary": "Delete devices",
                "security": [
                    {
                        "OAuth2": [
                            "profile"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                }
            }
        },
        "/api/v1/me/loyalty": {
            "get": {
                "tags": [
                    "Account"
                ],
                "summary": "Loyalty tier, next tier and days to it",
                "security": [
                    {
                        "OAuth2": [
                            "profile"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                }
            }
        },
        "/api/v1/me/referral": {
            "get": {
                "tags": [
                    "Account"
                ],
                "summary": "Referral code, share link and conversion stats",
                "security": [
                    {
                        "OAuth2": [
                            "profile"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                }
            }
        },
        "/api/v1/monitors": {
            "get": {
                "tags": [
                    "Monitors"
                ],
                "summary": "Monitors",
                "security": [
                    {
                        "OAuth2": [
                            "monitors:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                }
            },
            "post": {
                "tags": [
                    "Monitors"
                ],
                "summary": "Create monitors",
                "security": [
                    {
                        "OAuth2": [
                            "monitors:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                }
            }
        },
        "/api/v1/monitors/{monitor}": {
            "get": {
                "tags": [
                    "Monitors"
                ],
                "summary": "Monitors",
                "security": [
                    {
                        "OAuth2": [
                            "monitors:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "patch": {
                "tags": [
                    "Monitors"
                ],
                "summary": "Update monitors",
                "security": [
                    {
                        "OAuth2": [
                            "monitors:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Monitors"
                ],
                "summary": "Delete monitors",
                "security": [
                    {
                        "OAuth2": [
                            "monitors:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "monitor",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/notifications": {
            "get": {
                "tags": [
                    "Account"
                ],
                "summary": "Notifications",
                "security": [
                    {
                        "OAuth2": [
                            "profile"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                }
            }
        },
        "/api/v1/notifications/read": {
            "post": {
                "tags": [
                    "Account"
                ],
                "summary": "Create read",
                "security": [
                    {
                        "OAuth2": [
                            "profile"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                }
            }
        },
        "/api/v1/orders": {
            "get": {
                "tags": [
                    "Orders"
                ],
                "summary": "Orders",
                "security": [
                    {
                        "OAuth2": [
                            "orders:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                }
            },
            "post": {
                "tags": [
                    "Orders"
                ],
                "summary": "Create an order \u2014 send Idempotency-Key",
                "security": [
                    {
                        "OAuth2": [
                            "orders:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "required": false,
                        "description": "Unique key per money-moving request; a retry with the same key is not re-charged (24h).",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/api/v1/orders/{order}": {
            "get": {
                "tags": [
                    "Orders"
                ],
                "summary": "Orders",
                "security": [
                    {
                        "OAuth2": [
                            "orders:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/orders/{order}/cancel": {
            "post": {
                "tags": [
                    "Orders"
                ],
                "summary": "Create cancel",
                "security": [
                    {
                        "OAuth2": [
                            "orders:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/orders/{order}/pay": {
            "post": {
                "tags": [
                    "Orders"
                ],
                "summary": "Pay an order from the wallet",
                "security": [
                    {
                        "OAuth2": [
                            "orders:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "order",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "required": false,
                        "description": "Unique key per money-moving request; a retry with the same key is not re-charged (24h).",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/api/v1/reviews": {
            "get": {
                "tags": [
                    "Content"
                ],
                "summary": "Approved reviews + aggregate rating in meta",
                "security": [],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                },
                "description": "Public \u2014 no token required."
            }
        },
        "/api/v1/security/scans": {
            "get": {
                "tags": [
                    "Security & SLA"
                ],
                "summary": "Scans",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                }
            },
            "post": {
                "tags": [
                    "Security & SLA"
                ],
                "summary": "Run a security scan against a URL you own (synchronous)",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                }
            }
        },
        "/api/v1/servers": {
            "get": {
                "tags": [
                    "Account"
                ],
                "summary": "Servers",
                "security": [
                    {
                        "OAuth2": [
                            "profile"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                }
            }
        },
        "/api/v1/services": {
            "get": {
                "tags": [
                    "Services"
                ],
                "summary": "Services",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                }
            }
        },
        "/api/v1/services/{service}": {
            "get": {
                "tags": [
                    "Service management"
                ],
                "summary": "Services",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/addons": {
            "get": {
                "tags": [
                    "Add-ons"
                ],
                "summary": "Addons",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "post": {
                "tags": [
                    "Add-ons"
                ],
                "summary": "Create addons",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "required": false,
                        "description": "Unique key per money-moving request; a retry with the same key is not re-charged (24h).",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/addons/{addon}": {
            "delete": {
                "tags": [
                    "Add-ons"
                ],
                "summary": "Delete addons",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "addon",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/ai/audit": {
            "post": {
                "tags": [
                    "AI agent"
                ],
                "summary": "Create audit",
                "security": [
                    {
                        "OAuth2": [
                            "ai:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/ai/conversations": {
            "get": {
                "tags": [
                    "AI agent"
                ],
                "summary": "Conversations",
                "security": [
                    {
                        "OAuth2": [
                            "ai:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/ai/conversations/{conversation}": {
            "get": {
                "tags": [
                    "AI agent"
                ],
                "summary": "Conversations",
                "security": [
                    {
                        "OAuth2": [
                            "ai:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "conversation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "delete": {
                "tags": [
                    "AI agent"
                ],
                "summary": "Delete conversations",
                "security": [
                    {
                        "OAuth2": [
                            "ai:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "conversation",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/ai/insights": {
            "get": {
                "tags": [
                    "AI agent"
                ],
                "summary": "Insights",
                "security": [
                    {
                        "OAuth2": [
                            "ai:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/ai/insights/{insight}/dismiss": {
            "post": {
                "tags": [
                    "AI agent"
                ],
                "summary": "Create dismiss",
                "security": [
                    {
                        "OAuth2": [
                            "ai:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "insight",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/ai/run": {
            "post": {
                "tags": [
                    "AI agent"
                ],
                "summary": "Create run",
                "security": [
                    {
                        "OAuth2": [
                            "ai:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/backups": {
            "get": {
                "tags": [
                    "Service management"
                ],
                "summary": "Backups",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "post": {
                "tags": [
                    "Service management"
                ],
                "summary": "Create backups",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Service management"
                ],
                "summary": "Delete backups",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/cron": {
            "get": {
                "tags": [
                    "Service management"
                ],
                "summary": "Cron",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "post": {
                "tags": [
                    "Service management"
                ],
                "summary": "Create cron",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Service management"
                ],
                "summary": "Delete cron",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/databases": {
            "get": {
                "tags": [
                    "Service management"
                ],
                "summary": "Databases",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "post": {
                "tags": [
                    "Service management"
                ],
                "summary": "Create databases",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Service management"
                ],
                "summary": "Delete databases",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/dns": {
            "get": {
                "tags": [
                    "Service management"
                ],
                "summary": "Dns",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "post": {
                "tags": [
                    "Service management"
                ],
                "summary": "Create dns",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Service management"
                ],
                "summary": "Delete dns",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/domains": {
            "get": {
                "tags": [
                    "Service management"
                ],
                "summary": "Domains",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "post": {
                "tags": [
                    "Service management"
                ],
                "summary": "Create domains",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Service management"
                ],
                "summary": "Delete domains",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/email-domains": {
            "get": {
                "tags": [
                    "Service management"
                ],
                "summary": "Email domains",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/files": {
            "get": {
                "tags": [
                    "Files"
                ],
                "summary": "Files",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "post": {
                "tags": [
                    "Files"
                ],
                "summary": "Create files",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Files"
                ],
                "summary": "Delete files",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/files/content": {
            "get": {
                "tags": [
                    "Files"
                ],
                "summary": "Content",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/files/undo": {
            "post": {
                "tags": [
                    "Files"
                ],
                "summary": "Create undo",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/freeze": {
            "post": {
                "tags": [
                    "Service management"
                ],
                "summary": "Create freeze",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/ftp": {
            "get": {
                "tags": [
                    "Service management"
                ],
                "summary": "Ftp",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "post": {
                "tags": [
                    "Service management"
                ],
                "summary": "Create ftp",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Service management"
                ],
                "summary": "Delete ftp",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/logs": {
            "get": {
                "tags": [
                    "Service management"
                ],
                "summary": "Logs",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/logs/content": {
            "get": {
                "tags": [
                    "Service management"
                ],
                "summary": "Content",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/mailboxes": {
            "get": {
                "tags": [
                    "Service management"
                ],
                "summary": "Mailboxes",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "post": {
                "tags": [
                    "Service management"
                ],
                "summary": "Create mailboxes",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Service management"
                ],
                "summary": "Delete mailboxes",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/php": {
            "get": {
                "tags": [
                    "Service management"
                ],
                "summary": "Php",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "post": {
                "tags": [
                    "Service management"
                ],
                "summary": "Create php",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/renew": {
            "post": {
                "tags": [
                    "Service management"
                ],
                "summary": "Create renew",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "required": false,
                        "description": "Unique key per money-moving request; a retry with the same key is not re-charged (24h).",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/security": {
            "get": {
                "tags": [
                    "Security & SLA"
                ],
                "summary": "Composite security score for the service",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/shell": {
            "get": {
                "tags": [
                    "Service management"
                ],
                "summary": "Shell",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "post": {
                "tags": [
                    "Service management"
                ],
                "summary": "Create shell",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/ssh-keys": {
            "get": {
                "tags": [
                    "Service management"
                ],
                "summary": "Ssh keys",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "post": {
                "tags": [
                    "Service management"
                ],
                "summary": "Create ssh keys",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Service management"
                ],
                "summary": "Delete ssh keys",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/ssl": {
            "get": {
                "tags": [
                    "Service management"
                ],
                "summary": "Ssl",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "post": {
                "tags": [
                    "Service management"
                ],
                "summary": "Create ssl",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            },
            "delete": {
                "tags": [
                    "Service management"
                ],
                "summary": "Delete ssl",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/tariff": {
            "post": {
                "tags": [
                    "Service management"
                ],
                "summary": "Create tariff",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/tariffs": {
            "get": {
                "tags": [
                    "Service management"
                ],
                "summary": "Tariffs",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/unfreeze": {
            "post": {
                "tags": [
                    "Service management"
                ],
                "summary": "Create unfreeze",
                "security": [
                    {
                        "OAuth2": [
                            "services:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/uptime": {
            "get": {
                "tags": [
                    "Security & SLA"
                ],
                "summary": "Monthly uptime, the outages behind it and the SLA compensation assessment",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/services/{service}/usage": {
            "get": {
                "tags": [
                    "Service management"
                ],
                "summary": "Usage",
                "security": [
                    {
                        "OAuth2": [
                            "services:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ]
            }
        },
        "/api/v1/status": {
            "get": {
                "tags": [
                    "Content"
                ],
                "summary": "Platform status: operational flag + incident history",
                "security": [],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                },
                "description": "Public \u2014 no token required."
            }
        },
        "/api/v1/templates": {
            "get": {
                "tags": [
                    "Content"
                ],
                "summary": "Site/bot templates on sale, with live demo URLs",
                "security": [],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                },
                "description": "Public \u2014 no token required."
            }
        },
        "/api/v1/wallet": {
            "get": {
                "tags": [
                    "Wallet"
                ],
                "summary": "Wallet",
                "security": [
                    {
                        "OAuth2": [
                            "wallet:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                }
            }
        },
        "/api/v1/wallet/gateways": {
            "get": {
                "tags": [
                    "Wallet"
                ],
                "summary": "Gateways",
                "security": [
                    {
                        "OAuth2": [
                            "wallet:read"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    }
                }
            }
        },
        "/api/v1/wallet/topups": {
            "post": {
                "tags": [
                    "Wallet"
                ],
                "summary": "Create topups",
                "security": [
                    {
                        "OAuth2": [
                            "wallet:write"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or invalid token"
                    },
                    "403": {
                        "description": "Token lacks the required scope"
                    },
                    "422": {
                        "description": "Validation or business-rule refusal"
                    }
                },
                "parameters": [
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "required": false,
                        "description": "Unique key per money-moving request; a retry with the same key is not re-charged (24h).",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/badge/{token}": {
            "get": {
                "tags": [
                    "Embeds"
                ],
                "security": [],
                "summary": "Uptime badge (SVG) for one monitor",
                "description": "Embeddable with a plain `<img>`; no token, no CORS problem. Get the badge token from your monitor in the cabinet. An unknown token renders an \"n/a\" badge rather than a 404, so a revoked badge degrades quietly instead of breaking someone's page.",
                "parameters": [
                    {
                        "name": "token",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "image/svg+xml"
                    }
                }
            }
        },
        "/templates/{template}/preview": {
            "get": {
                "tags": [
                    "Embeds"
                ],
                "security": [],
                "summary": "Live demo of a marketplace template (HTML)",
                "description": "The template's own index.html, served sandboxed (CSP `sandbox` \u2192 opaque origin). Safe to put in an iframe. Its images are siblings at `/templates/{template}/img/{file}`.",
                "parameters": [
                    {
                        "name": "template",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "text/html"
                    },
                    "404": {
                        "description": "Bot template, or not approved"
                    }
                }
            }
        },
        "/api/openapi.json": {
            "get": {
                "tags": [
                    "Embeds"
                ],
                "security": [],
                "summary": "This document",
                "responses": {
                    "200": {
                        "description": "OpenAPI 3.1 specification"
                    }
                }
            }
        },
        "/api/v1/reseller": {
            "get": {
                "tags": [
                    "Reseller"
                ],
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "summary": "Account",
                "description": "Markup %, wallet balance, wholesale spent.",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "description": "Display currency (e.g. UZS). Billing stays USD.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "markup_percent": {
                                            "type": "integer"
                                        },
                                        "currency": {
                                            "type": "string"
                                        },
                                        "wallet": {
                                            "$ref": "#/components/schemas/Money"
                                        },
                                        "wholesale_spent": {
                                            "$ref": "#/components/schemas/Money"
                                        },
                                        "webhook_url": {
                                            "type": "string",
                                            "nullable": true
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/reseller/catalog": {
            "get": {
                "tags": [
                    "Reseller"
                ],
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "summary": "Catalog",
                "description": "Plans with wholesale (you pay Orax) + retail (your price).",
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "description": "Display currency (e.g. UZS). Billing stays USD.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "currency": {
                                            "type": "string"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "plan_id": {
                                                        "type": "integer"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "type": {
                                                        "type": "string"
                                                    },
                                                    "billing_period": {
                                                        "type": "string"
                                                    },
                                                    "wholesale": {
                                                        "$ref": "#/components/schemas/Money"
                                                    },
                                                    "retail": {
                                                        "$ref": "#/components/schemas/Money"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/reseller/services": {
            "get": {
                "tags": [
                    "Reseller"
                ],
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "summary": "List services",
                "description": "Services you provisioned, optionally filtered by client_ref.",
                "parameters": [
                    {
                        "name": "client_ref",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Service"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/reseller/services/{service}": {
            "get": {
                "tags": [
                    "Reseller"
                ],
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "summary": "Get a service",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Service"
                                }
                            }
                        }
                    },
                    "403": {
                        "description": "Not your service"
                    }
                }
            }
        },
        "/api/v1/reseller/orders": {
            "post": {
                "tags": [
                    "Reseller"
                ],
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "summary": "Provision a service",
                "description": "Charges your wallet the wholesale price and provisions the plan, tagged with client_ref. A sandbox key (rsk_test_\u2026) simulates this with no charge. Send a unique `Idempotency-Key` header to make retries safe.",
                "parameters": [
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "required": false,
                        "description": "Unique key per logical provision request (24h window).",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "plan_id": {
                                        "type": "integer"
                                    },
                                    "domain": {
                                        "type": "string"
                                    },
                                    "client_ref": {
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "plan_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "order": {
                                            "type": "object"
                                        },
                                        "service": {
                                            "$ref": "#/components/schemas/Service"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "402": {
                        "description": "Insufficient wallet balance"
                    },
                    "409": {
                        "description": "A request with this Idempotency-Key is already being processed"
                    }
                }
            }
        },
        "/api/v1/reseller/services/{service}/suspend": {
            "post": {
                "tags": [
                    "Reseller"
                ],
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "summary": "Suspend",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "status"
                    }
                }
            }
        },
        "/api/v1/reseller/services/{service}/unsuspend": {
            "post": {
                "tags": [
                    "Reseller"
                ],
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "summary": "Unsuspend",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "status"
                    }
                }
            }
        },
        "/api/v1/reseller/services/{service}/terminate": {
            "post": {
                "tags": [
                    "Reseller"
                ],
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "summary": "Terminate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "status"
                    }
                }
            }
        },
        "/api/v1/reseller/templates/{template}/purchase": {
            "post": {
                "tags": [
                    "Reseller"
                ],
                "security": [
                    {
                        "ApiKey": []
                    }
                ],
                "summary": "Buy a marketplace template at wholesale onto one of your services",
                "description": "Charges the reseller the author base price (no markup); the author earns base \u2212 commission. The response carries `suggested_retail` (base + your markup %) as a billing hint only \u2014 Orax never bills your client.",
                "parameters": [
                    {
                        "name": "template",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "service_id": {
                                        "type": "integer"
                                    }
                                },
                                "required": [
                                    "service_id"
                                ]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Purchased; deployment queued"
                    },
                    "422": {
                        "description": "Not your service / insufficient funds"
                    }
                }
            }
        }
    }
}