{
  "openapi": "3.2.0",
  "info": {
    "title": "API-протокол для работы с HEROSMS",
    "description": "Используете программы для регистрации? HeroSMS совместим с бывшими партнерами SMS-Activate.\n\n1. Выберите любую программу, которая включает SMS-Activate в число своих сервисов приема SMS.\n2. Выберите SMS-Activate в качестве сервиса для приема SMS.\n3. В настройках вашей программы замените хост с https://api.sms-activate.ae на https://hero-sms.com.\n4. Введите ключ API из вашей учетной записи HeroSMS (запросите его на нашем сайте).\n\nЕсли у вас возникнут какие-либо трудности, пожалуйста, свяжитесь с нашей службой технической поддержки. Мы решим все проблемы.",
    "version": "1.0"
  },
  "servers": [
    {
      "url": "https://hero-sms.com/api/v1",
      "description": "HeroSMS API server"
    },
    {
      "url": "https://hero-sms.com/stubs/handler_api.php",
      "description": "SMS-Activate API-compatible server"
    }
  ],
  "paths": {
    "/activations/history": {
      "get": {
        "tags": [
          "Activations"
        ],
        "summary": "История активаций",
        "operationId": "82eacb597b010298c78dacd1f0bdd3ff",
        "parameters": [
          {
            "$ref": "#/components/parameters/fromRequired"
          },
          {
            "$ref": "#/components/parameters/toRequired"
          },
          {
            "$ref": "#/components/parameters/servicesQuery"
          },
          {
            "$ref": "#/components/parameters/countriesQuery"
          },
          {
            "$ref": "#/components/parameters/activationStatusesQuery"
          },
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/sort"
          },
          {
            "$ref": "#/components/parameters/search"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "properties": {
                          "id": {
                            "type": "integer"
                          },
                          "createDate": {
                            "description": "Дата создания",
                            "type": "string",
                            "example": "2025-03-18 10:40:37"
                          },
                          "service": {
                            "$ref": "#/components/schemas/ServiceId"
                          },
                          "country": {
                            "$ref": "#/components/schemas/CountryId"
                          },
                          "phone": {
                            "$ref": "#/components/schemas/ActivationPhone"
                          },
                          "moreCodes": {
                            "description": "Пришедшие коды активаций",
                            "type": "string",
                            "example": "637881 is your verification code"
                          },
                          "cost": {
                            "$ref": "#/components/schemas/Price"
                          },
                          "status": {
                            "$ref": "#/components/schemas/ActivationStatusTypes"
                          },
                          "phoneCode": {
                            "type": "string",
                            "example": "+55"
                          },
                          "currency": {
                            "$ref": "#/components/schemas/Currency"
                          }
                        },
                        "type": "object"
                      }
                    },
                    "totals": {
                      "properties": {
                        "sum": {
                          "description": "Сумма",
                          "type": "number",
                          "format": "float",
                          "example": 0.6
                        },
                        "successCount": {
                          "description": "Количество успешных активаций",
                          "type": "integer",
                          "example": 1
                        }
                      },
                      "type": "object"
                    },
                    "meta": {
                      "$ref": "#/components/schemas/PaginationMetaData"
                    }
                  },
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-sort-columns": [
          "id",
          "cost",
          "createDate"
        ]
      }
    },
    "/activations/{activationId}/otp/last": {
      "get": {
        "tags": [
          "Activation OTP"
        ],
        "summary": "Получить последнее OTP активной активации",
        "operationId": "getActivationOtpLast",
        "parameters": [
          {
            "$ref": "#/components/parameters/activationPath"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ActivationOtpSuccessResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/activations/{activationId}/otp": {
      "get": {
        "tags": [
          "Activation OTP"
        ],
        "summary": "Получить список OTP активной активации",
        "operationId": "getActivationOtpList",
        "parameters": [
          {
            "$ref": "#/components/parameters/activationPath"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ActivationOtpListSuccessResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/activations": {
      "get": {
        "tags": [
          "Activations"
        ],
        "summary": "Получить список активных активаций",
        "description": "Возвращает список активных активаций. В каждую активацию вложен полный список OTP.",
        "operationId": "getActiveActivations",
        "parameters": [
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/sort"
          },
          {
            "$ref": "#/components/parameters/search"
          },
          {
            "$ref": "#/components/parameters/verificationTypeQuery"
          },
          {
            "$ref": "#/components/parameters/from"
          },
          {
            "$ref": "#/components/parameters/to"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ActivationsSuccessResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-sort-columns": [
          "id"
        ]
      },
      "post": {
        "tags": [
          "Activations"
        ],
        "summary": "Купить активацию",
        "operationId": "buyActivationBatch",
        "requestBody": {
          "$ref": "#/components/requestBodies/BuyActivationRequestBody"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/ActivationsSuccessResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "403": {
            "$ref": "#/components/responses/ActivationBannedResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/activations/{activationId}": {
      "delete": {
        "tags": [
          "Activations"
        ],
        "summary": "Отменить активацию",
        "description": "Отмена активации и возврат средств. Отмена возможна только если активация не получила ни одного OTP или по активации со сроком жизни от 24 часов прошло менее 20 минут. Иначе вызывайте `POST /activations/{activationId}/finish`.",
        "operationId": "cancelActivation",
        "parameters": [
          {
            "$ref": "#/components/parameters/activationPath"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContentResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/activations/{activationId}/finish": {
      "post": {
        "tags": [
          "Activations"
        ],
        "summary": "Завершить активацию",
        "description": "Успешное завершение активации. Средства не возвращаются.",
        "operationId": "finishActivation",
        "parameters": [
          {
            "$ref": "#/components/parameters/activationPath"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/NoContentResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/activations/{activationId}/replace": {
      "post": {
        "tags": [
          "Activations"
        ],
        "summary": "Запросить смену номера",
        "operationId": "replaceActivation",
        "parameters": [
          {
            "$ref": "#/components/parameters/activationPath"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ActivationsSuccessResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "403": {
            "$ref": "#/components/responses/ActivationBannedResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/activations/{activationId}/reactivate": {
      "post": {
        "tags": [
          "Activations"
        ],
        "summary": "Возобновить работу с номером",
        "description": "Возобновить работу с номером возможно, только если активация была завершена успешно.",
        "operationId": "reactivateActivation",
        "parameters": [
          {
            "$ref": "#/components/parameters/activationPath"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ReactivateActivationRequestBody"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/ActivationsSuccessResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/activations/{activationId}/reactivate/options": {
      "get": {
        "tags": [
          "Activations"
        ],
        "summary": "Получить доступные варианты возобновления работы с номером",
        "operationId": "reactivateOptions",
        "parameters": [
          {
            "$ref": "#/components/parameters/activationPath"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ActivationExtendOptionsSuccessResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/activations/{activationId}/prolong": {
      "post": {
        "tags": [
          "Activations"
        ],
        "summary": "Продление аренды номера",
        "operationId": "prolongActivation",
        "parameters": [
          {
            "$ref": "#/components/parameters/activationPath"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ProlongActivationRequestBody"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/ActivationsSuccessResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "425": {
            "$ref": "#/components/responses/TooEarlyRequestResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/activations/{activationId}/prolong/options": {
      "get": {
        "tags": [
          "Activations"
        ],
        "summary": "Получить доступные варианты продления номера",
        "operationId": "prolongOptions",
        "parameters": [
          {
            "$ref": "#/components/parameters/activationPath"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ActivationExtendOptionsSuccessResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "425": {
            "$ref": "#/components/responses/TooEarlyRequestResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/activations/{activationId}/prolong/history": {
      "get": {
        "tags": [
          "Activations"
        ],
        "summary": "Получить историю продления номера",
        "operationId": "prolongActivationHistory",
        "parameters": [
          {
            "$ref": "#/components/parameters/activationPath"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ProlongHistorySuccessResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/classifiers/activations/custom-durations": {
      "get": {
        "tags": [
          "Classifiers"
        ],
        "summary": "Справочник позиций с нестандартной продолжительностью жизни активаций",
        "operationId": "customDurations",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "required": [
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "description": "service",
                      "type": "object",
                      "additionalProperties": {
                        "description": "country",
                        "type": "object",
                        "additionalProperties": {
                          "description": "minutes",
                          "type": "integer",
                          "example": 60
                        }
                      }
                    }
                  },
                  "type": "object"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        }
      }
    },
    "/activations/stats": {
      "get": {
        "tags": [
          "Activations"
        ],
        "summary": "Статистика текущего пользователя",
        "description": "Возвращает статистику активаций для текущего авторизованного пользователя",
        "operationId": "getActivationStats",
        "parameters": [
          {
            "name": "date",
            "in": "query",
            "description": "Дата, за которую нужна статистика",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "properties": {
                        "country": {
                          "properties": {
                            "service": {
                              "properties": {
                                "count": {
                                  "type": "integer",
                                  "example": 10
                                },
                                "success": {
                                  "type": "integer",
                                  "example": 5
                                },
                                "percent": {
                                  "$ref": "#/components/schemas/Percent"
                                }
                              },
                              "type": "object"
                            }
                          },
                          "type": "object"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/activations/offers/{verificationType}": {
      "get": {
        "tags": [
          "Activations"
        ],
        "summary": "Получить предложения активаций",
        "description": "Возвращает предложения активаций, сгруппированные по сервисам и странам, и метаданные для их отображения",
        "operationId": "getActivationOffers",
        "parameters": [
          {
            "$ref": "#/components/parameters/verificationTypePath"
          },
          {
            "$ref": "#/components/parameters/servicesPath"
          },
          {
            "$ref": "#/components/parameters/countriesPath"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ActivationsOffersSuccessResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "404": {
            "$ref": "#/components/responses/OfferNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequestsResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/emails": {
      "get": {
        "tags": [
          "Emails"
        ],
        "summary": "Получить список активных покупок",
        "operationId": "7f17119e77aad0c154d2f5e600ef092a",
        "parameters": [
          {
            "$ref": "#/components/parameters/search"
          },
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/sort"
          },
          {
            "$ref": "#/components/parameters/emailStatusesQuery"
          },
          {
            "$ref": "#/components/parameters/from"
          },
          {
            "$ref": "#/components/parameters/to"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/EmailActivation"
                      }
                    }
                  },
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ],
        "x-sort-columns": [
          "id",
          "status",
          "cost",
          "date"
        ]
      },
      "post": {
        "tags": [
          "Emails"
        ],
        "summary": "Купить активацию по почте",
        "operationId": "22164e5067a27560b8fbf28b2ac1f019",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "site",
                  "domain"
                ],
                "properties": {
                  "site": {
                    "$ref": "#/components/schemas/EmailSite"
                  },
                  "domain": {
                    "$ref": "#/components/schemas/EmailDomain"
                  },
                  "maxPrice": {
                    "$ref": "#/components/schemas/EmailMaxPrice"
                  }
                },
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/EmailActivationSuccessResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/emails/batch": {
      "post": {
        "tags": [
          "Emails"
        ],
        "summary": "Купить активацию по почте пачками",
        "operationId": "7892a59d83e6e38d154854fe1f1b065f",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "site",
                  "domain",
                  "count"
                ],
                "properties": {
                  "site": {
                    "$ref": "#/components/schemas/EmailSite"
                  },
                  "domain": {
                    "$ref": "#/components/schemas/EmailDomain"
                  },
                  "count": {
                    "description": "Количество почт для активации (от 1 до 10)",
                    "type": "integer",
                    "example": 5,
                    "maximum": 10,
                    "minimum": 1
                  },
                  "maxPrice": {
                    "$ref": "#/components/schemas/EmailMaxPrice"
                  }
                },
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/EmailActivationBatchSuccessResponse"
          },
          "400": {
            "$ref": "#/components/responses/BadRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/emails/{emailId}": {
      "get": {
        "tags": [
          "Emails"
        ],
        "summary": "Проверить состояние активации по почте",
        "operationId": "c57ebd15edbfa8625b8a60984b76e3c6",
        "parameters": [
          {
            "$ref": "#/components/parameters/emailId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/EmailActivationSuccessResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundResponse"
          },
          "409": {
            "$ref": "#/components/responses/RaceConditionResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Emails"
        ],
        "summary": "Отменить покупку активации по почте",
        "operationId": "20dae8daa691db1282f0d1d268dbac44",
        "parameters": [
          {
            "$ref": "#/components/parameters/emailId"
          }
        ],
        "responses": {
          "204": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/EmailCancelBadRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundResponse"
          },
          "409": {
            "$ref": "#/components/responses/EmailCancelConflictResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/emails/{emailId}/reorder": {
      "post": {
        "tags": [
          "Emails"
        ],
        "summary": "Перезаказать активацию по почте",
        "operationId": "bb0d53e0557982f130c1540ed663e831",
        "parameters": [
          {
            "$ref": "#/components/parameters/emailId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/EmailActivationSuccessResponse"
          },
          "400": {
            "$ref": "#/components/responses/EmailReorderBadRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/emails/domains": {
      "get": {
        "tags": [
          "Emails"
        ],
        "summary": "Получить список доступных доменов",
        "description": "Метод устарел. Используйте метод GET emails/offers",
        "operationId": "59f271906bdbc81b6b2cdd4213b01775",
        "parameters": [
          {
            "name": "site",
            "in": "query",
            "description": "Сайт для которого берётся активация",
            "required": true,
            "schema": {
              "type": "string",
              "example": "telegram.com"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "properties": {
                          "name": {
                            "description": "Наименование домена",
                            "type": "string"
                          },
                          "cost": {
                            "$ref": "#/components/schemas/Price"
                          },
                          "count": {
                            "description": "Количество доступных почт",
                            "type": "integer"
                          }
                        },
                        "type": "object"
                      }
                    }
                  },
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "deprecated": true,
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/emails/offers": {
      "get": {
        "tags": [
          "Emails"
        ],
        "summary": "Офферы по доменам",
        "description": "Возвращает ценовые позиции по доменам сайта: внутри домена по цене, домены по минимальной цене",
        "operationId": "f8e545c04e941382450fcc88b14c4e89",
        "parameters": [
          {
            "name": "site",
            "in": "query",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/EmailSite"
            }
          },
          {
            "name": "domain",
            "in": "query",
            "description": "Фильтр по домену",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/EmailDomain"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/EmailOfferDomain"
                      }
                    }
                  },
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "/stats/deliverability": {
      "get": {
        "tags": [
          "Statistics"
        ],
        "summary": "Получить статистику доставляемости по странам",
        "description": "Возвращает топ стран по доставляемости для выбранных сервисов",
        "operationId": "60679e939ef779f9063f3a035599e820",
        "parameters": [
          {
            "$ref": "#/components/parameters/servicesQueryRequired"
          },
          {
            "$ref": "#/components/parameters/countriesQuery"
          },
          {
            "$ref": "#/components/parameters/intervalQuery"
          },
          {
            "$ref": "#/components/parameters/successCountQuery"
          },
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/withOperatorsQuery"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "data": {
                      "description": "Статистика по странам для каждого сервиса: ключ - код сервиса, значение - страны по убыванию доставляемости",
                      "type": "object",
                      "additionalProperties": {
                        "type": "array",
                        "items": {
                          "required": [
                            "country",
                            "successRate"
                          ],
                          "properties": {
                            "country": {
                              "$ref": "#/components/schemas/CountryId"
                            },
                            "successRate": {
                              "$ref": "#/components/schemas/SuccessRate"
                            },
                            "operators": {
                              "description": "Присутствует только если параметр withOperators=true",
                              "type": [
                                "array",
                                "null"
                              ],
                              "items": {
                                "properties": {
                                  "code": {
                                    "$ref": "#/components/schemas/OperatorCode"
                                  },
                                  "successRate": {
                                    "$ref": "#/components/schemas/SuccessRate"
                                  },
                                  "share": {
                                    "description": "Доля оператора от общего числа успешных покупок по стране, от 1% (сумма долей может быть меньше 100%)",
                                    "type": "number",
                                    "format": "float",
                                    "minimum": 1
                                  }
                                },
                                "type": "object"
                              }
                            }
                          },
                          "type": "object"
                        }
                      }
                    },
                    "meta": {
                      "properties": {
                        "filters": {
                          "properties": {
                            "services": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "countries": {
                              "type": "array",
                              "items": {
                                "type": "integer"
                              }
                            },
                            "interval": {
                              "type": "integer"
                            },
                            "successCount": {
                              "type": "string",
                              "enum": [
                                "very_high",
                                "high",
                                "medium",
                                "low"
                              ]
                            },
                            "withOperators": {
                              "type": "boolean"
                            }
                          },
                          "type": "object"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyAuth": []
          }
        ]
      }
    },
    "?action=getBalance": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Запросить баланс аккаунта",
        "description": "Возвращает текущий баланс в формате `ACCESS_BALANCE:<сумма>`",
        "operationId": "getBalance",
        "responses": {
          "200": {
            "description": "Результат запроса баланса",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                },
                "examples": {
                  "successfulBalanceExample": {
                    "$ref": "#/components/examples/successfulBalanceExample"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/unauthorizedResponse"
          },
          "404": {
            "$ref": "#/components/responses/methodNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/unprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/SAServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=getNumber": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Запросить номер",
        "description": "Запрашивает телефонный номер для указанного сервиса и страны. Возвращает строку вида `ACCESS_NUMBER:<id_активации>:<номер>`",
        "operationId": "getNumber",
        "parameters": [
          {
            "$ref": "#/components/parameters/qpSARequiredService"
          },
          {
            "$ref": "#/components/parameters/qpSARequiredCountry"
          },
          {
            "$ref": "#/components/parameters/qpSAOptionalOperator"
          },
          {
            "$ref": "#/components/parameters/qpSAOptionalMaxPrice"
          },
          {
            "$ref": "#/components/parameters/qpSAOptionalFixedPrice"
          },
          {
            "$ref": "#/components/parameters/qpSAOptionalRef"
          },
          {
            "$ref": "#/components/parameters/qpSAOptionalPhoneException"
          }
        ],
        "responses": {
          "200": {
            "description": "Результат запроса номера",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                },
                "examples": {
                  "successfulNumberExample": {
                    "$ref": "#/components/examples/successfulNumberExample"
                  },
                  "numbersNotFoundExample": {
                    "$ref": "#/components/examples/numbersNotFoundExample"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/getNumberBadRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/unauthorizedResponse"
          },
          "402": {
            "$ref": "#/components/responses/paymentRequiredResponse"
          },
          "403": {
            "$ref": "#/components/responses/forbiddenResponse"
          },
          "404": {
            "$ref": "#/components/responses/methodNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/unprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/SAServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=getNumberV2": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Запросить номер V2",
        "description": "Аналогичен getNumber, но возвращает больше информации об активации (JSON-объект)",
        "operationId": "getNumberV2",
        "parameters": [
          {
            "$ref": "#/components/parameters/qpSARequiredService"
          },
          {
            "$ref": "#/components/parameters/qpSARequiredCountry"
          },
          {
            "$ref": "#/components/parameters/qpSAOptionalOperator"
          },
          {
            "$ref": "#/components/parameters/qpSAOptionalMaxPrice"
          },
          {
            "$ref": "#/components/parameters/qpSAOptionalFixedPrice"
          },
          {
            "$ref": "#/components/parameters/qpSAOptionalRef"
          },
          {
            "$ref": "#/components/parameters/qpSAOptionalPhoneException"
          }
        ],
        "responses": {
          "200": {
            "description": "Результат запроса номера (V2)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/successfulNumberv2Response"
                },
                "examples": {
                  "successfulNumberv2Example": {
                    "$ref": "#/components/examples/successfulNumberv2Example"
                  },
                  "numbersNotFoundExample": {
                    "$ref": "#/components/examples/numbersNotFoundExample"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/getNumberBadRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/unauthorizedResponse"
          },
          "402": {
            "$ref": "#/components/responses/paymentRequiredResponse"
          },
          "403": {
            "$ref": "#/components/responses/forbiddenResponse"
          },
          "404": {
            "$ref": "#/components/responses/methodNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/unprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/SAServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=setStatus": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Изменить статус активации",
        "description": "Управление жизненным циклом активации.\nВозможные статусы:\n- 3  — запросить повторную отправку SMS\n- 6  — завершить активацию (код получен и подтверждён)\n- 8  — отменить активацию (вернуть деньги)",
        "operationId": "setStatus",
        "parameters": [
          {
            "$ref": "#/components/parameters/qpSARequiredActivationID"
          },
          {
            "$ref": "#/components/parameters/qpSARequiredActivationStatus"
          }
        ],
        "responses": {
          "200": {
            "description": "Результат изменения статуса",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                },
                "examples": {
                  "successfulRetryGetExample": {
                    "$ref": "#/components/examples/successfulRetryGetExample"
                  },
                  "successfulAccessActivationExample": {
                    "$ref": "#/components/examples/successfulAccessActivationExample"
                  },
                  "successfulAccessCancelExample": {
                    "$ref": "#/components/examples/successfulAccessCancelExample"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/badRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/unauthorizedResponse"
          },
          "403": {
            "$ref": "#/components/responses/forbiddenResponse"
          },
          "404": {
            "$ref": "#/components/responses/activationNotFoundResponse"
          },
          "409": {
            "$ref": "#/components/responses/activationCancelConflictResponse"
          },
          "422": {
            "$ref": "#/components/responses/unprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/SAServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=getStatus": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Получить статус активации",
        "description": "Возвращает текущий статус активации в текстовом виде (STATUS_WAIT_CODE, STATUS_OK и т.д.) + код при наличии",
        "operationId": "getStatus",
        "parameters": [
          {
            "$ref": "#/components/parameters/qpSARequiredActivationID"
          }
        ],
        "responses": {
          "200": {
            "description": "Текущий статус активации",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                },
                "examples": {
                  "successfulWaitCodeExample": {
                    "$ref": "#/components/examples/successfulWaitCodeExample"
                  },
                  "successfulWaitRetryExample": {
                    "$ref": "#/components/examples/successfulWaitRetryExample"
                  },
                  "successfulWaitResendExample": {
                    "$ref": "#/components/examples/successfulWaitResendExample"
                  },
                  "successfulCancelExample": {
                    "$ref": "#/components/examples/successfulCancelExample"
                  },
                  "successfulOKExample": {
                    "$ref": "#/components/examples/successfulOKExample"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/badRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/unauthorizedResponse"
          },
          "402": {
            "$ref": "#/components/responses/paymentRequiredResponse"
          },
          "403": {
            "$ref": "#/components/responses/forbiddenResponse"
          },
          "404": {
            "$ref": "#/components/responses/activationNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/unprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/SAServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=getStatusV2": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Получить состояние активации V2",
        "description": "Возвращает статус активации в структурированном виде (JSON)",
        "operationId": "getStatusV2",
        "parameters": [
          {
            "$ref": "#/components/parameters/qpSARequiredActivationID"
          }
        ],
        "responses": {
          "200": {
            "description": "Текущий статус активации (V2)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivationStatusV2"
                },
                "examples": {
                  "correctActivationStatusExample": {
                    "$ref": "#/components/examples/successfulActivationV2Example"
                  },
                  "successfulCancelExample": {
                    "summary": "Активация отменена",
                    "value": "STATUS_CANCEL"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/badRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/unauthorizedResponse"
          },
          "402": {
            "$ref": "#/components/responses/paymentRequiredResponse"
          },
          "403": {
            "$ref": "#/components/responses/forbiddenResponse"
          },
          "404": {
            "$ref": "#/components/responses/activationNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/unprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/SAServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=getActiveActivations": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Получить список активных активации",
        "description": "Возвращает список активных активаций",
        "operationId": "saGetActiveActivations",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "description": "Смещение (по умолчанию 0)",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Лимит записей (макс. 100)",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Результат получения активных активаций",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActiveActivations"
                },
                "examples": {
                  "activationsSuccessfulExample": {
                    "$ref": "#/components/examples/activationsSuccessfulExample"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/badRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/unauthorizedResponse"
          },
          "402": {
            "$ref": "#/components/responses/paymentRequiredResponse"
          },
          "403": {
            "$ref": "#/components/responses/forbiddenResponse"
          },
          "404": {
            "$ref": "#/components/responses/methodNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/unprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/SAServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=getHistory": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Получить историю активаций",
        "description": "Возвращает историю активаций",
        "operationId": "getHistory",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "description": "Начало периода (Unix Timestamp)",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "end",
            "in": "query",
            "description": "Конец периода (Unix Timestamp)",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Смещение (по умолчанию 0)",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "Лимит записей (макс. 100)",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Результат получения истории активаций",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivationsHistory"
                },
                "examples": {
                  "successfulActivationsHistoryExample": {
                    "$ref": "#/components/examples/successfulActivationsHistoryExample"
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/unauthorizedResponse"
          },
          "404": {
            "$ref": "#/components/responses/methodNotFoundResponse"
          },
          "422": {
            "$ref": "#/components/responses/unprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/SAServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=reactivate": {
      "post": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Запросить реактивацию номера",
        "description": "Запрашивает успешно использованный телефонный номер",
        "operationId": "reactivate",
        "parameters": [
          {
            "$ref": "#/components/parameters/qpSARequiredActivationID"
          },
          {
            "$ref": "#/components/parameters/qpSADuration"
          }
        ],
        "responses": {
          "200": {
            "description": "Результат реактивации номера",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/successfulNumberv2Response"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/unauthorizedResponse"
          },
          "402": {
            "$ref": "#/components/responses/paymentRequiredResponse"
          },
          "403": {
            "$ref": "#/components/responses/reactivationForbiddenResponse"
          },
          "404": {
            "$ref": "#/components/responses/activationNotFoundResponse"
          },
          "500": {
            "$ref": "#/components/responses/SAServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=reactivateOptions": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Запросить стоимость реактивации номера",
        "description": "Запрашивает стоимость реактивации номера",
        "operationId": "saReactivateOptions",
        "parameters": [
          {
            "$ref": "#/components/parameters/qpSARequiredActivationID"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/SaActivationExtendOptionsSuccessResponse"
          },
          "401": {
            "$ref": "#/components/responses/unauthorizedResponse"
          },
          "403": {
            "$ref": "#/components/responses/reactivationForbiddenResponse"
          },
          "404": {
            "$ref": "#/components/responses/activationNotFoundResponse"
          },
          "500": {
            "$ref": "#/components/responses/SAServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=prolong": {
      "post": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Продлить номер",
        "description": "Продлевает работу с телефонным номером. Работает только для активаций с типом 'Аренда'",
        "operationId": "prolong",
        "parameters": [
          {
            "$ref": "#/components/parameters/qpSARequiredActivationID"
          },
          {
            "$ref": "#/components/parameters/qpSARequiredDuration"
          }
        ],
        "responses": {
          "200": {
            "description": "Результат продления номера",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/successfulNumberv2Response"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/prolongationBadRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/unauthorizedResponse"
          },
          "402": {
            "$ref": "#/components/responses/paymentRequiredResponse"
          },
          "404": {
            "$ref": "#/components/responses/activationNotFoundResponse"
          },
          "500": {
            "$ref": "#/components/responses/SAServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=prolongOptions": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Получить стоимость продления номера",
        "description": "Запрашивает стоимость продления номера",
        "operationId": "saProlongOptions",
        "parameters": [
          {
            "$ref": "#/components/parameters/qpSARequiredActivationID"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/SaActivationExtendOptionsSuccessResponse"
          },
          "400": {
            "$ref": "#/components/responses/prolongationInfoBadRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/unauthorizedResponse"
          },
          "404": {
            "$ref": "#/components/responses/activationNotFoundResponse"
          },
          "500": {
            "$ref": "#/components/responses/SAServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=prolongHistory": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Получить историю продлений номера",
        "description": "Запрашивает историю продлений номера",
        "operationId": "prolongHistory",
        "parameters": [
          {
            "$ref": "#/components/parameters/qpSARequiredActivationID"
          }
        ],
        "responses": {
          "200": {
            "description": "История продлений номера",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/prolongationHistoryListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/prolongationInfoBadRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/unauthorizedResponse"
          },
          "404": {
            "$ref": "#/components/responses/activationNotFoundResponse"
          },
          "500": {
            "$ref": "#/components/responses/SAServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=getCountries": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Запросить список стран",
        "description": "Возвращает список стран",
        "operationId": "getCountries",
        "responses": {
          "200": {
            "description": "Результат запроса списка стран",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Country"
                },
                "examples": {
                  "successGetCountriesExample": {
                    "$ref": "#/components/examples/successGetCountriesExample"
                  },
                  "missingKeyExample": {
                    "$ref": "#/components/examples/missingKeyExample"
                  },
                  "incorrectKeyExample": {
                    "$ref": "#/components/examples/incorrectKeyExample"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=getServicesList": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Запросить список сервисов",
        "description": "Возвращает список сервисов",
        "operationId": "getServicesList",
        "parameters": [
          {
            "$ref": "#/components/parameters/qpSAOptionalCountry"
          },
          {
            "$ref": "#/components/parameters/qpSAOptionalLang"
          }
        ],
        "responses": {
          "200": {
            "description": "Результат запроса списка сервисов",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                },
                "examples": {
                  "successGetServicesListExample": {
                    "$ref": "#/components/examples/successGetServicesListExample"
                  },
                  "missingKeyExample": {
                    "$ref": "#/components/examples/missingKeyExample"
                  },
                  "incorrectKeyExample": {
                    "$ref": "#/components/examples/incorrectKeyExample"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=getOperators": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Запросить доступных операторов",
        "description": "Возвращает список операторов",
        "operationId": "getOperators",
        "parameters": [
          {
            "$ref": "#/components/parameters/qpSAOptionalCountry"
          }
        ],
        "responses": {
          "200": {
            "description": "Результат запроса списка операторов",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Operators"
                },
                "examples": {
                  "successfulGetOperatorsExample": {
                    "$ref": "#/components/examples/successfulGetOperatorsExample"
                  },
                  "operatorsNotFoundExample": {
                    "$ref": "#/components/examples/operatorsNotFoundExample"
                  },
                  "sqlServerErrorExample": {
                    "$ref": "#/components/examples/sqlServerErrorExample"
                  },
                  "missingKeyExample": {
                    "$ref": "#/components/examples/missingKeyExample"
                  },
                  "incorrectKeyExample": {
                    "$ref": "#/components/examples/incorrectKeyExample"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=getPrices": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Получить актуальные цены",
        "description": "Метод устарел. Используйте метод GET activations/offers/{verificationType}",
        "operationId": "getPrices",
        "parameters": [
          {
            "$ref": "#/components/parameters/qpSAOptionalService"
          },
          {
            "$ref": "#/components/parameters/qpSAOptionalCountry"
          }
        ],
        "responses": {
          "200": {
            "description": "Результат получения актуальных цен",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PricesByCountry"
                },
                "examples": {
                  "successGetPrices": {
                    "$ref": "#/components/examples/successGetPrices"
                  },
                  "incorrectServiceExample": {
                    "$ref": "#/components/examples/incorrectServiceExample"
                  },
                  "incorrectCountryExample": {
                    "$ref": "#/components/examples/incorrectCountryExample"
                  },
                  "badActionExample": {
                    "$ref": "#/components/examples/badActionExample"
                  },
                  "missingKeyExample": {
                    "$ref": "#/components/examples/missingKeyExample"
                  },
                  "incorrectKeyExample": {
                    "$ref": "#/components/examples/incorrectKeyExample"
                  }
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=getTopCountriesByService": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Получить топ стран по сервису",
        "description": "Метод устарел. Используйте метод GET activations/offers/{verificationType}",
        "operationId": "getTopCountriesByService",
        "parameters": [
          {
            "$ref": "#/components/parameters/qpSAOptionalService"
          },
          {
            "$ref": "#/components/parameters/qpSAOptionalFreePrice"
          }
        ],
        "responses": {
          "200": {
            "description": "Результат получения топа стран по сервису",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopCountriesByService"
                },
                "examples": {
                  "topCountriesAllServicesExample": {
                    "$ref": "#/components/examples/topCountriesAllServicesExample"
                  },
                  "topCountriesOneServiceExample": {
                    "$ref": "#/components/examples/topCountriesOneServiceExample"
                  },
                  "missingKeyExample": {
                    "$ref": "#/components/examples/missingKeyExample"
                  },
                  "incorrectKeyExample": {
                    "$ref": "#/components/examples/incorrectKeyExample"
                  }
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=getTopCountriesByServiceRank": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Получить топ стран по сервису с учетом ранга пользователя",
        "description": "Метод устарел. Используйте метод GET activations/offers/{verificationType}",
        "operationId": "getTopCountriesByServiceRank",
        "parameters": [
          {
            "$ref": "#/components/parameters/qpSAOptionalService"
          },
          {
            "$ref": "#/components/parameters/qpSAOptionalFreePrice"
          }
        ],
        "responses": {
          "200": {
            "description": "Результат получения топа стран по сервису",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopCountriesByService"
                },
                "examples": {
                  "topCountriesAllServicesExample": {
                    "$ref": "#/components/examples/topCountriesAllServicesExample"
                  },
                  "topCountriesOneServiceExample": {
                    "$ref": "#/components/examples/topCountriesOneServiceExample"
                  },
                  "missingKeyExample": {
                    "$ref": "#/components/examples/missingKeyExample"
                  },
                  "incorrectKeyExample": {
                    "$ref": "#/components/examples/incorrectKeyExample"
                  }
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=serviceCountRent": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Получить актуальные цены и количество по аренде по сервису",
        "description": "Возвращает цены и количество доступных номеров по выбранному сервису для аренды",
        "operationId": "serviceCountRent",
        "parameters": [
          {
            "$ref": "#/components/parameters/qpSARequiredService"
          },
          {
            "$ref": "#/components/parameters/qpSAOptionalCountry"
          },
          {
            "$ref": "#/components/parameters/qpSAOptionalOperator"
          },
          {
            "$ref": "#/components/parameters/qpSAOptionalCurrency"
          }
        ],
        "responses": {
          "200": {
            "description": "Результат получения актуальных цен и количества по аренде",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RentCountByService"
                },
                "examples": {
                  "Данные успешно получены": {
                    "$ref": "#/components/examples/successServiceCountRent"
                  },
                  "Данные отсутствуют": {
                    "$ref": "#/components/examples/emptyServiceCountRent"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/rentParamsBadRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/unauthorizedResponse"
          },
          "500": {
            "$ref": "#/components/responses/SAServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=getRentServicesAndCountries": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Получить актуальные цены и количество для аренды по стране",
        "description": "Возвращает цены и количество доступных номеров по сервисам, а также список операторов",
        "operationId": "getRentServicesAndCountries",
        "parameters": [
          {
            "$ref": "#/components/parameters/qpSARequiredCountry"
          },
          {
            "$ref": "#/components/parameters/qpSARequiredDuration"
          }
        ],
        "responses": {
          "200": {
            "description": "Успешный результат",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/getRentServicesAndCountries"
                },
                "examples": {
                  "successGetRentServicesAndCountriesExample": {
                    "$ref": "#/components/examples/successGetRentServicesAndCountriesExample"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/rentParamsBadRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/unauthorizedResponse"
          },
          "422": {
            "$ref": "#/components/responses/unprocessableEntityResponse"
          },
          "500": {
            "$ref": "#/components/responses/SAServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyQuery": []
          }
        ]
      }
    },
    "?action=getRentNumber": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Запросить номер для аренды",
        "description": "Запрашивает телефонный номер для указанного сервиса и страны на заданный срок.",
        "operationId": "getRentNumber",
        "parameters": [
          {
            "$ref": "#/components/parameters/qpSARequiredService"
          },
          {
            "$ref": "#/components/parameters/qpSARequiredCountry"
          },
          {
            "$ref": "#/components/parameters/qpSARequiredDuration"
          },
          {
            "$ref": "#/components/parameters/qpSAOptionalOperator"
          },
          {
            "$ref": "#/components/parameters/qpSAOptionalCurrency"
          },
          {
            "$ref": "#/components/parameters/qpSAOptionalRef"
          }
        ],
        "responses": {
          "200": {
            "description": "Результат запроса аренды номера",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/successfulNumberv2Response"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/rentParamsBadRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/unauthorizedResponse"
          },
          "402": {
            "$ref": "#/components/responses/paymentRequiredResponse"
          },
          "403": {
            "$ref": "#/components/responses/forbiddenResponse"
          },
          "404": {
            "$ref": "#/components/responses/noNumbersResponse"
          },
          "500": {
            "$ref": "#/components/responses/SAServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=getAllSms": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Получить все otp для указанной активации",
        "description": "Запрашивает все otp для указанной активации.",
        "operationId": "getAllSms",
        "parameters": [
          {
            "$ref": "#/components/parameters/qpSARequiredActivationID"
          },
          {
            "$ref": "#/components/parameters/qpSAOptionalSize"
          },
          {
            "$ref": "#/components/parameters/qpSAOptionalPage"
          }
        ],
        "responses": {
          "200": {
            "description": "Результат запроса всех otp",
            "content": {
              "application/json": {
                "schema": {
                  "required": [
                    "data",
                    "meta"
                  ],
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/OtpListResponse"
                    },
                    "meta": {
                      "schema": "ResponseMeta",
                      "description": "Мета-данные ответа",
                      "properties": {
                        "total": {
                          "description": "Общее количество записей",
                          "type": "integer",
                          "example": 42
                        },
                        "service": {
                          "description": "Код сервиса",
                          "type": "string",
                          "example": "full"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/badRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/unauthorizedResponse"
          },
          "403": {
            "$ref": "#/components/responses/forbiddenResponse"
          },
          "404": {
            "$ref": "#/components/responses/activationNotFoundResponse"
          },
          "409": {
            "$ref": "#/components/responses/activationNotActiveResponse"
          },
          "500": {
            "$ref": "#/components/responses/SAServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=finishActivation": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Завершить работу с активацией",
        "operationId": "saFinishActivation",
        "parameters": [
          {
            "$ref": "#/components/parameters/qpSARequiredActivationID"
          }
        ],
        "responses": {
          "204": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/badRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/unauthorizedResponse"
          },
          "403": {
            "$ref": "#/components/responses/forbiddenResponse"
          },
          "404": {
            "$ref": "#/components/responses/activationNotFoundResponse"
          },
          "409": {
            "$ref": "#/components/responses/activationFinishConflictResponse"
          },
          "500": {
            "$ref": "#/components/responses/SAServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    },
    "?action=cancelActivation": {
      "get": {
        "tags": [
          "SMS-Activate"
        ],
        "summary": "Отменить покупку активации",
        "operationId": "saCancelActivation",
        "parameters": [
          {
            "$ref": "#/components/parameters/qpSARequiredActivationID"
          }
        ],
        "responses": {
          "204": {
            "description": "OK"
          },
          "400": {
            "$ref": "#/components/responses/badRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/unauthorizedResponse"
          },
          "403": {
            "$ref": "#/components/responses/forbiddenResponse"
          },
          "404": {
            "$ref": "#/components/responses/activationNotFoundResponse"
          },
          "409": {
            "$ref": "#/components/responses/activationCancelConflictResponse"
          },
          "500": {
            "$ref": "#/components/responses/SAServerErrorResponse"
          }
        },
        "security": [
          {
            "apiKeyQuery": []
          }
        ],
        "servers": [
          {
            "url": "https://hero-sms.com/stubs/handler_api.php",
            "description": "SMS-Activate API-compatible server"
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "ActivationExtendDurationDTO": {
        "required": [
          "unit",
          "value"
        ],
        "properties": {
          "unit": {
            "type": "string",
            "example": "hour",
            "enum": [
              "minute",
              "hour"
            ]
          },
          "value": {
            "type": "integer",
            "example": 24
          }
        },
        "type": "object"
      },
      "ActivationExtendOptionDTOSchema": {
        "required": [
          "price",
          "duration"
        ],
        "properties": {
          "price": {
            "$ref": "#/components/schemas/Price"
          },
          "duration": {
            "$ref": "#/components/schemas/ActivationExtendDurationDTO"
          }
        },
        "type": "object"
      },
      "ProlongationHistoryItemSchema": {
        "properties": {
          "duration": {
            "type": "integer",
            "example": 24
          },
          "price": {
            "$ref": "#/components/schemas/Price"
          },
          "createdAt": {
            "$ref": "#/components/schemas/dateISO8601"
          }
        },
        "type": "object"
      },
      "ActivationStatusTypes": {
        "description": "Статус активации",
        "type": "integer",
        "example": 4,
        "enum": [
          1,
          2,
          3,
          4,
          6,
          7,
          8,
          10
        ]
      },
      "EmailActivationStatus": {
        "description": "Статус email активации",
        "type": "integer",
        "example": 3,
        "enum": [
          3,
          4,
          5,
          6,
          7
        ],
        "x-enum-descriptions": {
          "3": "Ждёт сообщения",
          "4": "Отменена, сообщение не получено",
          "5": "Сообщение получено, активна (не завершена)",
          "6": "Завершена пользователем или по таймауту, сообщение получено",
          "7": "Вернули деньги"
        }
      },
      "EmailActivation": {
        "description": "Активация по почте",
        "required": [
          "id",
          "status",
          "cost",
          "currency",
          "date"
        ],
        "properties": {
          "id": {
            "description": "ID",
            "type": "integer"
          },
          "site": {
            "$ref": "#/components/schemas/EmailSite"
          },
          "email": {
            "description": "Почта",
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/EmailActivationStatusView"
          },
          "value": {
            "description": "Код",
            "type": [
              "string",
              "null"
            ]
          },
          "cost": {
            "$ref": "#/components/schemas/Price"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "date": {
            "$ref": "#/components/schemas/dateISO8601",
            "description": "Дата создания"
          },
          "message": {
            "description": "Полное письмо",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "ActivationOtpSchema": {
        "properties": {
          "id": {
            "type": "string",
            "example": "12345643242"
          },
          "smsCode": {
            "type": [
              "string",
              "null"
            ],
            "example": "123456"
          },
          "smsText": {
            "type": [
              "string",
              "null"
            ],
            "example": "Your verification code is 123456"
          },
          "receivedAt": {
            "$ref": "#/components/schemas/dateISO8601"
          },
          "type": {
            "$ref": "#/components/schemas/VerificationType"
          },
          "phoneFrom": {
            "type": "string",
            "example": "89854"
          },
          "service": {
            "$ref": "#/components/schemas/ServiceId"
          }
        },
        "type": "object"
      },
      "ActivationSchema": {
        "properties": {
          "id": {
            "$ref": "#/components/schemas/ActivationId"
          },
          "status": {
            "$ref": "#/components/schemas/ActivationStatusTypes"
          },
          "phone": {
            "$ref": "#/components/schemas/ActivationPhone"
          },
          "service": {
            "$ref": "#/components/schemas/ServiceId"
          },
          "country": {
            "$ref": "#/components/schemas/CountryId"
          },
          "countryPhoneCode": {
            "type": "integer",
            "example": 7
          },
          "operator": {
            "$ref": "#/components/schemas/OperatorId"
          },
          "price": {
            "$ref": "#/components/schemas/Price"
          },
          "createdAt": {
            "$ref": "#/components/schemas/dateISO8601"
          },
          "expiredAt": {
            "$ref": "#/components/schemas/dateISO8601"
          },
          "verificationType": {
            "$ref": "#/components/schemas/VerificationType"
          },
          "subtype": {
            "$ref": "#/components/schemas/ActivationSubtype"
          },
          "otpList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ActivationOtpSchema"
            },
            "minItems": 0
          }
        },
        "type": "object"
      },
      "SuccessRate": {
        "description": "Процент успешных покупок от количества попыток",
        "type": "number",
        "format": "float",
        "example": 20
      },
      "OperatorCode": {
        "description": "Код оператора",
        "type": "string",
        "example": "any"
      },
      "ActivationsOffersSchema": {
        "additionalProperties": {
          "title": "Сервис",
          "type": "object",
          "additionalProperties": {
            "title": "ID страны",
            "properties": {
              "prices": {
                "properties": {
                  "default": {
                    "type": "number",
                    "format": "float",
                    "example": 1.1
                  },
                  "retail": {
                    "type": "number",
                    "format": "float",
                    "example": 1.1
                  },
                  "min": {
                    "$ref": "#/components/schemas/MinPrice"
                  }
                },
                "type": "object"
              },
              "counts": {
                "properties": {
                  "total": {
                    "type": "integer",
                    "example": 101
                  },
                  "physical": {
                    "type": "integer",
                    "example": 51
                  },
                  "defaultPrice": {
                    "type": "integer",
                    "example": 50
                  }
                },
                "type": "object"
              },
              "map": {
                "type": "object",
                "additionalProperties": {
                  "title": "Цена",
                  "description": "Цена -> количество",
                  "type": "integer"
                }
              }
            },
            "type": "object"
          }
        }
      },
      "ActivationsOffersMetaData": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PaginationMetaData"
          },
          {
            "properties": {
              "order": {
                "description": "Порядок отображения данных для каждого типа сортировки",
                "properties": {
                  "rate": {
                    "description": "Порядок сервисов и стран по рейтингу",
                    "type": "object"
                  },
                  "deliverability": {
                    "properties": {
                      "countries": {
                        "type": "array",
                        "items": {
                          "type": "integer"
                        }
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "filters": {
                "description": "Применённые к выборке фильтры",
                "properties": {
                  "countries": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "$ref": "#/components/schemas/CountryId"
                    }
                  },
                  "services": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "type": "object"
              }
            },
            "type": "object"
          }
        ]
      },
      "EmailSite": {
        "description": "Сайт для которого берётся активация",
        "type": "string",
        "example": "telegram.com"
      },
      "EmailDomain": {
        "description": "Домен почты",
        "type": "string",
        "example": "gmail.com"
      },
      "EmailMaxPrice": {
        "description": "Верхняя граница цены позиции в валюте баланса. Без параметра берётся самая дешёвая позиция",
        "type": [
          "number",
          "null"
        ],
        "format": "float",
        "example": 0.5,
        "minimum": 0
      },
      "EmailOffer": {
        "description": "Ценовая позиция по домену",
        "required": [
          "cost",
          "count"
        ],
        "properties": {
          "cost": {
            "description": "Цена одной почты",
            "type": "number",
            "format": "float",
            "example": 0.075
          },
          "count": {
            "description": "Доступно почт по этой цене",
            "type": "integer",
            "example": 10
          }
        },
        "type": "object"
      },
      "EmailOfferDomain": {
        "description": "Домен и его ценовые позиции, отсортированные по цене",
        "required": [
          "domain",
          "offers"
        ],
        "properties": {
          "domain": {
            "$ref": "#/components/schemas/EmailDomain"
          },
          "offers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmailOffer"
            }
          }
        },
        "type": "object"
      },
      "EmailActivationStatusView": {
        "description": "Статус email активации",
        "type": "string",
        "example": "WAIT",
        "enum": [
          "WAIT",
          "CANCEL",
          "SUCCESS"
        ],
        "x-enum-descriptions": {
          "WAIT": "Ждёт сообщения",
          "CANCEL": "Отменена или возврат средств",
          "SUCCESS": "Сообщение получено (активна или завершена)"
        }
      },
      "PaginationMetaData": {
        "description": "Мета данные по пагинации",
        "required": [
          "page",
          "size",
          "sort",
          "total"
        ],
        "properties": {
          "page": {
            "description": "Номер страницы с данными",
            "type": [
              "integer",
              "null"
            ],
            "example": 1
          },
          "size": {
            "description": "Размер страницы с данными",
            "type": [
              "integer",
              "null"
            ],
            "example": 10
          },
          "sort": {
            "description": "Сортировка данных по нескольким полям",
            "type": "object",
            "additionalProperties": {
              "description": "Направление сортировки",
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ]
            }
          },
          "total": {
            "description": "Общее количество записей",
            "type": [
              "integer",
              "null"
            ],
            "example": 100
          },
          "hasMore": {
            "description": "Существует ли следующая страница",
            "type": "boolean",
            "example": true
          },
          "search": {
            "description": "Строка поиска",
            "type": "string",
            "example": "8800"
          },
          "filters": {
            "description": "Доступные значения фильтров для выборки",
            "type": "object",
            "example": {
              "countries": [
                "ru",
                "ua"
              ],
              "services": [
                "go",
                "tg"
              ]
            }
          }
        },
        "type": "object"
      },
      "ActivationPhone": {
        "description": "Номер телефона без знака +",
        "type": "integer",
        "example": 79991234567
      },
      "CountryId": {
        "description": "ID страны",
        "type": "integer",
        "example": 2,
        "maximum": 999,
        "minimum": 0
      },
      "ServiceId": {
        "description": "Код сервиса",
        "type": "string",
        "pattern": "^[a-zA-Z]{2,4}$",
        "example": "tg",
        "maxLength": 4,
        "minLength": 2
      },
      "OperatorId": {
        "description": "Код оператора или несколько кодов через запятую. Если не передан — любой оператор",
        "type": "string",
        "pattern": "^([a-zA-Z0-9!_]{2,},)*[_a-zA-Z0-9!]{2,}$",
        "example": "axis",
        "default": "any"
      },
      "PhoneException": {
        "description": "Исключающие префиксы номеров через запятую: до 20 префиксов по 4–7 цифр",
        "type": [
          "string",
          "null"
        ],
        "pattern": "^[0-9]{4,7}(,[0-9]{4,7}){0,19}$",
        "example": "7900,7901234"
      },
      "MaxPrice": {
        "description": "Максимальная стоимость активации",
        "type": "number",
        "format": "float",
        "example": 0.4321,
        "minimum": 0.0067
      },
      "Price": {
        "description": "Цена",
        "type": "number",
        "format": "float",
        "example": 0.4321
      },
      "Percent": {
        "description": "Процент",
        "type": "number",
        "format": "float",
        "example": 50
      },
      "FixedPrice": {
        "description": "Покупка строго за переданную максимальную цену. Использовать вместе с параметром maxPrice.",
        "type": "boolean",
        "example": true
      },
      "RentDuration": {
        "description": "Продолжительность аренды в часах",
        "type": "integer",
        "example": 24,
        "enum": [
          24,
          72,
          168,
          336,
          720,
          1440,
          2160,
          4320
        ]
      },
      "ActivationHistoryStatus": {
        "description": "Статус завершённой активации",
        "type": "integer",
        "example": 6,
        "enum": [
          6,
          8,
          10
        ],
        "x-enum-descriptions": {
          "6": "Успешно завершена",
          "8": "Отменена",
          "10": "Возврат средств"
        }
      },
      "ResellerUserId": {
        "description": "Идентификатор конечного клиента в системе реселлера",
        "type": "string",
        "pattern": "^[a-zA-Z0-9_.@-]{1,36}$",
        "example": "12345",
        "maxLength": 36,
        "minLength": 1
      },
      "MinPrice": {
        "description": "Минимально возможная персональная цена",
        "type": "number",
        "format": "float",
        "example": 0.4321
      },
      "ActivationId": {
        "description": "ID активации",
        "type": "integer",
        "example": 123456
      },
      "Currency": {
        "description": "ISO код валюты",
        "type": "integer",
        "example": 840,
        "default": 840,
        "enum": [
          840,
          978,
          156
        ]
      },
      "SMSText": {
        "description": "SMS Текст",
        "type": [
          "string",
          "null"
        ],
        "example": "Your code is 12345"
      },
      "SMSCode": {
        "description": "SMS Код",
        "type": [
          "string",
          "null"
        ],
        "example": "12345"
      },
      "VerificationType": {
        "description": "Тип верификации",
        "type": "string",
        "example": "sms",
        "enum": [
          "sms",
          "call"
        ]
      },
      "ActivationSubtype": {
        "description": "Подтип активации. 1 - активация, 2 - аренда",
        "type": "integer",
        "example": 1,
        "enum": [
          1,
          2
        ]
      },
      "dateISO8601": {
        "description": "Дата в формате ISO 8601",
        "type": "string",
        "format": "date-time",
        "example": "2025-12-16T10:30:00.000000Z"
      },
      "dateRFC3339": {
        "description": "Дата в формате RFC3339",
        "type": "string",
        "format": "date-time",
        "example": "2026-02-19T10:37:46+00:00"
      },
      "ActivationStatusV2": {
        "properties": {
          "verificationType": {
            "$ref": "#/components/schemas/VerificationType"
          },
          "data": {
            "$ref": "#/components/schemas/OtpItem"
          }
        },
        "type": "object"
      },
      "ActiveActivation": {
        "properties": {
          "activationId": {
            "$ref": "#/components/schemas/ActivationId"
          },
          "serviceCode": {
            "$ref": "#/components/schemas/ServiceId"
          },
          "phoneNumber": {
            "$ref": "#/components/schemas/ActivationPhone"
          },
          "activationCost": {
            "description": "Стоимость активации",
            "type": "number",
            "format": "float",
            "example": 15.5
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "activationStatus": {
            "description": "Статус активации",
            "type": "integer",
            "example": 4
          },
          "smsCode": {
            "$ref": "#/components/schemas/SMSCode"
          },
          "smsText": {
            "$ref": "#/components/schemas/SMSText"
          },
          "activationTime": {
            "$ref": "#/components/schemas/dateISO8601"
          },
          "countryCode": {
            "$ref": "#/components/schemas/CountryId"
          },
          "countryName": {
            "type": "string",
            "example": "Kazakhstan"
          },
          "canGetAnotherSms": {
            "type": "string",
            "example": "1"
          },
          "verificationType": {
            "$ref": "#/components/schemas/VerificationType"
          },
          "subtype": {
            "$ref": "#/components/schemas/ActivationSubtype"
          }
        },
        "type": "object"
      },
      "ActiveActivations": {
        "properties": {
          "status": {
            "type": "string"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ActiveActivation"
            },
            "minItems": 0
          }
        },
        "type": "object"
      },
      "ActivationsHistory": {
        "type": "array",
        "items": {
          "properties": {
            "id": {
              "type": "string",
              "example": "635468024"
            },
            "date": {
              "type": "string",
              "format": "date-time",
              "example": "0000-00-00 00:00:00"
            },
            "phone": {
              "type": "string",
              "example": "7*********0"
            },
            "sms": {
              "type": "string",
              "example": "Your code is ****"
            },
            "cost": {
              "type": "number",
              "example": 0
            },
            "status": {
              "type": "string",
              "example": "4"
            },
            "currency": {
              "$ref": "#/components/schemas/Currency"
            }
          },
          "type": "object"
        }
      },
      "TopCountriesOneService": {
        "properties": {
          "physicalTotalCount": {
            "type": "integer",
            "example": 9405
          },
          "physicalCountForDefaultPrice": {
            "type": "integer",
            "example": 4066
          },
          "physicalPriceMap": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "example": 0.018
            }
          },
          "retail_price": {
            "type": "number",
            "example": 0.2
          },
          "country": {
            "type": "integer",
            "example": 6
          },
          "price": {
            "type": "number",
            "example": 0.045
          },
          "count": {
            "type": "integer",
            "example": 4528
          }
        },
        "type": "object"
      },
      "TopCountriesAllServices": {
        "type": "object",
        "additionalProperties": {
          "$ref": "#/components/schemas/TopCountriesOneService"
        }
      },
      "TopCountriesByService": {
        "type": "object",
        "additionalProperties": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/TopCountriesAllServices"
            },
            {
              "$ref": "#/components/schemas/TopCountriesOneService"
            }
          ]
        }
      },
      "PricesByCountry": {
        "type": "object",
        "additionalProperties": {
          "type": "object",
          "additionalProperties": {
            "properties": {
              "cost": {
                "type": "number",
                "example": 0.5
              },
              "count": {
                "type": "integer",
                "example": 10
              },
              "physicalCount": {
                "type": "integer",
                "example": 10
              }
            },
            "type": "object"
          }
        }
      },
      "RentCountByService": {
        "type": "object",
        "additionalProperties": {
          "description": "Страна (ключ — числовой идентификатор)",
          "type": "object",
          "pattern": "^[0-9]+$",
          "additionalProperties": {
            "description": "Длительность (ключ — числовой идентификатор)",
            "required": [
              "count",
              "price"
            ],
            "properties": {
              "price": {
                "description": "Стоимость аренды",
                "type": "number",
                "example": 0.5432
              },
              "count": {
                "description": "Количество доступных номеров",
                "type": "integer",
                "example": 10
              }
            },
            "type": "object",
            "pattern": "^[0-9]+$"
          }
        }
      },
      "getRentServicesAndCountries": {
        "properties": {
          "operators": {
            "description": "Операторы",
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "services": {
            "description": "Сервисы",
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "example": "tg",
              "additionalProperties": {
                "properties": {
                  "quantity": {
                    "type": "number",
                    "example": 2
                  },
                  "price": {
                    "type": "integer",
                    "example": 0.6
                  },
                  "retail_price": {
                    "type": "integer",
                    "example": 0.6
                  }
                },
                "type": "object"
              }
            }
          }
        },
        "type": "object"
      },
      "Country": {
        "properties": {
          "id": {
            "$ref": "#/components/schemas/CountryId"
          },
          "rus": {
            "description": "Название страны на русском",
            "type": "string",
            "example": "Казахстан"
          },
          "eng": {
            "description": "Название страны на английском",
            "type": "string",
            "example": "Kazakhstan"
          },
          "chn": {
            "description": "Название страны на китайском",
            "type": "string",
            "example": "Kazakhstan"
          },
          "visible": {
            "description": "1 - доступно, 0 - недоступно",
            "type": "integer",
            "example": 1,
            "enum": [
              0,
              1
            ]
          },
          "retry": {
            "description": "1 - доступно, 0 - недоступно",
            "type": "integer",
            "example": 1,
            "enum": [
              0,
              1
            ]
          }
        },
        "type": "object"
      },
      "Service": {
        "properties": {
          "code": {
            "description": "ID сервиса",
            "type": "string",
            "example": "aoo"
          },
          "name": {
            "description": "Название сервиса",
            "type": "string",
            "example": "Pegasus Airlines"
          }
        },
        "type": "object"
      },
      "Operators": {
        "properties": {
          "status": {
            "type": "string"
          },
          "countryOperators": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        },
        "type": "object"
      },
      "AccountBannedInfo": {
        "required": [
          "scope",
          "banned_until",
          "retry_after_seconds"
        ],
        "properties": {
          "scope": {
            "description": "Область блокировки: на всё или на конкретную позицию",
            "type": "string",
            "enum": [
              "global",
              "specific"
            ]
          },
          "banned_until": {
            "description": "Unix Timestamp окончания бана",
            "type": "integer"
          },
          "retry_after_seconds": {
            "description": "Через сколько секунд можно повторить запрос",
            "type": "integer"
          },
          "readable_date": {
            "$ref": "#/components/schemas/dateRFC3339"
          }
        },
        "type": "object"
      },
      "successfulNumberv2Response": {
        "properties": {
          "activationId": {
            "$ref": "#/components/schemas/ActivationId"
          },
          "serviceCode": {
            "$ref": "#/components/schemas/ServiceId"
          },
          "phoneNumber": {
            "$ref": "#/components/schemas/ActivationPhone"
          },
          "activationCost": {
            "description": "Стоимость активации",
            "type": "number",
            "format": "float",
            "example": 15.5
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "countryCode": {
            "$ref": "#/components/schemas/CountryId"
          },
          "countryPhoneCode": {
            "description": "Телефонный код страны",
            "type": "number",
            "example": 62
          },
          "canGetAnotherSms": {
            "description": "Повторное смс",
            "type": "boolean",
            "example": true
          },
          "activationTime": {
            "$ref": "#/components/schemas/dateRFC3339",
            "description": "Дата и время начала"
          },
          "activationEndTime": {
            "$ref": "#/components/schemas/dateRFC3339",
            "description": "Дата и время истечения"
          },
          "activationOperator": {
            "$ref": "#/components/schemas/OperatorId"
          },
          "verificationType": {
            "$ref": "#/components/schemas/VerificationType"
          },
          "subtype": {
            "$ref": "#/components/schemas/ActivationSubtype"
          },
          "status": {
            "description": "Статус активации",
            "type": "integer",
            "example": 4
          }
        },
        "type": "object",
        "examples": {
          "successfulNumberv2Example": {
            "$ref": "#/components/examples/successfulNumberv2Example"
          }
        }
      },
      "reactivationPriceResponse": {
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "required": [
              "price"
            ],
            "properties": {
              "price": {
                "type": "number",
                "format": "float",
                "example": 1.4522
              },
              "currency": {
                "$ref": "#/components/schemas/Currency"
              }
            },
            "type": "object"
          }
        },
        "type": "object",
        "examples": {
          "success": {
            "$ref": "#/components/examples/successfulReactivationPriceExample"
          }
        }
      },
      "prolongationPriceListResponse": {
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "description": "Стоимость продления аренды: часы - цена",
            "type": "object",
            "additionalProperties": {
              "description": "Стоимость для указанного кол-ва часов",
              "type": "number",
              "format": "float",
              "example": 0.2134
            }
          }
        },
        "type": "object",
        "examples": {
          "success": {
            "$ref": "#/components/examples/successfulProlongationPriceExample"
          }
        }
      },
      "prolongationHistoryListResponse": {
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "description": "Массив продлений. Может быть пустым.",
            "type": "array",
            "items": {
              "required": [
                "userPrice",
                "hours",
                "createDate",
                "payerType"
              ],
              "properties": {
                "userPrice": {
                  "description": "Стоимость",
                  "type": "number",
                  "format": "float",
                  "example": 0.4621
                },
                "hours": {
                  "description": "Длительность аренды",
                  "type": "number",
                  "example": 24
                },
                "createDate": {
                  "$ref": "#/components/schemas/dateRFC3339",
                  "description": "Дата создания"
                },
                "payerType": {
                  "description": "Тип продления",
                  "type": "string",
                  "example": "client",
                  "enum": [
                    "client",
                    "partner"
                  ]
                }
              },
              "type": "object"
            },
            "minItems": 0
          }
        },
        "type": "object",
        "examples": {
          "success": {
            "$ref": "#/components/examples/successfulProlongationHistoryExample"
          }
        }
      },
      "OtpListResponse": {
        "description": "Массив сообщений. Может быть пустым.",
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/OtpItem"
        },
        "examples": {
          "successfulOtpListExample": {
            "$ref": "#/components/examples/successfulOtpListExample"
          }
        },
        "minItems": 0
      },
      "OtpItem": {
        "required": [
          "id",
          "phoneFrom",
          "service",
          "date",
          "type"
        ],
        "properties": {
          "id": {
            "description": "ID OTP",
            "type": "string",
            "example": "3416693217"
          },
          "phoneFrom": {
            "description": "Источник OTP",
            "type": "string",
            "example": "Telegram"
          },
          "code": {
            "$ref": "#/components/schemas/SMSCode"
          },
          "text": {
            "$ref": "#/components/schemas/SMSText"
          },
          "service": {
            "$ref": "#/components/schemas/ServiceId"
          },
          "date": {
            "$ref": "#/components/schemas/dateRFC3339",
            "description": "Дата создания"
          },
          "type": {
            "$ref": "#/components/schemas/VerificationType",
            "description": "Тип otp"
          }
        },
        "type": "object"
      },
      "ActivationExtendOptionSchema": {
        "required": [
          "price",
          "duration"
        ],
        "properties": {
          "price": {
            "type": "number",
            "format": "float",
            "example": 1.4324
          },
          "duration": {
            "$ref": "#/components/schemas/ActivationExtendDurationSchema"
          }
        },
        "type": "object"
      },
      "ActivationExtendDurationSchema": {
        "required": [
          "unit",
          "value"
        ],
        "properties": {
          "unit": {
            "type": "string",
            "example": "hour",
            "enum": [
              "minute",
              "hour"
            ]
          },
          "value": {
            "type": "integer",
            "example": 24
          }
        },
        "type": "object"
      },
      "BaseErrorResponse": {
        "description": "Базовая структура ответа об ошибке",
        "required": [
          "title",
          "details"
        ],
        "properties": {
          "title": {
            "description": "Код ошибки",
            "type": "string"
          },
          "details": {
            "description": "Детали ошибки",
            "type": "string"
          },
          "info": {
            "description": "Расширенная информация",
            "type": "object",
            "additionalProperties": true
          }
        },
        "type": "object"
      }
    },
    "responses": {
      "ActivationOtpSuccessResponse": {
        "description": "Success response",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "data"
              ],
              "properties": {
                "data": {
                  "$ref": "#/components/schemas/ActivationOtpSchema"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "ActivationOtpListSuccessResponse": {
        "description": "Success response",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "data"
              ],
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActivationOtpSchema"
                  }
                }
              },
              "type": "object"
            }
          }
        }
      },
      "ActivationsSuccessResponse": {
        "description": "Success response",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "data"
              ],
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActivationSchema"
                  }
                }
              },
              "type": "object",
              "example": {
                "data": [
                  {
                    "id": 1,
                    "status": 4,
                    "phone": "440959999999",
                    "service": "fb",
                    "country": 44,
                    "countryPhoneCode": 7,
                    "operator": "axis",
                    "price": 1.05,
                    "otpList": [],
                    "createdAt": "2025-12-16T10:30:00.000000Z",
                    "expiredAt": "2025-12-16T10:30:00.000000Z",
                    "verificationType": "sms",
                    "subtype": 1
                  }
                ]
              }
            }
          }
        }
      },
      "ProlongHistorySuccessResponse": {
        "description": "Success response",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "data"
              ],
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProlongationHistoryItemSchema"
                  }
                }
              },
              "type": "object",
              "example": {
                "data": [
                  {
                    "duration": 24,
                    "price": 1.05,
                    "createdAt": "2025-12-16T10:30:00.000000Z"
                  }
                ]
              }
            }
          }
        }
      },
      "ActivationExtendOptionsSuccessResponse": {
        "description": "Success response",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "data"
              ],
              "properties": {
                "data": {
                  "required": [
                    "options"
                  ],
                  "properties": {
                    "options": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ActivationExtendOptionDTOSchema"
                      }
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object",
              "example": {
                "data": {
                  "options": [
                    {
                      "duration": {
                        "value": 2,
                        "unit": "hour"
                      },
                      "price": 0.2145
                    },
                    {
                      "duration": {
                        "value": 24,
                        "unit": "hour"
                      },
                      "price": 1.4324
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "ActivationsOffersSuccessResponse": {
        "description": "OK",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "data": {
                  "$ref": "#/components/schemas/ActivationsOffersSchema"
                },
                "meta": {
                  "$ref": "#/components/schemas/ActivationsOffersMetaData"
                }
              },
              "type": "object"
            },
            "examples": {
              "Без фильтра": {
                "$ref": "#/components/examples/ActivationsOffersExample"
              },
              "Фильтр по сервисам": {
                "$ref": "#/components/examples/ActivationsOffersServicesFilterExample"
              },
              "Фильтр по странам": {
                "$ref": "#/components/examples/ActivationsOffersCountriesFilterExample"
              },
              "Фильтр по сервисам и странам": {
                "$ref": "#/components/examples/ActivationsOffersServicesCountriesFiltersExample"
              }
            }
          }
        }
      },
      "EmailActivationSuccessResponse": {
        "description": "OK",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "data"
              ],
              "properties": {
                "data": {
                  "$ref": "#/components/schemas/EmailActivation"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "EmailActivationBatchSuccessResponse": {
        "description": "OK",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EmailActivation"
                  }
                },
                "meta": {
                  "properties": {
                    "count": {
                      "type": "integer",
                      "example": 3
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "ServerErrorResponse": {
        "description": "SERVER_ERROR",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "title",
                "details"
              ],
              "properties": {
                "title": {
                  "description": "Код ошибки",
                  "type": "string",
                  "enum": [
                    "SERVER_ERROR"
                  ]
                },
                "details": {
                  "description": "Детали ошибки",
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "TooManyRequestsResponse": {
        "description": "TOO_MANY_REQUESTS",
        "headers": {
          "Retry-After": {
            "description": "Значение в секундах",
            "schema": {
              "type": "integer"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "title",
                "details"
              ],
              "properties": {
                "title": {
                  "description": "Код ошибки",
                  "type": "string",
                  "enum": [
                    "RATE_LIMIT"
                  ]
                },
                "details": {
                  "description": "Детали ошибки",
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "UnprocessableEntityResponse": {
        "description": "UNPROCESSABLE_ENTITY",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "title",
                "details",
                "errors"
              ],
              "properties": {
                "title": {
                  "description": "Код ошибки",
                  "type": "string"
                },
                "details": {
                  "description": "Детали ошибки",
                  "type": "string"
                },
                "errors": {
                  "type": "object",
                  "example": {
                    "parameter1": [
                      "The parameter1 is required.",
                      "The parameter1 must be a number."
                    ],
                    "parameter2": [
                      "The parameter2 must be a number."
                    ]
                  },
                  "additionalProperties": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              },
              "type": "object"
            }
          }
        }
      },
      "NotFoundResponse": {
        "description": "NOT_FOUND",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "title",
                "details"
              ],
              "properties": {
                "title": {
                  "description": "Код ошибки",
                  "type": "string"
                },
                "details": {
                  "description": "Детали ошибки",
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "EmailCancelBadRequestResponse": {
        "description": "BAD_REQUEST",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "title",
                "details"
              ],
              "properties": {
                "title": {
                  "description": "Код ошибки",
                  "type": "string",
                  "enum": [
                    "EARLY_CANCEL_DENIED",
                    "ACTIVATION_CANCELED"
                  ]
                },
                "details": {
                  "description": "Детали ошибки",
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "EmailReorderBadRequestResponse": {
        "description": "BAD_REQUEST",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "title",
                "details"
              ],
              "properties": {
                "title": {
                  "description": "Код ошибки",
                  "type": "string",
                  "enum": [
                    "STATUS_WAIT_CODE",
                    "STATUS_CANCEL",
                    "OUT_OF_STOCK",
                    "ACTIVATION_CANCELED"
                  ]
                },
                "details": {
                  "description": "Детали ошибки",
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "EmailCancelConflictResponse": {
        "description": "CONFLICT",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "title",
                "details"
              ],
              "properties": {
                "title": {
                  "description": "Код ошибки",
                  "type": "string",
                  "enum": [
                    "CANCEL_DENIED_MESSAGE_RECEIVED",
                    "RACE_CONDITION"
                  ]
                },
                "details": {
                  "description": "Детали ошибки",
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "RaceConditionResponse": {
        "description": "CONFLICT",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "title",
                "details"
              ],
              "properties": {
                "title": {
                  "description": "Код ошибки",
                  "type": "string",
                  "enum": [
                    "RACE_CONDITION"
                  ]
                },
                "details": {
                  "description": "Детали ошибки",
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "ActivationBannedResponse": {
        "description": "FORBIDDEN",
        "headers": {
          "Retry-After": {
            "description": "Значение в секундах",
            "schema": {
              "type": "integer"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "title",
                "details"
              ],
              "properties": {
                "title": {
                  "description": "Код ошибки",
                  "type": "string",
                  "enum": [
                    "BANNED_GLOBAL",
                    "BANNED_SPECIFIC"
                  ]
                },
                "details": {
                  "description": "Детали ошибки",
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "UnauthorizedResponse": {
        "description": "UNAUTHORIZED",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "title",
                "details"
              ],
              "properties": {
                "title": {
                  "description": "Код ошибки",
                  "type": "string",
                  "enum": [
                    "Unauthenticated."
                  ]
                },
                "details": {
                  "description": "Детали ошибки",
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "BadRequestResponse": {
        "description": "BAD_REQUEST",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "title",
                "details"
              ],
              "properties": {
                "title": {
                  "description": "Код ошибки",
                  "type": "string"
                },
                "details": {
                  "description": "Детали ошибки",
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "OfferNotFoundResponse": {
        "description": "NOT_FOUND",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "title",
                "details"
              ],
              "properties": {
                "title": {
                  "description": "Код ошибки",
                  "type": "string",
                  "enum": [
                    "OFFER_NOT_FOUND"
                  ]
                },
                "details": {
                  "description": "Детали ошибки",
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "TooEarlyRequestResponse": {
        "description": "TOO_EARLY",
        "headers": {
          "Retry-After": {
            "description": "Значение в секундах",
            "schema": {
              "type": "integer"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "title",
                "details"
              ],
              "properties": {
                "title": {
                  "description": "Код ошибки",
                  "type": "string",
                  "enum": [
                    "TOO_EARLY"
                  ]
                },
                "details": {
                  "description": "Детали ошибки",
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "NoContentResponse": {
        "description": "NO_CONTENT"
      },
      "SAServerErrorResponse": {
        "description": "Внутренняя ошибка сервиса",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseErrorResponse"
            },
            "examples": {
              "SAServerErrorExample": {
                "$ref": "#/components/examples/SAServerErrorExample"
              }
            }
          }
        }
      },
      "methodNotFoundResponse": {
        "description": "Метод не найден",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseErrorResponse"
            },
            "examples": {
              "methodNotFoundExample": {
                "$ref": "#/components/examples/methodNotFoundExample"
              }
            }
          }
        }
      },
      "activationNotFoundResponse": {
        "description": "Активация не найдена",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseErrorResponse"
            },
            "examples": {
              "activationNotFoundExample": {
                "$ref": "#/components/examples/activationNotFoundExample"
              },
              "methodNotFoundExample": {
                "$ref": "#/components/examples/methodNotFoundExample"
              }
            }
          }
        }
      },
      "unauthorizedResponse": {
        "description": "Неверный апи-ключ",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseErrorResponse"
            },
            "examples": {
              "unauthorizedExample": {
                "$ref": "#/components/examples/unauthorizedExample"
              }
            }
          }
        }
      },
      "rentParamsBadRequestResponse": {
        "description": "Неверные параметры запроса",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseErrorResponse"
            },
            "examples": {
              "badDurationExample": {
                "$ref": "#/components/examples/badDurationExample"
              },
              "wrongCountryIdExample": {
                "$ref": "#/components/examples/wrongCountryIdExample"
              },
              "wrongServiceExample": {
                "$ref": "#/components/examples/wrongServiceExample"
              },
              "wrongCurrencyExample": {
                "$ref": "#/components/examples/wrongCurrencyExample"
              }
            }
          }
        }
      },
      "reactivationForbiddenResponse": {
        "description": "Доступ запрещён",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseErrorResponse"
            },
            "examples": {
              "serviceUnavailableExample": {
                "$ref": "#/components/examples/serviceUnavailableExample"
              },
              "simOfflineExample": {
                "$ref": "#/components/examples/simOfflineExample"
              },
              "simTemporaryOfflineExample": {
                "$ref": "#/components/examples/simTemporaryOfflineExample"
              }
            }
          }
        }
      },
      "prolongationBadRequestResponse": {
        "description": "Доступ запрещён",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseErrorResponse"
            },
            "examples": {
              "simOfflineExample": {
                "$ref": "#/components/examples/simOfflineExample"
              },
              "simTemporaryOfflineExample": {
                "$ref": "#/components/examples/simTemporaryOfflineExample"
              },
              "maxHoursExceedExample": {
                "$ref": "#/components/examples/maxHoursExceedExample"
              },
              "badDurationExample": {
                "$ref": "#/components/examples/badDurationExample"
              },
              "activationNotAvailableExample": {
                "$ref": "#/components/examples/activationNotAvailableExample"
              },
              "freezePeriodNotReachedExample": {
                "$ref": "#/components/examples/freezePeriodNotReachedExample"
              }
            }
          }
        }
      },
      "prolongationInfoBadRequestResponse": {
        "description": "Доступ запрещён",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseErrorResponse"
            },
            "examples": {
              "simOfflineExample": {
                "$ref": "#/components/examples/simOfflineExample"
              },
              "simTemporaryOfflineExample": {
                "$ref": "#/components/examples/simTemporaryOfflineExample"
              },
              "maxHoursExceedExample": {
                "$ref": "#/components/examples/maxHoursExceedExample"
              },
              "activationNotAvailableExample": {
                "$ref": "#/components/examples/activationNotAvailableExample"
              },
              "freezePeriodNotReachedExample": {
                "$ref": "#/components/examples/freezePeriodNotReachedExample"
              }
            }
          }
        }
      },
      "badRequestResponse": {
        "description": "Неверные параметры запроса",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseErrorResponse"
            },
            "examples": {
              "badStatusExampleJson": {
                "$ref": "#/components/examples/badStatusExampleJson"
              }
            }
          }
        }
      },
      "getNumberBadRequestResponse": {
        "description": "Неверные параметры запроса",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseErrorResponse"
            },
            "examples": {
              "wrongMaxPriceExampleJson": {
                "$ref": "#/components/examples/wrongMaxPriceExampleJson"
              }
            }
          }
        }
      },
      "unprocessableEntityResponse": {
        "description": "Неверные параметры запроса",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseErrorResponse"
            },
            "examples": {
              "unprocessableEntityExample": {
                "$ref": "#/components/examples/unprocessableEntityExample"
              }
            }
          }
        }
      },
      "forbiddenResponse": {
        "description": "Доступ запрещён",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseErrorResponse"
            },
            "examples": {
              "threadsReachedExample": {
                "$ref": "#/components/examples/threadsReachedExample"
              },
              "serviceRestrictedExample": {
                "$ref": "#/components/examples/serviceRestrictedExample"
              },
              "globalBanExample": {
                "$ref": "#/components/examples/globalBanExample"
              },
              "specificBanExample": {
                "$ref": "#/components/examples/specificBanExample"
              },
              "inactiveAccountExample": {
                "$ref": "#/components/examples/inactiveAccountExample"
              }
            }
          }
        }
      },
      "paymentRequiredResponse": {
        "description": "Недостаточно средств",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseErrorResponse"
            },
            "examples": {
              "paymentRequiredExample": {
                "$ref": "#/components/examples/paymentRequiredExample"
              }
            }
          }
        }
      },
      "noNumbersResponse": {
        "description": "Нет номеров в продаже",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseErrorResponse"
            },
            "examples": {
              "noNumbersExample": {
                "$ref": "#/components/examples/noNumbersExample"
              }
            }
          }
        }
      },
      "activationNotActiveResponse": {
        "description": "Активация неактивна. Действие невозможно",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseErrorResponse"
            },
            "examples": {
              "activationNotActiveExample": {
                "$ref": "#/components/examples/activationNotActiveExample"
              }
            }
          }
        }
      },
      "activationFinishConflictResponse": {
        "description": "Невозможно завершить активацию",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseErrorResponse"
            },
            "examples": {
              "activationNewOtpReceivedExample": {
                "$ref": "#/components/examples/activationNewOtpReceivedExample"
              },
              "activationNotActiveExample": {
                "$ref": "#/components/examples/activationNotActiveExample"
              }
            }
          }
        }
      },
      "activationCancelConflictResponse": {
        "description": "Невозможно отменить активацию",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BaseErrorResponse"
            },
            "examples": {
              "activationNewOtpReceivedExample": {
                "$ref": "#/components/examples/activationNewOtpReceivedExample"
              },
              "freeCancellationExpiredExample": {
                "$ref": "#/components/examples/freeCancellationExpiredExample"
              },
              "activationOtpReceivedExample": {
                "$ref": "#/components/examples/activationOtpReceivedExample"
              },
              "activationNotActiveExample": {
                "$ref": "#/components/examples/activationNotActiveExample"
              },
              "earlyCancellationExample": {
                "$ref": "#/components/examples/earlyCancellationExample"
              }
            }
          }
        }
      },
      "SaActivationExtendOptionsSuccessResponse": {
        "description": "Success response",
        "content": {
          "application/json": {
            "schema": {
              "required": [
                "data"
              ],
              "properties": {
                "data": {
                  "required": [
                    "options"
                  ],
                  "properties": {
                    "options": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ActivationExtendOptionSchema"
                      },
                      "minItems": 0
                    }
                  },
                  "type": "object"
                }
              },
              "type": "object",
              "examples": {
                "success": {
                  "$ref": "#/components/examples/successExtendActivationOptionsExample"
                }
              }
            }
          }
        }
      }
    },
    "parameters": {
      "activationStatusesQuery": {
        "name": "statuses[]",
        "in": "query",
        "description": "Фильтр по статусам завершённых активаций",
        "required": false,
        "explode": true,
        "schema": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ActivationHistoryStatus"
          }
        }
      },
      "emailId": {
        "name": "emailId",
        "in": "path",
        "description": "ID email активации",
        "required": true,
        "schema": {
          "type": "integer"
        },
        "example": 123456789
      },
      "emailStatusesQuery": {
        "name": "status[]",
        "in": "query",
        "description": "Фильтр по статусам email-активаций",
        "required": false,
        "explode": true,
        "schema": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/EmailActivationStatus"
          }
        }
      },
      "intervalQuery": {
        "name": "interval",
        "in": "query",
        "description": "Временной интервал в часах",
        "required": true,
        "schema": {
          "type": "integer",
          "enum": [
            12,
            24
          ]
        }
      },
      "successCountQuery": {
        "name": "successCount",
        "in": "query",
        "description": "Фильтр по количеству успешных активаций",
        "required": true,
        "schema": {
          "type": "string",
          "enum": [
            "low",
            "medium",
            "high",
            "very_high"
          ],
          "x-enum-descriptions": {
            "low": "меньше 50",
            "medium": "от 50",
            "high": "от 500",
            "very_high": "от 1000"
          }
        }
      },
      "withOperatorsQuery": {
        "name": "withOperators",
        "in": "query",
        "description": "Получить подробную статистику по операторам",
        "schema": {
          "type": "boolean",
          "example": false,
          "default": false
        }
      },
      "search": {
        "name": "search",
        "in": "query",
        "description": "Строка поиска",
        "schema": {
          "type": "string",
          "maxLength": 255,
          "minLength": 1
        }
      },
      "size": {
        "name": "size",
        "in": "query",
        "description": "Размер страницы с данными",
        "schema": {
          "type": "integer",
          "maximum": 25,
          "minimum": 1
        }
      },
      "page": {
        "name": "page",
        "in": "query",
        "description": "Номер страницы с данными",
        "schema": {
          "type": "integer",
          "minimum": 1
        }
      },
      "sort": {
        "name": "sort",
        "in": "query",
        "description": "Сортировка данных по нескольким полям",
        "required": false,
        "style": "deepObject",
        "explode": true,
        "schema": {
          "properties": {
            "id": {
              "description": "Направление сортировки",
              "type": "string",
              "default": "desc",
              "enum": [
                "asc",
                "desc"
              ]
            }
          },
          "type": "object"
        }
      },
      "from": {
        "name": "from",
        "in": "query",
        "description": "Дата начала периода в формате ISO 8601 YYYY-MM-DDTHH:MM:SSZ",
        "required": false,
        "schema": {
          "type": "string",
          "format": "date-time"
        }
      },
      "to": {
        "name": "to",
        "in": "query",
        "description": "Дата до периода в формате ISO 8601 YYYY-MM-DDTHH:MM:SSZ",
        "required": false,
        "schema": {
          "type": "string",
          "format": "date-time"
        }
      },
      "fromRequired": {
        "name": "from",
        "in": "query",
        "description": "Дата начала периода в формате ISO 8601 YYYY-MM-DDTHH:MM:SSZ",
        "required": true,
        "schema": {
          "type": "string",
          "format": "date-time",
          "example": "2025-10-10T00:00:00Z"
        }
      },
      "toRequired": {
        "name": "to",
        "in": "query",
        "description": "Дата до периода в формате ISO 8601 YYYY-MM-DDTHH:MM:SSZ",
        "required": true,
        "schema": {
          "type": "string",
          "format": "date-time",
          "example": "2025-10-20T00:00:00Z"
        }
      },
      "servicesPath": {
        "name": "services",
        "in": "query",
        "description": "Коды сервисов",
        "schema": {
          "type": "string",
          "example": "tg,go,ig"
        }
      },
      "countriesPath": {
        "name": "countries",
        "in": "query",
        "description": "ID стран",
        "schema": {
          "type": "string",
          "example": "6,33,50"
        }
      },
      "verificationTypePath": {
        "name": "verificationType",
        "in": "path",
        "description": "Тип верификации",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/VerificationType"
        }
      },
      "verificationTypeQuery": {
        "name": "verificationType",
        "in": "query",
        "description": "Тип верификации",
        "schema": {
          "$ref": "#/components/schemas/VerificationType"
        }
      },
      "activationPath": {
        "name": "activationId",
        "in": "path",
        "description": "ID активации",
        "required": true,
        "schema": {
          "type": "integer"
        },
        "example": 123456789
      },
      "servicesQuery": {
        "name": "services[]",
        "in": "query",
        "description": "Массив идентификаторов сервисов",
        "explode": true,
        "schema": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ServiceId"
          }
        }
      },
      "countriesQuery": {
        "name": "countries[]",
        "in": "query",
        "description": "Массив идентификаторов стран",
        "explode": true,
        "schema": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CountryId"
          }
        }
      },
      "servicesQueryRequired": {
        "name": "services[]",
        "in": "query",
        "description": "Массив идентификаторов сервисов",
        "required": true,
        "explode": true,
        "schema": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ServiceId"
          },
          "minItems": 1
        }
      },
      "qpSARequiredService": {
        "name": "service",
        "in": "query",
        "description": "[ID сервиса](https://hero-sms.com/stubs/handler_api.php?action=getServicesList)",
        "required": true,
        "schema": {
          "type": "string"
        },
        "example": "tg"
      },
      "qpSAOptionalService": {
        "name": "service",
        "in": "query",
        "description": "[ID сервиса](https://hero-sms.com/stubs/handler_api.php?action=getServicesList)",
        "required": false,
        "schema": {
          "type": "string"
        },
        "example": "tg"
      },
      "qpSARequiredCountry": {
        "name": "country",
        "in": "query",
        "description": "[ID страны](https://hero-sms.com/stubs/handler_api.php?action=getCountries)",
        "required": true,
        "schema": {
          "type": "number"
        },
        "example": 2
      },
      "qpSAOptionalCountry": {
        "name": "country",
        "in": "query",
        "description": "[ID страны](https://hero-sms.com/stubs/handler_api.php?action=getCountries)",
        "required": false,
        "schema": {
          "type": "number"
        },
        "example": 2
      },
      "qpSAOptionalFreePrice": {
        "name": "freePrice",
        "in": "query",
        "description": "Использовать FreePrice",
        "required": false,
        "schema": {
          "type": "boolean"
        },
        "example": true
      },
      "qpSAOptionalLang": {
        "name": "lang",
        "in": "query",
        "description": "ID языка",
        "required": false,
        "schema": {
          "type": "string",
          "default": "en",
          "enum": [
            "en",
            "cn",
            "es",
            "de",
            "fr",
            "pt",
            "ru",
            "id",
            "vi",
            "tr",
            "ja",
            "ko",
            "ar"
          ]
        },
        "example": "en"
      },
      "qpSAOptionalOperator": {
        "name": "operator",
        "in": "query",
        "description": "[Список](https://hero-sms.com/stubs/handler_api.php?action=getOperators) желаемых операторов связи (через запятую без пробелов)",
        "required": false,
        "schema": {
          "type": "string"
        },
        "example": "tele2,beeline"
      },
      "qpSARequiredDuration": {
        "name": "duration",
        "in": "query",
        "description": "Время аренды в часах",
        "required": true,
        "schema": {
          "type": "number"
        },
        "example": 24
      },
      "qpSADuration": {
        "name": "duration",
        "in": "query",
        "description": "Время аренды в часах",
        "required": false,
        "schema": {
          "type": "number"
        },
        "example": 24
      },
      "qpSAOptionalCurrency": {
        "name": "currency",
        "in": "query",
        "description": "Валюта отображения",
        "required": false,
        "schema": {
          "type": "number",
          "default": 840,
          "enum": [
            643,
            840,
            978,
            156
          ]
        },
        "example": 840
      },
      "qpSAOptionalSize": {
        "name": "size",
        "in": "query",
        "description": "Размер страницы с данными",
        "schema": {
          "type": "integer"
        }
      },
      "qpSAOptionalPage": {
        "name": "page",
        "in": "query",
        "description": "Номер страницы с данными",
        "schema": {
          "type": "integer"
        }
      },
      "qpSAOptionalMaxPrice": {
        "name": "maxPrice",
        "in": "query",
        "description": "Максимальная цена",
        "required": false,
        "schema": {
          "type": "number"
        },
        "example": 2
      },
      "qpSAOptionalFixedPrice": {
        "name": "fixedPrice",
        "in": "query",
        "description": "Покупка строго за переданную максимальную цену. Использовать вместе с параметром maxPrice.",
        "required": false,
        "schema": {
          "type": "string"
        },
        "example": "true"
      },
      "qpSAOptionalRef": {
        "name": "ref",
        "in": "query",
        "description": "Реферальный идентификатор",
        "required": false,
        "schema": {
          "type": "string"
        },
        "example": "123456789"
      },
      "qpSAOptionalPhoneException": {
        "name": "phoneException",
        "in": "query",
        "description": "Исключающие префиксы. Вам не будут выдаваться номера с переданными префиксами. Максимум 20 префиксов.",
        "required": false,
        "schema": {
          "type": "string"
        },
        "example": "7934,7900"
      },
      "qpSARequiredActivationID": {
        "name": "id",
        "in": "query",
        "description": "ID активации",
        "required": true,
        "schema": {
          "type": "integer"
        },
        "example": 123456789
      },
      "qpSARequiredActivationStatus": {
        "name": "status",
        "in": "query",
        "description": "Статус активации",
        "required": true,
        "schema": {
          "oneOf": [
            {
              "title": "Запросить код",
              "type": "integer",
              "enum": [
                3
              ]
            },
            {
              "title": "Завершить активацию",
              "type": "integer",
              "enum": [
                6
              ]
            },
            {
              "title": "Отменить активацию",
              "type": "integer",
              "enum": [
                8
              ]
            }
          ],
          "default": 3
        },
        "example": 1
      }
    },
    "examples": {
      "ActivationsOffersExample": {
        "summary": "Без фильтра",
        "value": {
          "data": {
            "go": {
              "6": {
                "prices": {
                  "default": 0.03,
                  "retail": 0.03,
                  "min": 0.03
                },
                "counts": {
                  "total": 19459,
                  "physical": 10221,
                  "defaultPrice": 13610
                },
                "map": {
                  "0.0300": 1171867,
                  "0.0589": 3453473,
                  "0.1510": 3771610
                }
              },
              "48": {
                "prices": {
                  "default": 0.15,
                  "retail": 0.15,
                  "min": 0.15
                },
                "counts": {
                  "total": 10446,
                  "physical": 1821,
                  "defaultPrice": 4654
                },
                "map": {
                  "0.1500": 14460,
                  "0.1553": 28887,
                  "0.6143": 670031
                }
              },
              "50": {
                "prices": {
                  "default": 0.35,
                  "retail": 0.35,
                  "min": 0.35
                },
                "counts": {
                  "total": 31871,
                  "physical": 14454,
                  "defaultPrice": 14206
                },
                "map": {
                  "0.3500": 14306,
                  "0.8226": 612179,
                  "0.9308": 817343
                }
              }
            },
            "ig": {
              "6": {
                "prices": {
                  "default": 0.0334,
                  "retail": 0.0334,
                  "min": 0.0334
                },
                "counts": {
                  "total": 39166,
                  "physical": 25787,
                  "defaultPrice": 31838
                },
                "map": {
                  "0.0334": 10184181,
                  "0.0335": 10976322,
                  "0.0338": 11802947
                }
              },
              "48": {
                "prices": {
                  "default": 0.06,
                  "retail": 0.06,
                  "min": 0.06
                },
                "counts": {
                  "total": 5266,
                  "physical": 197,
                  "defaultPrice": 1509
                },
                "map": {
                  "0.0600": 7524,
                  "0.0725": 12963,
                  "0.2942": 204854
                }
              },
              "50": {
                "prices": {
                  "default": 0.075,
                  "retail": 0.075,
                  "min": 0.075
                },
                "counts": {
                  "total": 36384,
                  "physical": 8404,
                  "defaultPrice": 8211
                },
                "map": {
                  "0.0750": 8211,
                  "0.0942": 24639,
                  "0.0948": 49334
                }
              }
            },
            "tg": {
              "6": {
                "prices": {
                  "default": 0.15,
                  "retail": 0.15,
                  "min": 0.15
                },
                "counts": {
                  "total": 22598,
                  "physical": 12352,
                  "defaultPrice": 4787
                },
                "map": {
                  "0.1500": 286896,
                  "0.1765": 327454,
                  "1.7648": 5814269
                }
              },
              "48": {
                "prices": {
                  "default": 0.9,
                  "retail": 0.9,
                  "min": 0.9
                },
                "counts": {
                  "total": 4076,
                  "physical": 896,
                  "defaultPrice": 0
                },
                "map": {
                  "1.0483": 204,
                  "1.1593": 793,
                  "2.4831": 46024
                }
              },
              "50": {
                "prices": {
                  "default": 1,
                  "retail": 1,
                  "min": 1
                },
                "counts": {
                  "total": 48641,
                  "physical": 15336,
                  "defaultPrice": 183
                },
                "map": {
                  "1.0000": 183,
                  "1.2504": 15885,
                  "2.9412": 1411078
                }
              }
            }
          },
          "meta": {
            "page": null,
            "size": null,
            "sort": {
              "rate": "asc",
              "deliverability": "desc"
            },
            "total": null,
            "hasMore": false,
            "order": {
              "rate": {
                "services": [
                  "go",
                  "ig",
                  "tg"
                ],
                "countries": {
                  "go": [
                    "6",
                    "48",
                    "50"
                  ],
                  "ig": [
                    "6",
                    "48",
                    "50"
                  ],
                  "tg": [
                    "6",
                    "48",
                    "50"
                  ]
                }
              },
              "deliverability": {
                "countries": {
                  "tg": [
                    "48",
                    "6"
                  ],
                  "ig": [
                    "48",
                    "6",
                    "50"
                  ],
                  "go": [
                    "6",
                    "48"
                  ]
                }
              }
            },
            "filters": {
              "countries": [],
              "services": []
            }
          }
        }
      },
      "ActivationsOffersServicesFilterExample": {
        "summary": "Фильтр по сервисам",
        "value": {
          "data": {
            "go": {
              "6": {
                "prices": {
                  "default": 0.03,
                  "retail": 0.03,
                  "min": 0.03
                },
                "counts": {
                  "total": 19459,
                  "physical": 10221,
                  "defaultPrice": 13610
                },
                "map": {
                  "0.0300": 1171867,
                  "0.0589": 3453473,
                  "0.1510": 3771610
                }
              },
              "48": {
                "prices": {
                  "default": 0.15,
                  "retail": 0.15,
                  "min": 0.15
                },
                "counts": {
                  "total": 10446,
                  "physical": 1821,
                  "defaultPrice": 4654
                },
                "map": {
                  "0.1500": 14460,
                  "0.1553": 28887,
                  "0.6143": 670031
                }
              },
              "50": {
                "prices": {
                  "default": 0.35,
                  "retail": 0.35,
                  "min": 0.35
                },
                "counts": {
                  "total": 31871,
                  "physical": 14454,
                  "defaultPrice": 14206
                },
                "map": {
                  "0.3500": 14306,
                  "0.8226": 612179,
                  "0.9308": 817343
                }
              }
            },
            "tg": {
              "6": {
                "prices": {
                  "default": 0.15,
                  "retail": 0.15,
                  "min": 0.15
                },
                "counts": {
                  "total": 22598,
                  "physical": 12352,
                  "defaultPrice": 4787
                },
                "map": {
                  "0.1500": 286896,
                  "0.1765": 327454,
                  "1.7648": 5814269
                }
              },
              "48": {
                "prices": {
                  "default": 0.9,
                  "retail": 0.9,
                  "min": 0.9
                },
                "counts": {
                  "total": 4076,
                  "physical": 896,
                  "defaultPrice": 0
                },
                "map": {
                  "1.0483": 204,
                  "1.1593": 793,
                  "2.4831": 46024
                }
              },
              "50": {
                "prices": {
                  "default": 1,
                  "retail": 1,
                  "min": 1
                },
                "counts": {
                  "total": 48641,
                  "physical": 15336,
                  "defaultPrice": 183
                },
                "map": {
                  "1.0000": 183,
                  "1.2504": 15885,
                  "2.9412": 1411078
                }
              }
            }
          },
          "meta": {
            "page": null,
            "size": null,
            "sort": {
              "rate": "asc",
              "deliverability": "desc"
            },
            "total": null,
            "hasMore": false,
            "order": {
              "rate": {
                "services": [
                  "go",
                  "tg"
                ],
                "countries": {
                  "go": [
                    "6",
                    "48",
                    "50"
                  ],
                  "tg": [
                    "6",
                    "48",
                    "50"
                  ]
                }
              },
              "deliverability": {
                "countries": {
                  "tg": [
                    "48",
                    "6"
                  ],
                  "go": [
                    "6",
                    "48"
                  ]
                }
              }
            },
            "filters": {
              "countries": [],
              "services": [
                "go",
                "tg"
              ]
            }
          }
        }
      },
      "ActivationsOffersCountriesFilterExample": {
        "summary": "Фильтр по странам",
        "value": {
          "data": {
            "go": {
              "6": {
                "prices": {
                  "default": 0.03,
                  "retail": 0.03,
                  "min": 0.03
                },
                "counts": {
                  "total": 19459,
                  "physical": 10221,
                  "defaultPrice": 13610
                },
                "map": {
                  "0.0300": 1171867,
                  "0.0589": 3453473,
                  "0.1510": 3771610
                }
              },
              "48": {
                "prices": {
                  "default": 0.15,
                  "retail": 0.15,
                  "min": 0.15
                },
                "counts": {
                  "total": 10446,
                  "physical": 1821,
                  "defaultPrice": 4654
                },
                "map": {
                  "0.1500": 14460,
                  "0.1553": 28887,
                  "0.6143": 670031
                }
              }
            },
            "ig": {
              "6": {
                "prices": {
                  "default": 0.0334,
                  "retail": 0.0334,
                  "min": 0.0334
                },
                "counts": {
                  "total": 39166,
                  "physical": 25787,
                  "defaultPrice": 31838
                },
                "map": {
                  "0.0334": 10184181,
                  "0.0335": 10976322,
                  "0.0338": 11802947
                }
              },
              "48": {
                "prices": {
                  "default": 0.06,
                  "retail": 0.06,
                  "min": 0.06
                },
                "counts": {
                  "total": 5266,
                  "physical": 197,
                  "defaultPrice": 1509
                },
                "map": {
                  "0.0600": 7524,
                  "0.0725": 12963,
                  "0.2942": 204854
                }
              }
            },
            "tg": {
              "6": {
                "prices": {
                  "default": 0.15,
                  "retail": 0.15,
                  "min": 0.15
                },
                "counts": {
                  "total": 22598,
                  "physical": 12352,
                  "defaultPrice": 4787
                },
                "map": {
                  "0.1500": 286896,
                  "0.1765": 327454,
                  "1.7648": 5814269
                }
              },
              "48": {
                "prices": {
                  "default": 0.9,
                  "retail": 0.9,
                  "min": 0.9
                },
                "counts": {
                  "total": 4076,
                  "physical": 896,
                  "defaultPrice": 0
                },
                "map": {
                  "1.0483": 204,
                  "1.1593": 793,
                  "2.4831": 46024
                }
              }
            }
          },
          "meta": {
            "page": null,
            "size": null,
            "sort": {
              "rate": "asc",
              "deliverability": "desc"
            },
            "total": null,
            "hasMore": false,
            "order": {
              "rate": {
                "services": [
                  "go",
                  "ig",
                  "tg"
                ],
                "countries": {
                  "go": [
                    "6",
                    "48"
                  ],
                  "ig": [
                    "6",
                    "48"
                  ],
                  "tg": [
                    "6",
                    "48"
                  ]
                }
              },
              "deliverability": {
                "countries": {
                  "tg": [
                    "48",
                    "6"
                  ],
                  "ig": [
                    "6",
                    "48"
                  ],
                  "go": [
                    "48",
                    "6"
                  ]
                }
              }
            },
            "filters": {
              "countries": [
                "6",
                "48"
              ],
              "services": []
            }
          }
        }
      },
      "ActivationsOffersServicesCountriesFiltersExample": {
        "summary": "Фильтр по сервисам и странам",
        "value": {
          "data": {
            "ig": {
              "6": {
                "prices": {
                  "default": 0.0334,
                  "retail": 0.0334,
                  "min": 0.0334
                },
                "counts": {
                  "total": 39166,
                  "physical": 25787,
                  "defaultPrice": 31838
                },
                "map": {
                  "0.0334": 10184181,
                  "0.0335": 10976322,
                  "0.0338": 11802947
                }
              },
              "50": {
                "prices": {
                  "default": 0.075,
                  "retail": 0.075,
                  "min": 0.075
                },
                "counts": {
                  "total": 36384,
                  "physical": 8404,
                  "defaultPrice": 8211
                },
                "map": {
                  "0.0750": 8211,
                  "0.0942": 24639,
                  "0.0948": 49334
                }
              }
            },
            "tg": {
              "6": {
                "prices": {
                  "default": 0.15,
                  "retail": 0.15,
                  "min": 0.15
                },
                "counts": {
                  "total": 22598,
                  "physical": 12352,
                  "defaultPrice": 4787
                },
                "map": {
                  "0.1500": 286896,
                  "0.1765": 327454,
                  "1.7648": 5814269
                }
              },
              "48": {
                "prices": {
                  "default": 0.9,
                  "retail": 0.9,
                  "min": 0.9
                },
                "counts": {
                  "total": 4076,
                  "physical": 896,
                  "defaultPrice": 0
                },
                "map": {
                  "1.0483": 204,
                  "1.1593": 793,
                  "2.4831": 46024
                }
              }
            }
          },
          "meta": {
            "page": null,
            "size": null,
            "sort": {
              "rate": "asc",
              "deliverability": "desc"
            },
            "total": null,
            "hasMore": false,
            "order": {
              "rate": {
                "services": [
                  "ig",
                  "tg"
                ],
                "countries": {
                  "ig": [
                    "6",
                    "48"
                  ],
                  "tg": [
                    "6",
                    "48"
                  ]
                }
              },
              "deliverability": {
                "countries": {
                  "tg": [
                    "48",
                    "6"
                  ],
                  "ig": [
                    "48",
                    "6"
                  ]
                }
              }
            },
            "filters": {
              "countries": [
                "6",
                "48"
              ],
              "services": [
                "ig",
                "tg"
              ]
            }
          }
        }
      },
      "badActionExample": {
        "summary": "Неправильно указано действие",
        "value": "BAD_ACTION"
      },
      "sqlServerErrorExample": {
        "summary": "Ошибка сервера",
        "value": "ERROR_SQL"
      },
      "bannedExample": {
        "summary": "Пользователь заблокирован до указанной даты",
        "value": "BANNED:'YYYY-m-d H-i-s'"
      },
      "channelsLimitExample": {
        "summary": "Аккаунт заблокирован",
        "value": "CHANNELS_LIMIT"
      },
      "missingKeyExample": {
        "summary": "Нет апи-ключа",
        "value": "NO_KEY"
      },
      "incorrectKeyExample": {
        "summary": "Неправильный апи-ключ",
        "value": "BAD_KEY"
      },
      "badStatusExample": {
        "summary": "Некорректный статус",
        "value": "BAD_STATUS"
      },
      "numbersNotFoundExample": {
        "summary": "Номера не найдены",
        "value": "NO_NUMBERS"
      },
      "badServiceExample": {
        "summary": "Неправильно указан сервис",
        "value": "BAD_SERVICE"
      },
      "wrongMaxPriceExample": {
        "summary": "Указанное максимальное значение меньше допустимого. В ответе указана минимальная цена",
        "value": "WRONG_MAX_PRICE:0.025"
      },
      "wrongMaxPriceExampleJson": {
        "summary": "Указанное максимальное значение меньше допустимого. В ответе указана минимальная цена",
        "value": {
          "title": "WRONG_MAX_PRICE",
          "details": "The maximum price is less than the permitted price",
          "info": {
            "min": 0.1234
          }
        }
      },
      "wrongActivationIdExample": {
        "summary": "Неверный ID активации",
        "value": "WRONG_ACTIVATION_ID"
      },
      "badStatusExampleJson": {
        "summary": "Некорректный статус",
        "value": {
          "title": "BAD_STATUS",
          "details": "Wrong status code"
        }
      },
      "unprocessableEntityExample": {
        "summary": "Некорректный запрос",
        "value": {
          "title": "UNPROCESSABLE_ENTITY",
          "details": "Validation failed",
          "info": {
            "field": "service",
            "code": "REQUIRED",
            "message": "Param 'service' is required."
          }
        }
      },
      "wrongCountryIdExample": {
        "summary": "Неверный ID страны",
        "value": {
          "title": "WRONG_COUNTRY",
          "details": ""
        }
      },
      "wrongServiceExample": {
        "summary": "Неправильное имя сервиса",
        "value": {
          "title": "WRONG_SERVICE",
          "details": "Unsupported service"
        }
      },
      "wrongCurrencyExample": {
        "summary": "Неподдерживаемая валюта",
        "value": {
          "title": "WRONG_CURRENCY",
          "details": "Unsupported Currency"
        }
      },
      "globalBanExample": {
        "summary": "Глобальная временная блокировка",
        "value": {
          "title": "BANNED",
          "details": "Your account is temporarily suspended from making any purchases.",
          "info": {
            "scope": "global",
            "banned_until": 1739448000,
            "retry_after_seconds": 3600,
            "readable_date": "2026-02-13T12:00:00+00:00"
          }
        }
      },
      "specificBanExample": {
        "summary": "Временная блокировка на переданную позицию",
        "value": {
          "title": "BANNED",
          "details": "Account temporarily suspended for this specific country/service pair.",
          "info": {
            "scope": "specific",
            "banned_until": 1739448000,
            "retry_after_seconds": 3600,
            "readable_date": "2026-02-20T15:00:00+00:00"
          }
        }
      },
      "successfulAccessReadyExample": {
        "summary": "Готовность номера подтверждена",
        "value": "ACCESS_READY"
      },
      "successfulRetryGetExample": {
        "summary": "Ожидание нового смс",
        "value": "ACCESS_RETRY_GET"
      },
      "successfulAccessActivationExample": {
        "summary": "Сервис успешно активирован",
        "value": "ACCESS_ACTIVATION"
      },
      "successfulAccessCancelExample": {
        "summary": "Активация отменена",
        "value": "ACCESS_CANCEL"
      },
      "earlyCancelDeniedExample": {
        "summary": "Нельзя отменить номер в первые 2 минуты",
        "value": "EARLY_CANCEL_DENIED"
      },
      "noActivationExample": {
        "summary": "ID активации не существует",
        "value": "NO_ACTIVATION"
      },
      "successfulWaitCodeExample": {
        "summary": "Ожидание смс",
        "value": "STATUS_WAIT_CODE"
      },
      "successfulWaitRetryExample": {
        "summary": "Ожидание уточнения кода",
        "value": "STATUS_WAIT_RETRY:100001"
      },
      "successfulWaitResendExample": {
        "summary": "Ожидание повторной отправки смс",
        "value": "STATUS_WAIT_RESEND"
      },
      "successfulCancelExample": {
        "summary": "Активация отменена",
        "value": "STATUS_CANCEL"
      },
      "successfulOKExample": {
        "summary": "Код получен",
        "value": "STATUS_OK:100001"
      },
      "incorrectServiceExample": {
        "summary": "Неправильно введен сервис",
        "value": {
          "status": "false",
          "msg": "service is incorrect"
        }
      },
      "incorrectCountryExample": {
        "summary": "Неправильно введена страна",
        "value": {
          "status": "false",
          "msg": "country is incorrect"
        }
      },
      "successfulBalanceExample": {
        "summary": "Баланс успешно получен",
        "value": "ACCESS_BALANCE:100.5"
      },
      "successfulNumberExample": {
        "summary": "Номер успешно получен",
        "value": "ACCESS_NUMBER:123456789:7*********0"
      },
      "successfulNumberv2Example": {
        "summary": "Номер успешно получен",
        "value": {
          "activationId": "635468024",
          "phoneNumber": "79584******",
          "activationCost": 12.5,
          "currency": 840,
          "countryCode": 6,
          "countryPhoneCode": 62,
          "canGetAnotherSms": true,
          "activationTime": "2026-02-18T16:11:33+00:00",
          "activationEndTime": "2026-02-18T18:11:23+00:00",
          "activationOperator": "any",
          "verificationType": "sms",
          "subtype": 1,
          "serviceCode": "vk",
          "status": 4
        }
      },
      "successfulReactivationPriceExample": {
        "summary": "Стоимость получена успешна",
        "value": {
          "data": {
            "price": 0.1234
          }
        }
      },
      "successfulProlongationPriceExample": {
        "summary": "Стоимость получена успешно",
        "value": {
          "data": {
            "2": 0.1234,
            "4": 0.2234,
            "24": 1.2234,
            "168": 3.6432
          }
        }
      },
      "successfulProlongationHistoryExample": {
        "summary": "История продлений получена успешна",
        "value": {
          "data": [
            {
              "hours": 2,
              "userPrice": 0.1442,
              "createDate": "2026-04-01T22:00:58+3:00",
              "payerType": "client"
            },
            {
              "hours": 24,
              "userPrice": 0,
              "createDate": "2026-04-02T00:00:58+3:00",
              "payerType": "partner"
            }
          ]
        }
      },
      "successfulActivationV2Example": {
        "summary": "Статус активации успешно получен",
        "value": {
          "verificationType": "sms",
          "data": {
            "id": "3416693217",
            "phoneFrom": "Telegram",
            "code": "123456",
            "text": "Telegram code 123456",
            "service": "tg",
            "date": "2026-02-16T12:36:59+03:00",
            "type": "sms"
          }
        }
      },
      "activationsSuccessfulExample": {
        "summary": "Список активаций успешно получен",
        "value": {
          "status": "success",
          "data": [
            {
              "activationId": "635468021",
              "serviceCode": "vk",
              "phoneNumber": "79********1",
              "activationCost": 12.5,
              "activationStatus": "4",
              "smsCode": "12345",
              "smsText": "Your code is 12345",
              "activationTime": "2022-06-01 16:59:16",
              "countryCode": "2",
              "countryName": "Kazakhstan",
              "canGetAnotherSms": "1",
              "currency": 840,
              "verificationType": "sms",
              "subtype": 1
            }
          ]
        }
      },
      "successfulActivationsHistoryExample": {
        "summary": "История активаций успешно получена",
        "value": [
          {
            "id": "635468024",
            "date": "0000-00-00 00:00:00",
            "phone": "7*********0",
            "sms": "Your code is ****",
            "cost": 0,
            "status": "4",
            "currency": 840
          }
        ]
      },
      "successGetPrices": {
        "summary": "Актуальные цены успешно получены",
        "value": [
          {
            "baa": {
              "cost": 0.08,
              "count": 25370,
              "physicalCount": 14528
            }
          }
        ]
      },
      "topCountriesAllServicesExample": {
        "summary": "Топ стран по сервису без указания параметров успешно получен",
        "value": [
          {
            "ig": [
              {
                "physicalTotalCount": 7933,
                "physicalCountForDefaultPrice": 5198,
                "physicalPriceMap": {
                  "0.04": 24,
                  "0.0415": 439,
                  "0.0419": 3229
                },
                "retail_price": 0.2,
                "country": 6,
                "price": 0.045,
                "count": 5477
              }
            ]
          }
        ]
      },
      "topCountriesOneServiceExample": {
        "summary": "Топ стран по сервису с указанием параметра \"service\" успешно получен",
        "value": [
          {
            "physicalTotalCount": 7933,
            "physicalCountForDefaultPrice": 5198,
            "physicalPriceMap": {
              "0.04": 24,
              "0.0415": 439,
              "0.0419": 3229
            },
            "retail_price": 0.2,
            "country": 6,
            "price": 0.045,
            "count": 5477
          }
        ]
      },
      "successServiceCountRent": {
        "summary": "Данные успешно получены",
        "value": {
          "6": {
            "2": {
              "count": 25370,
              "price": 0.18,
              "retail_price": 0.18
            },
            "12": {
              "count": 400,
              "price": 0.4568,
              "retail_price": 0.4568
            },
            "48": {
              "count": 4523,
              "price": 0.8575,
              "retail_price": 0.8575
            }
          }
        }
      },
      "emptyServiceCountRent": {
        "summary": "Данные отсутствуют",
        "value": "{}"
      },
      "successGetRentServicesAndCountriesExample": {
        "summary": "Данные успешно получены",
        "value": {
          "operators": {
            "1": "tmobile",
            "2": "three"
          },
          "services": {
            "abc": {
              "quantity": 2,
              "price": 0.6,
              "retail_price": 0.6
            },
            "tg": {
              "quantity": 2,
              "price": 1.2,
              "retail_price": 1.2
            }
          }
        }
      },
      "successExtendActivationOptionsExample": {
        "summary": "Данные успешно получены",
        "value": {
          "data": {
            "options": [
              {
                "duration": {
                  "value": 2,
                  "unit": "hour"
                },
                "price": 0.2145
              },
              {
                "duration": {
                  "value": 24,
                  "unit": "hour"
                },
                "price": 1.4324
              }
            ]
          }
        }
      },
      "successGetCountriesExample": {
        "summary": "Список стран",
        "value": [
          {
            "id": 2,
            "rus": "Казахстан",
            "eng": "Kazakhstan",
            "chn": "哈萨克斯坦",
            "visible": 1,
            "retry": 1
          }
        ]
      },
      "successGetServicesListExample": {
        "summary": "Список сервисов",
        "value": {
          "status": "success",
          "services": [
            {
              "code": "aoo",
              "name": "Pegasus Airlines"
            }
          ]
        }
      },
      "successfulGetOperatorsExample": {
        "summary": "Список операторов",
        "value": {
          "status": "success",
          "countryOperators": {
            "175": [
              "optus",
              "vodafone",
              "telstra",
              "lebara"
            ]
          }
        }
      },
      "operatorsNotFoundExample": {
        "summary": "Операторы не найдены",
        "value": "OPERATORS_NOT_FOUND"
      },
      "successfulRentNumberExample": {
        "summary": "Номер для аренды успешно получен",
        "value": {
          "id": "635468024",
          "phoneNumber": "79584******",
          "cost": 1.5333,
          "currency": 840,
          "lockCancelTime": 120,
          "endDate": "2022-06-01T22:00:58+03:00",
          "operator": "mtt"
        }
      },
      "successfulOtpListExample": {
        "summary": "Список otp успешно получен",
        "value": {
          "data": [
            {
              "id": "3416693217",
              "phoneFrom": "Telegram",
              "code": "123456",
              "text": "Telegram code 123456",
              "service": "tg",
              "date": "2026-02-16T12:36:59+03:00",
              "type": "sms"
            },
            {
              "id": "3416693218",
              "phoneFrom": "213421421431",
              "code": null,
              "text": null,
              "service": "tg",
              "date": "2026-02-16T12:36:59+03:00",
              "type": "call"
            }
          ]
        }
      },
      "badDurationExample": {
        "summary": "Недопустимое время аренды",
        "value": {
          "title": "BAD_DURATION",
          "details": "Duration must be integer.",
          "info": {
            "min": 24,
            "max": 720,
            "available_durations": [
              24,
              72,
              168,
              720
            ]
          }
        }
      },
      "serviceUnavailableExample": {
        "summary": "Сервис недоступен",
        "value": {
          "title": "SERVICE_NOT_AVAILABLE",
          "details": "Service not available for sale. Contact the technical support."
        }
      },
      "simOfflineExample": {
        "summary": "Номер больше недоступен",
        "value": {
          "title": "SIM_OFFLINE",
          "details": "Sim offline."
        }
      },
      "simTemporaryOfflineExample": {
        "summary": "Номер временно недоступен. Попробуйте позже.",
        "value": {
          "title": "SIM_TEMPORARY_OFFLINE",
          "details": "Sim temporary offline. Try later."
        }
      },
      "maxHoursExceedExample": {
        "summary": "Переданное время продления превышает максимально возможное",
        "value": {
          "title": "MAX_HOURS_EXCEED",
          "details": "Requested extension duration exceeds the maximum allowed hours.",
          "info": {
            "max": 336
          }
        }
      },
      "activationNotAvailableExample": {
        "summary": "Действие недоступно для переданной активации",
        "value": {
          "title": "ACTION_NOT_AVAILABLE",
          "details": "Action not available for this activation. Try '/reactivate' method."
        }
      },
      "freezePeriodNotReachedExample": {
        "summary": "Продление недоступно, пока действует период заморозки",
        "value": {
          "title": "FREEZE_PERIOD_NOT_REACHED",
          "details": "Action not available while freeze period is active.",
          "info": {
            "retry_after_seconds": 3600,
            "readable_date": "2026-01-01T10:00:00+00:00"
          }
        }
      },
      "threadsReachedExample": {
        "summary": "Ограничение потоков",
        "value": {
          "title": "CHANNELS_LIMIT",
          "details": "You have reached the maximum number of concurrent threads (purchases) allowed for your account. Contact the technical support.",
          "info": {
            "current_threads": 0,
            "max_allowed": -1
          }
        }
      },
      "serviceRestrictedExample": {
        "summary": "Позиция недоступна к продаже",
        "value": {
          "title": "SERVICE_NOT_AVAILABLE",
          "details": "Service not available for sale. Contact the technical support."
        }
      },
      "inactiveAccountExample": {
        "summary": "Необходимо подтвердить учётную запись",
        "value": {
          "title": "ACCOUNT_INACTIVE",
          "details": "Activate your account"
        }
      },
      "activationFinishedExample": {
        "summary": "Активация завершена",
        "value": {
          "title": "FINISHED",
          "details": "Activation finished."
        }
      },
      "activationRefundedExample": {
        "summary": "Средства за активацию возвращены",
        "value": {
          "title": "REFUNDED",
          "details": "Activation blocked. Funds refunded."
        }
      },
      "activationCanceledExample": {
        "summary": "Активация отменена. Вам возвращены средства.",
        "value": {
          "title": "CANCELED",
          "details": "Activation canceled."
        }
      },
      "freeCancellationExpiredExample": {
        "summary": "Невозможно отменить активацию",
        "value": {
          "title": "FREE_CANCELLATION_EXPIRED",
          "details": "Cannot terminate activation - time limit exceeded (20 minutes)"
        }
      },
      "earlyCancellationExample": {
        "summary": "Невозможно отменить активацию",
        "value": {
          "title": "EARLY_CANCEL_DENIED",
          "details": "Activation cannot be cancelled at this time. Minimum activation period must pass.",
          "info": {
            "minActivationTime": 120
          }
        }
      },
      "activationOtpReceivedExample": {
        "summary": "Невозможно отменить активацию - пришло otp",
        "value": {
          "title": "OTP_RECEIVED",
          "details": "Cannot terminate activation - OTP has been received on this number"
        }
      },
      "paymentRequiredExample": {
        "summary": "Недостаточно средств",
        "value": {
          "title": "NO_BALANCE",
          "details": "Payment Required"
        }
      },
      "noNumbersExample": {
        "summary": "Нет номеров в продаже",
        "value": {
          "title": "NO_NUMBERS",
          "details": "Numbers Gone. Try Later"
        }
      },
      "activationNotActiveExample": {
        "summary": "Активация неактивна",
        "value": {
          "title": "ACTIVATION_NOT_ACTIVE",
          "details": "Activation is terminated/refunded and Otp cannot be retrieved"
        }
      },
      "SAServerErrorExample": {
        "summary": "Внутренняя ошибка сервиса",
        "value": {
          "title": "SERVER_ERROR",
          "details": "Server Gone"
        }
      },
      "methodNotFoundExample": {
        "summary": "Метод не найден",
        "value": {
          "title": "BAD_ACTION",
          "details": "Method Not Found"
        }
      },
      "activationNotFoundExample": {
        "summary": "Активация не найдена",
        "value": {
          "title": "NOT_FOUND",
          "details": "Activation Not Found"
        }
      },
      "unauthorizedExample": {
        "summary": "Неверный апи-ключ",
        "value": {
          "title": "BAD_KEY",
          "details": "Unauthorized"
        }
      },
      "activationNewOtpReceivedExample": {
        "summary": "Невозможно завершить активацию - пришло otp",
        "value": {
          "title": "NEW_OTP_RECEIVED",
          "details": "Otp was received on this number. Please confirm termination.",
          "info": {
            "data": [
              {
                "id": "3416693217",
                "phoneFrom": "Telegram",
                "code": "123456",
                "text": "Telegram code 123456",
                "service": "tg",
                "date": "2026-02-16T12:36:59+03:00",
                "type": "sms"
              },
              {
                "id": "3416693218",
                "phoneFrom": "213421421431",
                "code": null,
                "text": null,
                "service": "tg",
                "date": "2026-02-16T12:36:59+03:00",
                "type": "call"
              }
            ]
          }
        }
      }
    },
    "requestBodies": {
      "BuyActivationRequestBody": {
        "content": {
          "application/json": {
            "schema": {
              "schema": "BuyActivationRequestBody",
              "required": [
                "service",
                "country",
                "amount"
              ],
              "properties": {
                "service": {
                  "$ref": "#/components/schemas/ServiceId"
                },
                "country": {
                  "$ref": "#/components/schemas/CountryId"
                },
                "amount": {
                  "description": "Количество активаций к покупке",
                  "type": "integer",
                  "example": 1,
                  "maximum": 10,
                  "minimum": 1
                },
                "operator": {
                  "$ref": "#/components/schemas/OperatorId"
                },
                "phoneException": {
                  "$ref": "#/components/schemas/PhoneException"
                },
                "maxPrice": {
                  "$ref": "#/components/schemas/MaxPrice"
                },
                "fixedPrice": {
                  "$ref": "#/components/schemas/FixedPrice"
                },
                "duration": {
                  "$ref": "#/components/schemas/RentDuration"
                },
                "verificationType": {
                  "$ref": "#/components/schemas/VerificationType"
                },
                "resellerUserId": {
                  "$ref": "#/components/schemas/ResellerUserId"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "ReactivateActivationRequestBody": {
        "content": {
          "application/json": {
            "schema": {
              "schema": "ReactivateActivationRequestBody",
              "required": [],
              "properties": {
                "duration": {
                  "$ref": "#/components/schemas/RentDuration"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "ProlongActivationRequestBody": {
        "content": {
          "application/json": {
            "schema": {
              "schema": "ProlongActivationRequestBody",
              "required": [
                "duration"
              ],
              "properties": {
                "duration": {
                  "$ref": "#/components/schemas/RentDuration"
                }
              },
              "type": "object"
            }
          }
        }
      }
    },
    "securitySchemes": {
      "apiKeyAuth": {
        "type": "apiKey",
        "description": "Format: ApiKey {your_token}",
        "name": "Authorization",
        "in": "header"
      },
      "apiKeyQuery": {
        "type": "apiKey",
        "name": "api_key",
        "in": "query"
      }
    }
  },
  "tags": [
    {
      "name": "Activations",
      "description": "Список активных активаций, покупка и текущее предложение"
    },
    {
      "name": "Activation OTP",
      "description": "Получение OTP по активной активации"
    },
    {
      "name": "Emails",
      "description": "HeroSMS email activations"
    },
    {
      "name": "SMS-Activate",
      "description": "API compatible with SMS-Activate"
    },
    {
      "name": "Classifiers",
      "description": "Справочники"
    },
    {
      "name": "Statistics",
      "description": "Статистика"
    },
    {
      "name": "Webhooks",
      "description": "\n##### Real-time event notification mechanism.\nAfter a purchase of the number, there is no need to repeatedly request activation status to receive incoming SMS messages.\nThe service sends SMS content to the specified HTTPS URLs using the POST method.\n\nUp to 3 webhook URLs can be supported simultaneously.\nURLs are specified in the accounts personal information.\nEach webhook call is performed independently for each specified URL.\n- Method: POST\n- Content-Type: application/json\n- Response timeout: 3 seconds\n- If there is no response with code 200, the call is considered unsuccessful:\n    - Number of retries - 7 times at least\n    - Delay between retries - 20–30 seconds\n    - Total duration of attempts - 3 minutes at least\n\nIt is strongly recommended to respond with a 200 code even if the SMS has already been processed on the recipient's side.\n\n##### Source IP addresses of webhook requests\nTo ensure correct performance, add the following IP addresses to the whitelist:\n- ```84.32.223.53```\n- ```185.138.88.87```\n"
    }
  ],
  "webhooks": {
    "sms-incoming": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Webhook: incoming SMS",
        "description": "The event is sent upon reception of an incoming SMS to the number linked to the active activation",
        "operationId": "smsIncoming",
        "requestBody": {
          "description": "JSON with a data about the received SMS",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "activationId",
                  "id",
                  "phoneFrom",
                  "service",
                  "text",
                  "country",
                  "receivedAt"
                ],
                "properties": {
                  "activationId": {
                    "$ref": "#/components/schemas/ActivationId"
                  },
                  "phoneFrom": {
                    "description": "Источник OTP",
                    "type": "string",
                    "example": "89854"
                  },
                  "service": {
                    "$ref": "#/components/schemas/ServiceId"
                  },
                  "text": {
                    "$ref": "#/components/schemas/SMSText"
                  },
                  "code": {
                    "$ref": "#/components/schemas/SMSCode"
                  },
                  "country": {
                    "$ref": "#/components/schemas/CountryId"
                  },
                  "receivedAt": {
                    "$ref": "#/components/schemas/dateISO8601",
                    "description": "SMS arrival time"
                  }
                },
                "type": "object"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Webhook successfully received (recommended response)"
          },
          "default": {
            "description": "Webhook is not accepted, up to 7 retries"
          }
        }
      }
    }
  }
}