API Документация

BASEURL
https://api.yimatongsms.com

Создать заказ

GET /api/order/createOrder

Параметры

Параметр Тип Обяз. Описание
secretKey str Да API ключ
smsCountryId int Да ID сервиса страны (smsCountryId из каталога)
buyNum int Да Количество (обяз.). Не меньше минимального количества покупки, указанного в каталоге (обычно 1).

Ответ

Параметр Тип Описание
code int Код: 0=успех (в т.ч. queryOrder в обработке); 400=бизнес-ошибка; 401=только createOrder неверный secretKey; 404=не найдено; 429=лимит; 500=ошибка сервера
message str Сообщение
data.apiOrderId str ID заказа
Успешный пример
{
  "code": 0,
  "message": "创建成功",
  "data": { "apiOrderId": "f7f145f39f9d4f67a4f2cfdf1fd8e721" }
}
Пример ошибки
{
  "code": 401,
  "message": "密钥无效或缺失",
  "data": null
}
Другие примеры: createOrder — async (code=0)
{
  "code": 0,
  "message": "处理中,请稍后查询",
  "data": { "apiOrderId": "f7f145f39f9d4f67a4f2cfdf1fd8e721" }
}
Другие примеры: createOrder — 401 invalid secretKey
{
  "code": 401,
  "message": "密钥无效或缺失",
  "data": null
}
Другие примеры: createOrder — 404 invalid country
{
  "code": 404,
  "message": "国家服务不存在或已停用",
  "data": null
}
Другие примеры: createOrder — 400 insufficient balance
{
  "code": 400,
  "message": "余额不足",
  "data": null
}
Другие примеры: createOrder — 500 create failed
{
  "code": 500,
  "message": "创建失败",
  "data": { "apiOrderId": "f7f145f39f9d4f67a4f2cfdf1fd8e721" }
}

Проверить заказ

GET /api/order/queryOrder

Параметры

Параметр Тип Обяз. Описание
apiOrderId str Да ID заказа

Ответ

Параметр Тип Описание
code int Код: 0=успех (в т.ч. queryOrder в обработке); 400=бизнес-ошибка; 401=только createOrder неверный secretKey; 404=не найдено; 429=лимит; 500=ошибка сервера
message str Сообщение
data.apiOrderId str ID заказа
data.contents json(list) Фиксированный формат списка contents, каждый элемент — одна строка контента заказа

Поля элемента data

Параметр Тип Описание
data.contents[].contentId string ID строки; параметр contentId для resolveNumber
data.contents[].type int 1=текст, 2=строка со ссылкой getdata
data.contents[].content string Строка контента
data.contents[].expiresAt string Рекомендуемый срок получения SMS-кода (ISO-8601, местное время). После этого времени код может быть недоступен.
Успешный пример
{
  "code": 0,
  "message": "查询成功",
  "data": {
    "apiOrderId": "f7f145f39f9d4f67a4f2cfdf1fd8e721",
    "contents": [
      { "contentId": "806779395c1640c882e65aaf1aba21d9", "type": 2, "content": "13800138000----/api/order/getdata?contentId=806779395c1640c882e65aaf1aba21d9", "expiresAt": "2026-05-28T15:04:00" },
      { "contentId": "a1b2c3d4e5f6", "type": 2, "content": "13900139000----/api/order/getdata?contentId=a1b2c3d4e5f6", "expiresAt": "2026-05-28T15:08:00" }
    ]
  }
}
Пример ошибки
{
  "code": 404,
  "message": "订单不存在或无权限",
  "data": { "apiOrderId": "not-exists-order-id" }
}
Другие примеры: queryOrder — processing (code=0)
{
  "code": 0,
  "message": "处理中,请稍后查询",
  "data": { "apiOrderId": "f7f145f39f9d4f67a4f2cfdf1fd8e721", "contents": [] }
}
Другие примеры: queryOrder — 404 not found
{
  "code": 404,
  "message": "订单不存在或无权限",
  "data": { "apiOrderId": "not-exists-order-id" }
}

Освободить номер

GET /api/order/resolveNumber

Освободить номера в заказе (без secretKey). GET BASEURL + /api/order/resolveNumber?apiOrderId=...; необязательный contentId (contents[].contentId из queryOrder) — одна строка, без него — все неосвобождённые строки без SMS. Строки с SMS освободить нельзя. При успехе message содержит информацию о возврате; code=400 при ошибке (можно повторить). Неподдерживаемый тип заказа — тоже 400.

Параметры

Параметр Тип Обяз. Описание
apiOrderId str Да ID заказа
contentId str необяз. Необязательно. data.contents[].contentId из queryOrder; освобождает только эту строку

Ответ

Параметр Тип Описание
code int Код: 0=успех (в т.ч. queryOrder в обработке); 400=бизнес-ошибка; 401=только createOrder неверный secretKey; 404=не найдено; 429=лимит; 500=ошибка сервера
message str Сообщение
data.apiOrderId str ID заказа
Успешный пример
{
  "code": 0,
  "message": "已释放,退 0.050 USD",
  "data": { "apiOrderId": "f7f145f39f9d4f67a4f2cfdf1fd8e721" }
}
Пример ошибки
{
  "code": 400,
  "message": "号码已收到短信,无法释放",
  "data": { "apiOrderId": "f7f145f39f9d4f67a4f2cfdf1fd8e721" }
}
Другие примеры: resolveNumber — 400 has SMS
{
  "code": 400,
  "message": "号码已收到短信,无法释放",
  "data": { "apiOrderId": "f7f145f39f9d4f67a4f2cfdf1fd8e721" }
}
Другие примеры: resolveNumber — 404 not found
{
  "code": 404,
  "message": "订单不存在或无权限",
  "data": { "apiOrderId": "not-exists-order-id" }
}

Get Data

GET /api/order/getdata

Сначала /queryOrder. Для type=2: BASEURL + /api/order/getdata?contentId=... Ответ: только текст.

Параметры

Параметр Тип Обяз. Описание
contentId str Да Извлеките contentId из /api/order/getdata?contentId=...

Ответ

HTTP статус Пример тела Значение
200 123456 Успех; тело — обычный текст (например код SMS)
400 invalid contentId Неверный contentId
404 not found Контент не найден
429 Too Many Requests Лимит запросов
502 fetch error Не удалось получить содержимое
Успешный пример
123456
Пример ошибки
not found
Другие примеры: getdata — 429 rate limited
Too Many Requests

Часто задаваемые вопросы (FAQ)

Q1. Какая структура data у queryOrder?

data — объект с apiOrderId и contents. Каждая строка: contentId, type, content; для SMS-верификации также expiresAt. contentId — необязательный параметр resolveNumber.

Q2. Как получить содержимое getdata?

При type=2 извлеките contentId и вызовите /api/order/getdata?contentId=... (текст).

Q3. В каком формате возвращается getdata?

getdata возвращает чистый текст без JSON-обертки.

Q4. Возвращает ли createOrder code=202?

Нет. И createOrder, и queryOrder в обработке возвращают code=0. Смотрите message и пустой ли contents; опрашивайте queryOrder.

Q5. В какой валюте баланс и списания?

Баланс, цена и суммы заказов — USD (до 3 знаков). В message возвраты тоже в USD, напр. «已释放,退 0.050 USD».