rendered paste body{ "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" } } } } }}