AxiomText

Documentation

Official Documentation of the Axiom TEXT API

Official Documentation of the Axiom TEXT API

Integrate our SMS service into your applications in minutes

Quick Start

Get your API key

To use the SMS API, you first need to get an API key. Follow these steps:

  1. Log in to your dashboard
  2. Go to "Settings" section
  3. Go to "API" section
  4. Click on "Generate token"
  5. Important Copy your token immediately as it won't be visible later

Authentication

All API requests must include your authentication token in the HTTP header.

Authentication Header

bash
Authorization: Bearer votre_token_ici

Request Limits

The API has a limit of 1000 requests per hour, per:

bash
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: nombre_restant
X-RateLimit-Reset: timestamp_reset
Retry-After: secondes_avant_prochain_essai # (uniquement si limite dépassée)

Messages

Signatures Disponibles

Nouveau ! Vous n'avez plus besoin d'attendre la validation de votre nom d'entreprise pour commencer à envoyer des SMS. Deux signatures sont disponibles immédiatement dès votre inscription :

OTP

Parfait pour l'envoi de codes de vérification OTP

json
"signature": "OTP"

SERVICE SMS

Idéal pour les messages de service et notifications

json
"signature": "SERVICE SMS"

Note importante : Une fois votre nom d'entreprise validé, vous pourrez également utiliser votre signature personnalisée. En attendant, utilisez "OTP" ou "SERVICE SMS" dans le paramètre signature.

Send SMS

Send SMS to your users with a custom signature. National SMS (within Senegal) costs 1 credit per message, deducted from the user's balance. International SMS costs 3 credits per message.

Endpoint

bash
POST /api/sms/message

Parameters

json
{
  "to": "+221xxxxxxxxx",
  "message": "Votre message",
  "signature": "OTP" // Optionnel: "OTP", "SERVICE SMS" ou votre nom d'entreprise validé
}

Signatures disponibles : "OTP", "SERVICE SMS" (disponibles immédiatement) ou votre nom d'entreprise (une fois validé)

Code Examples

bash
curl -X POST https://api.axiomtext.com/api/sms/message \
  -H "Authorization: Bearer votre_token_api" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+221xxxxxxxxx",
    "message": "Votre message",
    "signature": "OTP"
  }'

Responses

Status: 200
json
{
  "success": true,
  "message": "SMS envoyé avec succès",
  "data": {
    "messageId": "123456789",
    "remainingCredits": 999,
    "cost": 1,
    "status": "sent"
  }
}
Status: 400
json
{
  "error": "Numéro de téléphone et message requis",
  "status": 400
}
Status: 403
json
{
  "error": "Crédits SMS insuffisants",
  "status": 403
}

Send OTP

Send an OTP code to a phone number for verification. National SMS (within Senegal) costs 1 credit per message, deducted from the user's balance. International SMS costs 3 credits per message.

Endpoint

bash
POST /api/sms/otp/send

Parameters

json
{
  "phone": "+221xxxxxxxxx",
  "signature": "OTP" // Optionnel: "OTP", "SERVICE SMS" ou votre nom d'entreprise validé
}

Signatures disponibles : "OTP", "SERVICE SMS" (disponibles immédiatement) ou votre nom d'entreprise (une fois validé)

Code Examples

bash
curl -X POST https://api.axiomtext.com/api/sms/otp/send \
  -H "Authorization: Bearer votre_token_api" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "+221xxxxxxxxx",
    "signature": "OTP"
  }'

Responses

Status: 200
json
{
  "success": true,
  "message": "Code OTP envoyé avec succès",
  "remainingCredits": 999
}
Status: 400
json
{
  "error": "Numéro de téléphone requis",
  "status": 400
}
Status: 403
json
{
  "error": "Solde insuffisant",
  "status": 403
}

Verify OTP

Verify if the OTP code entered by the user is correct.

Endpoint

bash
POST /api/sms/otp/verify

Parameters

json
{
  "phone": "+221xxxxxxxxx",
  "code": "123456"
}

Code Examples

bash
curl -X POST https://api.axiomtext.com/api/sms/otp/verify \
  -H "Authorization: Bearer votre_token_api" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "+221xxxxxxxxx",
    "code": "123456"
  }'

Responses

Status: 200
json
{
  "success": true,
  "message": "Code OTP vérifié avec succès"
}
Status: 400
json
{
  "error": "Code OTP expiré ou invalide",
  "status": 400
}
Status: 400
json
{
  "error": "Code OTP incorrect",
  "status": 400
}

Errors

Common Error Codes

Status: 401
json
{
  "error": "Token d'authentification manquant"
}
Status: 429
json
{
  "error": "Limite de requêtes dépassée pour cette IP"
}
Status: 403
json
{
  "error": "Crédits SMS insuffisants"
}

Rate Limits

General Limits

  • IP Address
  • User (API token)
  • Limits reset every hour

OTP Codes

  • Validity: 1 minute
  • Format: 6 digits
  • Only one active code per number

Rate Limit Headers

Each response includes headers to track your usage:

json
{
  "X-RateLimit-Limit": "1000",
  "X-RateLimit-Remaining": "999",
  "X-RateLimit-Reset": "1625097600000",
  "Retry-After": "3600" // Uniquement si limite dépassée
}