Une API SMS gratuite, avec votre téléphone Android
Codes de vérification, alertes, confirmations de commande, rappels automatiques : votre site, votre CRM ou un simple script envoie une requête HTTP, et votre téléphone Android envoie le SMS avec sa carte SIM. Pas de crédits, pas d’abonnement, pas de numéro à louer.
Comment ça marche
L’appli SendSMSforFree transforme le téléphone en passerelle SMS : elle reçoit les demandes d’envoi par HTTP, les met en file, les envoie au rythme autorisé par Android et note le résultat de chaque SMS. Deux façons de l’appeler :
- Sur le même Wi-Fi : directement à l’adresse du téléphone, par exemple
http://192.168.1.42:8080. Rien ne passe par Internet. - Par Internet : activez Accès par Internet (API) dans l’appli. Le téléphone se connecte lui-même au relais SendSMSforFree, en HTTPS ; aucun port à ouvrir chez vous. L’appli affiche un lien d’envoi prêt à copier.
Chaque téléphone a sa propre clé API, visible dans l’appli et dans la page API de l’interface web.
Exemples
Remplacez ADRESSE par l’adresse donnée par l’appli et VOTRE_CLE par la clé API du téléphone.
curl
curl -X POST ADRESSE/api/v1/messages \
-H "Authorization: Bearer VOTRE_CLE" \
-H "Content-Type: application/json" \
-d '{"to": "+33612345678", "text": "Votre code de vérification : 482913"}'
En une seule URL
Pour un outil qui ne sait faire que des liens ou des requêtes GET (automate, bouton, webhook simple) :
ADRESSE/api/v1/send?key=VOTRE_CLE&to=%2B33612345678&text=Bonjour
Python
import requests
requests.post("ADRESSE/api/v1/messages",
headers={"Authorization": "Bearer VOTRE_CLE"},
json={"to": "+33612345678", "text": "Votre commande est prête."})
Node.js (côté serveur)
await fetch(`${process.env.SENDSMS_URL}/api/v1/messages`, {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.SENDSMS_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ to: '+33612345678', text: 'Rappel : rendez-vous demain à 9 h.' }),
});
Envoi en masse
curl -X POST ADRESSE/api/v1/batches \
-H "Authorization: Bearer VOTRE_CLE" -H "Content-Type: application/json" \
-d '{
"text": "Bonjour {nom}, RDV le {date}.",
"recipients": [
{"to": "+33612345678", "name": "Marie", "variables": {"date": "lundi 6"}},
{"to": "+33698765432", "name": "Paul", "variables": {"date": "mardi 7"}}
]
}'
Ce que fait l’API
| Route | Usage |
|---|---|
POST /api/v1/messages | Envoyer un SMS : texte ou modèle, variables, SIM, date d’envoi programmée. |
GET /api/v1/send | Le même envoi en une seule URL. |
GET /api/v1/messages/:id | Statut d’un SMS : en attente, envoyé, reçu ou échec avec la raison. |
POST /api/v1/batches | Envoi en masse, jusqu’à 10 000 destinataires par lot. |
GET /api/v1/messages | Historique, avec recherche et filtre par statut. |
/api/v1/templates | Modèles de messages réutilisables. |
Les numéros sont nettoyés automatiquement (espaces, points, 00 → +) et complétés avec l’indicatif réglé dans l’appli.
Les erreurs sont renvoyées en JSON avec un code explicite (invalid_phone, device_offline…).
Limites et bonnes pratiques
- Débit : Android autorise environ 30 SMS par tranche de 30 minutes à une appli. Les envois en trop attendent dans la file ; sur un téléphone dédié, la limite peut être relevée.
- Clé API : gardez-la côté serveur. Ne la mettez jamais dans le code d’une page web publique.
- Téléphone : laissez-le branché et connecté. Sur certaines marques, autorisez l’appli à fonctionner en arrière-plan.
- Wi-Fi local : l’appel direct au téléphone se fait en HTTP non chiffré, à réserver à un réseau de confiance. Par Internet, passez par le relais en HTTPS.
Questions fréquentes
L’API est-elle vraiment gratuite ?
Oui. Il n’y a ni crédits ni abonnement : les SMS partent de la carte SIM de votre téléphone et sont décomptés de votre forfait.
Quel débit puis-je attendre ?
Celui d’un téléphone : environ 30 SMS par tranche de 30 minutes avec la limite par défaut d’Android, davantage sur un téléphone dédié dont la limite a été relevée. L’API met les messages en file et les envoie au rythme autorisé.
Faut-il ouvrir un port sur ma box ?
Non. Sur le même Wi-Fi, vous appelez directement le téléphone. Par Internet, c’est le téléphone qui se connecte au relais SendSMSforFree : aucun port à ouvrir, aucune adresse IP fixe nécessaire.
Puis-je appeler l’API depuis le navigateur ?
Pour un outil interne, oui. Sur un site public, appelez l’API depuis votre serveur : la clé API ne doit jamais apparaître dans une page web.