SMS IA API

v2.0.0

Chatbot IA conversationnel par SMS via modems GSM locaux. Envoi/réception de SMS, conversations contextuelles avec IA, quotas par plan utilisateur.

Base URL : https://sms-ia.s33d.fr

🤖 Comment ça marche ?

📱
1. Envoyez un SMS
Écrivez votre question ou demande au numéro du service
🧠
2. L'IA répond
Notre IA analyse votre message et génère une réponse contextuelle
💬
3. Recevez par SMS
La réponse arrive directement sur votre téléphone, sans app

Le service conserve le contexte de la conversation. Chaque numéro a son propre historique.

Authentification

L'API REST d'administration utilise une clé dans le header Authorization :

# Avec curl
curl -H "Authorization: Bearer VOTRE_ADMIN_KEY" \
https://sms-ia.s33d.fr/health

Le chatbot SMS identifie les utilisateurs par leur numéro de téléphone associé au compte Portal.

Quotas par plan

Les échanges SMS avec le chatbot sont limités selon le plan de l'utilisateur Portal.

Free
5 messages/jour
Pro
50 messages/jour
Enterprise
500 messages/jour

POST /api/v1/sms/send

Envoie un SMS via les modems GSM locaux.

Paramètres (JSON body)

Paramètre Type Requis Description
to string oui Numéro destinataire (format national ou international)
body string oui Corps du message (pas de limite de caractères)
sender string non Préfixe d'expéditeur (défaut: "[S33D]")

Exemple

curl -X POST https://sms-ia.s33d.fr/api/v1/sms/send \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer VOTRE_CLÉ" \
  -d '{
    "to": "+33612345678",
    "body": "Bonjour depuis S33D SMS Local !"
  }'

Réponse

{
  "success": true,
  "providerMessageId": "sms_a1b2c3d4",
  "to": "+33612345678",
  "sender": "[S33D]",
  "segments": 1,
  "status": "sent",
  "portUsed": "COM3"
}

GET /api/v1/chatbot/status

Retourne l'état du chatbot IA (actif, nombre de conversations, quotas).

Réponse

{
  "enabled": true,
  "running": true,
  "pollInterval": 5,
  "quotas": {"free": 5, "pro": 50, "enterprise": 500},
  "activeConversations": {"+33612345678": 12}
}

POST /api/v1/chatbot/toggle

Démarre ou arrête la boucle du chatbot. Si le chatbot est actif, il s'arrête ; sinon, il démarre.

Réponse

{"status": "started"}

GET /api/v1/chatbot/conversations/{phone}

Retourne l'historique de conversation avec un numéro de téléphone.

Réponse

[
  {"role": "user", "content": "Quelle est la capitale du Japon ?", "timestamp": 1717200000.0},
  {"role": "assistant", "content": "La capitale du Japon est Tokyo.", "timestamp": 1717200003.5}
]

DELETE /api/v1/chatbot/conversations/{phone}

Efface l'historique de conversation pour un numéro donné.

GET /api/v1/modems

Liste les modems GSM détectés avec leur état, signal et opérateur.

Réponse

[
  {
    "port": "COM3",
    "available": true,
    "signalStrength": 22,
    "operator": "Free"
  }
]

GET /health

Health check (sans authentification).

{
  "status": "ok",
  "modemsAvailable": 2,
  "modems": [...]
}

🚀 Exemples d'intégration

🐍 Python

import requests
 
resp = requests.post(
  "https://sms-ia.s33d.fr/api/v1/sms/send",
  headers={"Authorization": "Bearer KEY"},
  json={
    "to": "+33612345678",
    "body": "Bonjour !"
  }
)
print(resp.json())

📦 JavaScript

const res = await fetch(
  "https://sms-ia.s33d.fr/api/v1/sms/send",
  {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${KEY}`,
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      to: "+33612345678",
      body: "Bonjour !"
    })
  }
);
console.log(await res.json());