๐Ÿ“– SANYA API v1

RESTful API ya kutuma SMS kutoka kwa app yako mwenyewe. JSON in/out, Basic auth.

๐Ÿš€ API ni BURE โ€” unalipa SMS tu (kwa retail price). Hakuna setup fee, hakuna access fee.
Sajili bure โ†’ Tengeneza API key โ†’ Anza kutuma.

๐Ÿ” Authentication

Tumia HTTP Basic Auth โ€” api_key:secret base64-encoded:

Authorization: Basic <base64(api_key:secret)>
Content-Type: application/json

Pata API key kwenye /api/keys dashboard.

๐Ÿ“ค Send SMS

POSThttps://app.sanya.tz/api/v1/sms/send

Request body:

{
  "to": ["255712345678", "255713456789"],
  "message": "Habari, ujumbe wenu...",
  "sender_id": "SANYA"
}

Response:

{
  "ok": true,
  "sent": 2,
  "failed": 0,
  "balance_remaining": 4998,
  "results": [
    {"to": "255712345678", "status": "sent", "units": 1},
    {"to": "255713456789", "status": "sent", "units": 1}
  ]
}

cURL Example:

curl -X POST https://app.sanya.tz/api/v1/sms/send \
  -u "your_api_key:your_secret" \
  -H "Content-Type: application/json" \
  -d '{
    "to": ["255712345678"],
    "message": "Habari mteja!"
  }'

PHP Example:

$ch = curl_init('https://app.sanya.tz/api/v1/sms/send');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => json_encode([
        'to'      => '255712345678',
        'message' => 'Habari mteja!',
    ]),
    CURLOPT_HTTPHEADER     => [
        'Content-Type: application/json',
        'Authorization: Basic ' . base64_encode('your_api_key:your_secret'),
    ],
    CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);

๐Ÿ’ฐ Check Balance

GEThttps://app.sanya.tz/api/v1/sms/balance

Response:

{
  "ok": true,
  "balance": 4998,
  "plan": "free",
  "daily_limit": 1000,
  "daily_used": 12,
  "daily_remaining": 988,
  "sender_id": "SANYA"
}

๐Ÿ“‹ List Messages

GEThttps://app.sanya.tz/api/v1/sms/messages?limit=50&offset=0&status=sent

Returns recent SMS messages za API key yako (au za user kwa ujumla).

๐Ÿ“ก List Sender IDs

GEThttps://app.sanya.tz/api/v1/sender-ids

Onyesha sender IDs zinazokubalika kwako (public + zako exclusive).

๐Ÿ“Š Daily Limits per Plan

PlanDaily limitNotes
Free1,000 SMS/sikuBure, anza haraka
Basic10,000 SMS/sikuTZS 10K/mwezi
Pro100,000 SMS/sikuTZS 50K/mwezi + 500 SMS bonus

โš ๏ธ Error Codes

HTTPErrorMaana
400missing_toField "to" haijatumwa
400invalid_jsonBody sio JSON sahihi
401unauthorizedAPI key au secret si sahihi
403account_disabledAkaunti yako imezimwa
403invalid_sender_idSender ID haitumiki kwako