MyVendis API
Аренда номеров для приёма SMS. API совместим с SMS-Activate: если ваш софт работает с handler_api.php, достаточно заменить адрес и ключ.
Во все запросы передавайте api_key и action. Ключ выдаёт администратор. Номер живёт 20 минут с момента выдачи.
Оплата
Вы платите только за номера, на которые пришла SMS. При выдаче номера цена резервируется на балансе. Списание происходит только когда на номер пришла первая SMS. Если SMS не пришла (отмена или истечение 20 минут), резерв возвращается полностью. Повторные SMS на тот же номер бесплатны.
getBalance показывает доступный баланс, то есть баланс минус зарезервированное под ожидающие номера.Порядок работы
- Проверьте наличие:
getNumbersStatusилиgetPrices. - Возьмите номер:
getNumber. Вы получите ID активации и номер. - Опрашивайте
getStatusкаждые 3–5 секунд, пока не придётSTATUS_OK:код. - Нужен ещё код на тот же номер:
setStatusсоstatus=3. - Завершите:
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
Цены и количество. Без параметров возвращает все страны и сервисы.
| Параметр | Описание |
|---|---|
country | ID страны |
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 | Действие | Ответ |
|---|---|---|
| 1 | SMS отправлена, номер готов | 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