Начни здесь
Ваш первый запрос в четыре этапа
Keep your main SMSMobileAPI subscription active; Telegram connection, API access, sending and sent-message history pause when it expires.
Подключите собственный аккаунт Telegram, авторизовавшись через QR code в панели управления, и синхронизируйте его контакты.
Скопируйте ваш ключ SMSMobileAPI из My API Key и храните его на своём сервере.
Перечислите контакты и скопируйте contact_id предполагаемого получателя.
Send JSON for text, or multipart/form-data to attach an image or document. Use the returned message_id to check the sent log.
ВАШ АККАУНТ TELEGRAM
Подключитесь, выберите контакт и затем отслеживайте отправку.
Каждый клиент сканирует QR code, чтобы подключить свой аккаунт Telegram. Синхронизируйте контакты в панели, используйте возвращённый contact ID для постановки сообщения в очередь, затем проверьте его статус в журнале отправленных.
1Соединять
Отсканируйте QR code на странице Telegram в панели управления.
2Найти контакт
Синхронизируйте, затем найдите contact ID через API.
3Отправлять
POST одно сообщение JSON с ключом идемпотентности.
4Отслеживать
Просмотр состояний queued, sent, unknown или error.
Аутентификация
Держите учетные данные на своем сервере
Send X-SMSMobileAPI-Key: YOUR_API_KEY in an HTTPS header. Keep this key on your server, never in browser JavaScript or a public repository. The endpoints are scoped to the Telegram account connected to that SMSMobileAPI account. A short-lived signed download_url can be opened without the key. Access can be disabled in My API Key.
- An expired SMSMobileAPI subscription blocks Telegram API access with HTTP 402 subscription_expired, including attachment downloads. Renew in the dashboard to restore access; existing connection and history are preserved.
- QR code связывает каждый аккаунт клиента Telegram. Сообщения отправляются из этого аккаунта, а не из общего SMSMobileAPI аккаунта.
- Ответ 202 означает, что запрос поставлен в очередь. Это не доказывает, что Telegram принял или доставил сообщение. Проверяйте журнал отправленных, чтобы узнать статус или ошибки.
- Сервис в настоящее время отправляет по одному синхронизированному контакту или сохранённому @username за запрос. Соблюдайте правила Telegram и согласие получателя.
- Запросы ограничены 15 новыми сообщениями в минуту и 30 сообщениями в очереди на подключённый аккаунт. При повторной отправке используйте стабильный idempotency_key.
- Images and documents can be up to 5 MB. The send queue holds file bytes only until processing finishes; a separate private copy supports later downloads. File bytes are never embedded in the sent log.
- Newly sent attachments are kept in private storage for 90 days. The sent log returns a download_url valid for 15 minutes; request the log again to get a new link. Older attachments sent before this feature have no downloadable copy.
ПОЛУЧАТЬ
Список контактов Telegram
https://api.smsmobileapi.com/telegram/contacts/Возвращает контакты, доступные в вашем подключённом Telegram аккаунте.
Ищите по отображаемому имени или @username, затем используйте contact_id для отправки.
Параметры
| Имя | Тип | Требование | Описание |
|---|---|---|---|
q |
нить | факультативный | Необязательный поиск по имени или имени пользователя, до 80 символов. |
limit |
целое число | факультативный | Размер страницы от 1 до 100; по умолчанию 50. |
cursor |
целое число | факультативный | Используйте paging.next_cursor из предыдущего ответа; не указывайте для первой страницы. |
Запросить пример
curl -G 'https://api.smsmobileapi.com/telegram/contacts/' \
-H 'X-SMSMobileAPI-Key: YOUR_API_KEY' \
--data-urlencode 'q=Alex' \
--data-urlencode 'limit=50'
Пример ответа
{"ok":true,"data":[{"contact_id":42,"display_name":"Alex Example","username":"alex_example","source":"telegram"}],"paging":{"has_more":false,"next_cursor":null}}
Хотите выполнить этот запрос?Подключите ключ API в верхней части страницы, чтобы разблокировать интерактивный тестер.
Подключите ключ ↑- ID контактов принадлежат подключённому аккаунту; ID из другого аккаунта использовать нельзя.
- Обновляйте контакты через Dashboard → Telegram Contacts, если новый человек не появляется.
ПОЧТА
Отправить сообщение Telegram
https://api.smsmobileapi.com/telegram/send/Ставит в очередь одно текстовое сообщение для контакта из вашего подключённого аккаунта Telegram.
Используйте contact_id из endpoints контактов. Сохраняйте message_id для отслеживания.
Параметры
| Имя | Тип | Требование | Описание |
|---|---|---|---|
contact_id |
целое число | Необходимый | ID контакта, возвращаемый /telegram/contacts/. |
message |
нить | Необходимый | Текст в кодировке UTF-8, 1–4096 символов и не более 16 000 байт. |
idempotency_key |
Строка UUID | факультативный | Стабильный 36-символьный ключ в стиле UUID с буквами в нижнем регистре. Повторно используйте при сетевых повторах, чтобы избежать дублирования сообщений. |
Запросить пример
curl -X POST 'https://api.smsmobileapi.com/telegram/send/' \
-H 'X-SMSMobileAPI-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"contact_id":42,"message":"Your appointment is confirmed.","idempotency_key":"2d40bb10-cc42-4c30-a282-93fc6dd8e161"}'
Пример ответа
{"ok":true,"message_id":123,"status":"queued","idempotency_key":"2d40bb10-cc42-4c30-a282-93fc6dd8e161","duplicate":false}
Хотите выполнить этот запрос?Подключите ключ API в верхней части страницы, чтобы разблокировать интерактивный тестер.
Подключите ключ ↑- HTTP 202 означает помещено в очередь; это не подтверждение доставки. Повторный запрос с теми же данными вернёт HTTP 200 с duplicate=true и оригинальным message_id.
- Для повторных попыток используйте тот же idempotency_key с тем же контактом и сообщением. Изменённая полезная нагрузка с тем же ключом вернёт HTTP 409.
ПОЧТА
Send a Telegram image or document
https://api.smsmobileapi.com/telegram/send/Queue one file for a contact, with an optional caption.
Use multipart/form-data. The field name for the attachment is file.
Параметры
| Имя | Тип | Требование | Описание |
|---|---|---|---|
contact_id |
целое число | Необходимый | ID контакта, возвращаемый /telegram/contacts/. |
file |
file | Необходимый | One JPG, PNG, WebP, PDF, TXT, CSV, JSON, ZIP or Office file, at most 5 MB. |
message |
нить | факультативный | Optional caption of at most 1024 characters. |
idempotency_key |
Строка UUID | факультативный | Reuse the same key and identical file and caption when retrying. |
Запросить пример
curl -X POST 'https://api.smsmobileapi.com/telegram/send/' \
-H 'X-SMSMobileAPI-Key: YOUR_API_KEY' \
-F 'contact_id=42' \
-F 'message=Here is the document.' \
-F 'file=@./document.pdf' \
-F 'idempotency_key=2d40bb10-cc42-4c30-a282-93fc6dd8e161'
Пример ответа
{"ok":true,"message_id":124,"status":"queued","idempotency_key":"2d40bb10-cc42-4c30-a282-93fc6dd8e161","duplicate":false}
Хотите выполнить этот запрос?Подключите ключ API в верхней части страницы, чтобы разблокировать интерактивный тестер.
Подключите ключ ↑- Do not set Content-Type manually; cURL adds the multipart boundary.
- For JSON clients, send file_base64 with the Base64 file contents and filename, alongside contact_id and an optional message caption.
- A queued response is not proof of delivery. Check GET /telegram/sent/?message_id=124.
- The connected Telegram account sends the file to one contact.
ПОЧТА
Send a Telegram file using JSON
https://api.smsmobileapi.com/telegram/send/Queue one image or document using a Base64 string when multipart upload is inconvenient.
Encode the original file bytes with Base64. Do not include an API key in the JSON body.
Параметры
| Имя | Тип | Требование | Описание |
|---|---|---|---|
contact_id |
целое число | Необходимый | ID контакта, возвращаемый /telegram/contacts/. |
filename |
нить | Необходимый | Original file name, for example photo.png or invoice.pdf. |
file_base64 |
нить | Необходимый | Raw Base64 file contents or a data URI; decoded file must be 5 MB or smaller. |
message |
нить | факультативный | Optional caption of at most 1024 characters. |
idempotency_key |
Строка UUID | факультативный | Reuse the same key with identical file contents, filename and caption on retries. |
Запросить пример
curl -X POST 'https://api.smsmobileapi.com/telegram/send/' \
-H 'X-SMSMobileAPI-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"contact_id":42,"filename":"photo.png","file_base64":"BASE64_ENCODED_FILE","message":"See attached","idempotency_key":"2d40bb10-cc42-4c30-a282-93fc6dd8e161"}'
Пример ответа
{"ok":true,"message_id":125,"status":"queued","idempotency_key":"2d40bb10-cc42-4c30-a282-93fc6dd8e161","duplicate":false}
Хотите выполнить этот запрос?Подключите ключ API в верхней части страницы, чтобы разблокировать интерактивный тестер.
Подключите ключ ↑- Replace BASE64_ENCODED_FILE with the actual Base64 of a supported file.
- Use multipart/form-data instead if your client supports direct file upload; it avoids Base64 size overhead.
ПОЛУЧАТЬ
Список отправленных сообщений Telegram
https://api.smsmobileapi.com/telegram/sent/Возвращает недавние сообщения в очереди, отправляемые, отправленные и с ошибками, сначала самые новые.
Опрашивайте этот endpoint с message_id, чтобы отслеживать сообщение, возвращённое /telegram/send/.
Параметры
| Имя | Тип | Требование | Описание |
|---|---|---|---|
message_id |
целое число | факультативный | Вернуть конкретный идентификатор сообщения из /telegram/send/. |
contact_id |
целое число | факультативный | Ограничить результаты одним идентификатором контакта. |
status |
queued | sending | sent | error | unknown | факультативный | Фильтровать по состоянию отправки. |
limit |
целое число | факультативный | Размер страницы от 1 до 100; по умолчанию 50. |
cursor |
целое число | факультативный | Используйте paging.next_cursor для получения более старых сообщений. |
Запросить пример
curl -G 'https://api.smsmobileapi.com/telegram/sent/' \
-H 'X-SMSMobileAPI-Key: YOUR_API_KEY' \
--data-urlencode 'message_id=123'
Пример ответа
{"ok":true,"data":[{"message_id":123,"contact_id":42,"contact_name":"Alex Example","username":"alex_example","message":"Your appointment is confirmed.","type":"text","media":null,"status":"sent","telegram_message_id":781,"error_code":null,"error_detail":null,"attempts":1,"queued_at":"2026-11-06T09:42:00+00:00","sent_at":"2026-11-06T09:42:04+00:00"}],"paging":{"has_more":false,"next_cursor":null}}
Хотите выполнить этот запрос?Подключите ключ API в верхней части страницы, чтобы разблокировать интерактивный тестер.
Подключите ключ ↑- The top-level type is text, image or file. For an attachment, media contains the filename, MIME type, size, download_url and available_until; media is null for text messages. File bytes are not embedded in the log.
- The download_url opens in a browser for 15 minutes. Refresh this endpoint for a new link while the file remains available.
- sent означает, что Telegram принял сообщение от подключённого аккаунта; доставка получателю и подтверждения прочтения не отслеживаются.
- unknown означает, что исход отправки не удалось подтвердить. Не перечитывайте сообщение автоматически в этом состоянии.
ПОЛУЧАТЬ
Download a sent Telegram attachment
https://api.smsmobileapi.com/telegram/media/Downloads a previously sent image or document while it remains available.
Use media.download_url from the sent log, or call this endpoint with the account API key.
Параметры
| Имя | Тип | Требование | Описание |
|---|---|---|---|
message_id |
целое число | Необходимый | Message ID returned by /telegram/send/. |
Запросить пример
curl -L 'https://api.smsmobileapi.com/telegram/media/?message_id=124' \
-H 'X-SMSMobileAPI-Key: YOUR_API_KEY' \
-o attachment
Пример ответа
Binary image or document bytes (Content-Type matches the file)
Хотите выполнить этот запрос?Подключите ключ API в верхней части страницы, чтобы разблокировать интерактивный тестер.
Подключите ключ ↑- A download_url returned by /telegram/sent/ is signed and works without an API key for 15 minutes. Keep it private.
- The authenticated endpoint requires the Telegram sent-log API access switch.
- Files are retained for 90 days; the type and filename remain in the log after expiry.
Поиск неисправностей
Ошибки и безопасные повторы
Прочитайте статус HTTP и поле ошибок JSON перед повторным использованием. Не повторяйте валидацию или сбои аутентификации без предварительного исправления запроса.
| HTTP | Код | Что делать |
|---|---|---|
| 401 | api_key_required / invalid_api_key | Отправьте действительный заголовок X-SMSMobileAPI-Key. |
| 402 | subscription_expired | Renew the SMSMobileAPI subscription linked to the API key. Telegram API access resumes after renewal. |
| 403 | API_ENDPOINT_DISABLED | Включите Telegram API или этот конкретный endpoint в My API Key. |
| 404 | contact_not_found | Синхронизируйте контакты и используйте идентификатор из вашей собственной Telegram связи. |
| 409 | telegram_not_connected / idempotency_conflict | Подключите Telegram или выберите новый ключ идемпотентности для изменённого содержимого. |
| 422 | invalid_message / invalid_pagination | Исправьте сообщение, ID контакта или параметры пагинации. |
| 429 | queue_full / rate_limited | Дождитесь очистки очереди отправки или снятия лимита по минуте. |
| 503 | sending_unavailable / service_unavailable | Рабочий процесс отправки или хранилище временно недоступны; повторите позже. |
| 503 | media_not_ready | File sending requires the current Telegram service update. Text sending remains available. |
| 404 / 410 | media_not_found / media_expired | The file is unavailable or past its 90-day retention period. |
Нужна помощь?
Приведите контекст запроса, а не ваши секреты.
Поделитесь конечной точкой, временной меткой, статусом HTTP и дезинфицированным ответом. Никогда не включайте ключи API, токены или содержимое личных сообщений.
Официальное мобильное приложение
Защищенный мост между телефоном, приборной панелью и API.
Операции SMS и вызова проходят через официальное приложение SMSMobileAPI, установленное на подключенном телефоне. Приложение надежно соединяет устройство с вашей учетной записью, синхронизирует авторизованные события и связывает мобильную сеть с приборной панелью и REST API.
- Подписанные релизы, распространяемые через официальные списки Google Play и Apple App Store
- Google и Apple анализируют, подписывают и контролируют дистрибуцию
- Защищенное сопряжение устройств, транспортировка HTTPS и аутентифицированный доступ к API
- Только разрешения, необходимые для мобильных функций, которые вы включаете


