MyVendis API

Аренда номеров для приёма SMS. API совместим с SMS-Activate: если ваш софт работает с handler_api.php, достаточно заменить адрес и ключ.

Базовый URLhttps://myvendis.net/stubs/handler_api.php
МетодGET или POST (form)
Авторизацияпараметр api_key
Ответытекст или JSON, UTF-8

Во все запросы передавайте api_key и action. Ключ выдаёт администратор. Номер живёт 20 минут с момента выдачи.

Оплата

Вы платите только за номера, на которые пришла SMS. При выдаче номера цена резервируется на балансе. Списание происходит только когда на номер пришла первая SMS. Если SMS не пришла (отмена или истечение 20 минут), резерв возвращается полностью. Повторные SMS на тот же номер бесплатны.

getBalance показывает доступный баланс, то есть баланс минус зарезервированное под ожидающие номера.

Порядок работы

  1. Проверьте наличие: getNumbersStatus или getPrices.
  2. Возьмите номер: getNumber. Вы получите ID активации и номер.
  3. Опрашивайте getStatus каждые 3–5 секунд, пока не придёт STATUS_OK:код.
  4. Нужен ещё код на тот же номер: setStatus со status=3.
  5. Завершите: setStatus со status=6 (успех) или status=8 (отмена, если SMS не пришла).

GETgetBalance

Доступный баланс в USD.

https://myvendis.net/stubs/handler_api.php?action=getBalance&api_key=KEY
ACCESS_BALANCE:12.50

GETgetNumbersStatus

Количество доступных номеров по сервисам для страны.

ПараметрОписание
country *ID страны из getCountries
{"tg_0":"50","go_0":"50","fb_0":"50"}

Суффикс _0 означает любого оператора.

GETgetPrices

Цены и количество. Без параметров возвращает все страны и сервисы.

ПараметрОписание
countryID страны
serviceкод сервиса
{"16":{"go":{"cost":0.15,"count":50},"fb":{"cost":0.12,"count":50}}}

GETgetCountries

{"16":{"id":16,"eng":"United Kingdom","rus":"United Kingdom","phoneCode":"44","visible":1,"retry":1,"rent":0,"multiService":0}}

ID стран совпадают с SMS-Activate (16 — Великобритания, 86 — Италия, 43 — Германия и т.д.).

GETgetServicesList

{"status":"success","services":[{"code":"go","name":"Google"},{"code":"fb","name":"Facebook"}]}

GETgetOperators

{"status":"success","countryOperators":{"16":["any"]}}

Сейчас доступен только оператор any: подбор оператора выполняется автоматически.

GETgetNumber

Выдаёт номер. Время ответа обычно до 1–2 секунд.

ПараметрОписание
service *код сервиса
country *ID страны
phoneExceptionпрефиксы, которые нельзя выдавать, через запятую: 4475,4478
maxPriceмаксимальная цена; если цена выше, вернётся WRONG_MAX_PRICE:цена
https://myvendis.net/stubs/handler_api.php?action=getNumber&api_key=KEY&service=go&country=16
ОтветЗначение
ACCESS_NUMBER:ID:НОМЕРномер выдан, например ACCESS_NUMBER:1024:447700900123
NO_NUMBERSнет свободных номеров
NO_BALANCEнедостаточно средств
BAD_SERVICE / BAD_COUNTRYневерный сервис или страна

GETgetNumberV2

То же, что getNumber, но ответ в JSON.

{"activationId":1024,"phoneNumber":"447700900123","activationCost":0.15,"currency":840,
 "countryCode":"16","countryPhoneCode":"44","canGetAnotherSms":true,
 "activationTime":"2026-10-22 18:00:00","activationEndTime":"2026-10-22 18:20:00","activationOperator":"any"}

GETgetStatus

ПараметрОписание
id *ID активации
ОтветЗначение
STATUS_WAIT_CODEожидание SMS
STATUS_WAIT_RETRY:КОДожидание следующей SMS после status=3; в ответе последний полученный код
STATUS_OK:КОДкод получен
STATUS_CANCELактивация отменена или истекла
NO_ACTIVATIONактивация не найдена

GETgetFullSms

Полный текст последней SMS.

FULL_SMS:Your verification code: 123456

GETsetStatus

ПараметрОписание
id *ID активации
status *1, 3, 6 или 8
statusДействиеОтвет
1SMS отправлена, номер готовACCESS_READY
3запросить ещё один код (после получения первого)ACCESS_RETRY_GET
6завершить активацию (после получения кода)ACCESS_ACTIVATION
8отменить активациюACCESS_CANCEL

Если действие недопустимо для текущего состояния, ответ BAD_STATUS.

GETgetActiveActivations

{"status":"success","activeActivations":[{"activationId":"1024","serviceCode":"go","phoneNumber":"447700900123",
 "activationCost":"0.15","activationStatus":"STATUS_OK:123456","smsCode":["123456"],
 "activationTime":"2026-10-22 18:00:00","countryCode":"16"}]}

Ошибки

ОтветЗначение
BAD_KEYневерный api_key
BAD_ACTIONнеизвестный action
BAD_SERVICEнеизвестный или недоступный сервис
BAD_COUNTRYневерная страна
BAD_STATUSнедопустимый статус
NO_NUMBERSнет номеров
NO_BALANCEнедостаточно средств
NO_ACTIVATIONактивация не найдена
ERROR_SQLвнутренняя ошибка, повторите запрос

Примеры кода

cURL

curl 'https://myvendis.net/stubs/handler_api.php?action=getNumber&api_key=KEY&service=go&country=16'
curl 'https://myvendis.net/stubs/handler_api.php?action=getStatus&api_key=KEY&id=1024'

Python

import time, requests

API = "https://myvendis.net/stubs/handler_api.php"
KEY = "ВАШ_КЛЮЧ"

def call(**params):
    return requests.get(API, params={"api_key": KEY, **params}, timeout=15).text

r = call(action="getNumber", service="go", country=16)
if not r.startswith("ACCESS_NUMBER"):
    raise SystemExit(r)
_, act_id, phone = r.split(":")
print("номер", phone)

for _ in range(240):  # до 20 минут
    st = call(action="getStatus", id=act_id)
    if st.startswith("STATUS_OK"):
        print("код", st.split(":", 1)[1])
        call(action="setStatus", id=act_id, status=6)
        break
    if st == "STATUS_CANCEL":
        break
    time.sleep(5)
else:
    call(action="setStatus", id=act_id, status=8)

Go

q := url.Values{"api_key": {key}, "action": {"getNumber"}, "service": {"go"}, "country": {"16"}}
resp, err := http.Get("https://myvendis.net/stubs/handler_api.php?" + q.Encode())
if err != nil { return err }
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body) // ACCESS_NUMBER:1024:447700900123