Commencez ici
Votre première demande en quatre étapes
Keep your main SMSMobileAPI subscription active; Telegram connection, API access, sending and sent-message history pause when it expires.
Connectez votre propre compte Telegram en QR code dans le tableau de bord et synchronisez ses contacts.
Copiez votre clé SMSMobileAPI depuis My API Key et conservez-la sur votre serveur.
Listez les contacts et copiez le contact_id du destinataire prévu.
Send JSON for text, or multipart/form-data to attach an image or document. Use the returned message_id to check the sent log.
VOTRE COMPTE TELEGRAM
Connectez-vous, choisissez un contact, puis suivez l'envoi.
Chaque client scanne un QR code pour connecter son propre compte Telegram. Synchronisez les contacts dans le tableau de bord, utilisez l'ID de contact retourné pour mettre un message en file d'attente, puis inspectez son statut dans le journal des envois.
1Connecter
Scannez le QR code sur la page du tableau de bord Telegram.
2Trouver un contact
Synchronisez, puis recherchez l'ID du contact via API.
3Envoyer
POST un message JSON avec une clé d'idempotence.
4Piste
Lire les états queued, sent, unknown ou error.
Authentification
Conservez les informations d'identification sur votre serveur
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.
- Le QR code relie le compte Telegram propre à chaque client. Les messages sont envoyés depuis ce compte, et non depuis un compte SMSMobileAPI partagé.
- Une réponse 202 signifie que la requête a été mise en file d'attente. Cela ne prouve pas que Telegram a accepté ou livré le message. Interrogez le journal des envois pour vérifier envoyé ou erreur.
- Le service envoie actuellement une seule personne synchronisée ou un @username enregistré par requête. Respectez les règles Telegram et le consentement du destinataire.
- Les requêtes sont limitées à 15 nouveaux messages par minute et 30 messages en file d'attente par compte connecté. Utilisez une idempotency_key stable lors des nouvelles tentatives.
- 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.
OBTENIR
Lister les contacts Telegram
https://api.smsmobileapi.com/telegram/contacts/Renvoie les contacts disponibles dans votre compte Telegram connecté.
Recherchez par nom affiché ou @username, puis utilisez contact_id pour envoyer.
Paramètres
| Nom | Taper | Exigence | Désignation des marchandises |
|---|---|---|---|
q |
chaîne | Facultatif | Recherche optionnelle par nom ou nom d'utilisateur, jusqu'à 80 caractères. |
limit |
entier | Facultatif | Taille de page de 1 à 100 ; 50 par défaut. |
cursor |
entier | Facultatif | Utilisez paging.next_cursor de la réponse précédente ; omettez pour la première page. |
Exemple de demande
curl -G 'https://api.smsmobileapi.com/telegram/contacts/' \
-H 'X-SMSMobileAPI-Key: YOUR_API_KEY' \
--data-urlencode 'q=Alex' \
--data-urlencode 'limit=50'
Exemple de réponse
{"ok":true,"data":[{"contact_id":42,"display_name":"Alex Example","username":"alex_example","source":"telegram"}],"paging":{"has_more":false,"next_cursor":null}}
Vous souhaitez exécuter cette requête ?Connectez votre clé API en haut de la page pour déverrouiller le testeur interactif.
Clé de connexion ↑- Les ID de contact appartiennent au compte connecté ; un ID d'un autre compte ne peut pas être utilisé.
- Actualisez les contacts depuis Dashboard → Telegram Contacts lorsqu'une nouvelle personne n'apparaît pas.
POSTE
Envoyez un message Telegram
https://api.smsmobileapi.com/telegram/send/Met en file d'attente un message texte pour un contact depuis votre compte Telegram connecté.
Utilisez contact_id depuis le point de terminaison contacts. Enregistrez message_id pour le suivi.
Paramètres
| Nom | Taper | Exigence | Désignation des marchandises |
|---|---|---|---|
contact_id |
entier | Requis | ID de contact renvoyé par /telegram/contacts/. |
message |
chaîne | Requis | Texte UTF-8, 1–4096 caractères et au maximum 16 000 octets. |
idempotency_key |
Chaîne UUID | Facultatif | Clé stable de 36 caractères en minuscules de type UUID. Réutilisez-la lors de nouvelles tentatives réseau pour éviter les messages en double. |
Exemple de demande
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"}'
Exemple de réponse
{"ok":true,"message_id":123,"status":"queued","idempotency_key":"2d40bb10-cc42-4c30-a282-93fc6dd8e161","duplicate":false}
Vous souhaitez exécuter cette requête ?Connectez votre clé API en haut de la page pour déverrouiller le testeur interactif.
Clé de connexion ↑- HTTP 202 signifie mis en file d'attente ; ce n'est pas un accusé de réception de livraison. Une nouvelle tentative identique retourne HTTP 200 avec duplicate=true et le message_id original.
- Pour les nouvelles tentatives, réutilisez la même idempotency_key avec le même contact et message. Une charge utile modifiée avec la même clé renvoie HTTP 409.
POSTE
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.
Paramètres
| Nom | Taper | Exigence | Désignation des marchandises |
|---|---|---|---|
contact_id |
entier | Requis | ID de contact renvoyé par /telegram/contacts/. |
file |
file | Requis | One JPG, PNG, WebP, PDF, TXT, CSV, JSON, ZIP or Office file, at most 5 MB. |
message |
chaîne | Facultatif | Optional caption of at most 1024 characters. |
idempotency_key |
Chaîne UUID | Facultatif | Reuse the same key and identical file and caption when retrying. |
Exemple de demande
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'
Exemple de réponse
{"ok":true,"message_id":124,"status":"queued","idempotency_key":"2d40bb10-cc42-4c30-a282-93fc6dd8e161","duplicate":false}
Vous souhaitez exécuter cette requête ?Connectez votre clé API en haut de la page pour déverrouiller le testeur interactif.
Clé de connexion ↑- 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.
POSTE
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.
Paramètres
| Nom | Taper | Exigence | Désignation des marchandises |
|---|---|---|---|
contact_id |
entier | Requis | ID de contact renvoyé par /telegram/contacts/. |
filename |
chaîne | Requis | Original file name, for example photo.png or invoice.pdf. |
file_base64 |
chaîne | Requis | Raw Base64 file contents or a data URI; decoded file must be 5 MB or smaller. |
message |
chaîne | Facultatif | Optional caption of at most 1024 characters. |
idempotency_key |
Chaîne UUID | Facultatif | Reuse the same key with identical file contents, filename and caption on retries. |
Exemple de demande
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"}'
Exemple de réponse
{"ok":true,"message_id":125,"status":"queued","idempotency_key":"2d40bb10-cc42-4c30-a282-93fc6dd8e161","duplicate":false}
Vous souhaitez exécuter cette requête ?Connectez votre clé API en haut de la page pour déverrouiller le testeur interactif.
Clé de connexion ↑- 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.
OBTENIR
Lister les messages Telegram envoyés
https://api.smsmobileapi.com/telegram/sent/Renvoie les messages récents en file d'attente, en cours d'envoi, envoyés et échoués, du plus récent au plus ancien.
Interroger ce point de terminaison avec message_id pour suivre un message renvoyé par /telegram/send/.
Paramètres
| Nom | Taper | Exigence | Désignation des marchandises |
|---|---|---|---|
message_id |
entier | Facultatif | Retourner l'ID de message spécifique de /telegram/send/. |
contact_id |
entier | Facultatif | Limiter les résultats à un seul ID de contact. |
status |
queued | sending | sent | error | unknown | Facultatif | Filtrer par état d'envoi. |
limit |
entier | Facultatif | Taille de page de 1 à 100 ; 50 par défaut. |
cursor |
entier | Facultatif | Utilisez paging.next_cursor pour récupérer les messages plus anciens. |
Exemple de demande
curl -G 'https://api.smsmobileapi.com/telegram/sent/' \
-H 'X-SMSMobileAPI-Key: YOUR_API_KEY' \
--data-urlencode 'message_id=123'
Exemple de réponse
{"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}}
Vous souhaitez exécuter cette requête ?Connectez votre clé API en haut de la page pour déverrouiller le testeur interactif.
Clé de connexion ↑- 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 signifie que Telegram a accepté le message depuis le compte connecté ; la délivrance au destinataire et les accusés de lecture ne sont pas signalés.
- unknown signifie que l'issue de l'envoi n'a pas pu être confirmée. Ne renvoyez pas aveuglément un message dans cet état.
OBTENIR
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.
Paramètres
| Nom | Taper | Exigence | Désignation des marchandises |
|---|---|---|---|
message_id |
entier | Requis | Message ID returned by /telegram/send/. |
Exemple de demande
curl -L 'https://api.smsmobileapi.com/telegram/media/?message_id=124' \
-H 'X-SMSMobileAPI-Key: YOUR_API_KEY' \
-o attachment
Exemple de réponse
Binary image or document bytes (Content-Type matches the file)
Vous souhaitez exécuter cette requête ?Connectez votre clé API en haut de la page pour déverrouiller le testeur interactif.
Clé de connexion ↑- 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.
Dépannage
Erreurs et tentatives sécurisées
Lisez l'état HTTP et le champ d'erreur JSON avant de réessayer. Ne réessayez pas les échecs de validation ou d'authentification sans d'abord corriger la demande.
| HTTP | Code | Que faire |
|---|---|---|
| 401 | api_key_required / invalid_api_key | Envoyez un en-tête X-SMSMobileAPI-Key valide. |
| 402 | subscription_expired | Renew the SMSMobileAPI subscription linked to the API key. Telegram API access resumes after renewal. |
| 403 | API_ENDPOINT_DISABLED | Activez le Telegram API ou ce point de terminaison spécifique dans My API Key. |
| 404 | contact_not_found | Synchronisez les contacts et utilisez un ID provenant de votre propre connexion Telegram. |
| 409 | telegram_not_connected / idempotency_conflict | Connecter Telegram ou choisir une nouvelle clé d'idempotence si le contenu a changé. |
| 422 | invalid_message / invalid_pagination | Corrigez le message, l'ID du contact ou les paramètres de pagination. |
| 429 | queue_full / rate_limited | Attendez que les envois en file d'attente ou la limite par minute se libèrent. |
| 503 | sending_unavailable / service_unavailable | Le worker d'envoi ou le stockage est temporairement indisponible ; réessayez plus tard. |
| 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. |
Besoin d'aide ?
Apportez le contexte de la requête, pas vos secrets.
Partagez le point de terminaison, l'horodatage, l'état HTTP et la réponse nettoyée. N'incluez jamais de clés API, de jetons ou de contenu de message privé.
Application mobile officielle
Le pont sécurisé entre votre téléphone, votre tableau de bord et votre API.
Les opérations SMS et appels passent par l'application officielle SMSMobileAPI installée sur votre téléphone connecté. L'application associe en toute sécurité l'appareil à votre compte, synchronise les événements autorisés et relie le réseau mobile au tableau de bord et à l'API REST.
- Communications signées distribuées via les listes officielles de Google Play et Apple App Store
- Contrôles d'examen, de signature et de distribution des plateformes Google et Apple
- Couplage sécurisé des appareils, transport HTTPS et accès API authentifié
- Uniquement les autorisations requises pour les fonctionnalités mobiles que vous activez


