ACloud SMS API

רפרנס API

API צד־שרת לניהול מספרי SMS וירטואליים: קבלת הודעות, צפייה במספרים, ניהול שולחים, בדיקת קרדיטים ושליחת SMS.

Base URLhttps://app.aharon.cloud/api/v1AuthBearer tokenFormatJSON

התחלה מהירה

משתמשים במפתח גישה מסוג server מתוך הגדרות החשבון. אין לחשוף את המפתח בקוד צד־לקוח.

curl \
  --request GET \
  --url "https://app.aharon.cloud/api/v1/messages" \
  --header "Authorization: Bearer ACCESS_KEY_HERE" \
  --header "Accept: application/json"

אימות

HeaderAuthorization
ValueBearer ACCESS_KEY_HERE
Token typeserver
Failure401 missing_bearer_token / 401 invalid_token

מודל תגובה

הצלחה

{
  "ok": true
}

שגיאה

{
  "ok": false,
  "error": "invalid_token",
  "message": "Bad request"
}
StatusErrorמשמעות
400bad_request, missing_senderקלט לא תקין או שדה חסר.
401missing_bearer_token, invalid_tokenהמפתח חסר, בוטל או אינו תקין.
402insufficient_creditsאין מספיק קרדיטים לשליחה.
423sms_sending_closed_weekendשליחה סגורה בחלון סוף השבוע שהוגדר.
429too_many_recipientsיותר מדי נמענים או מגבלת קצב.
502provider_send_failedספק השליחה החזיר כישלון.
503sms_sending_not_enabledשליחה לא פעילה.
GET

/me

מחזיר את החשבון המאומת ואת יתרת הקרדיטים הנוכחית.

{
  "ok": true,
  "user": {
    "id": 123,
    "email": "customer@example.com",
    "token_id": 77,
    "token_type": "server",
    "sms_credits": 1000
  }
}
GET

/numbers

מציג מספרים וירטואליים שמשויכים לחשבון המאומת.

{
  "ok": true,
  "numbers": [
    {
      "id": 12,
      "number_raw": "0500000000",
      "label": "Main",
      "status": "assigned"
    }
  ]
}
GET

/messages

מחזיר את 100 ההודעות הנכנסות האחרונות, מהחדש לישן.

שדהTypeתיאור
idnumberמזהה הודעה.
virtual_number_idnumberמזהה המספר שקיבל את ההודעה.
from_rawstringהשולח המקורי.
to_rawstringמספר היעד.
bodystringתוכן ההודעה.
provider_received_atdatetimeזמן קבלה אצל הספק.
{
  "ok": true,
  "messages": [
    {
      "id": 991,
      "virtual_number_id": 12,
      "from_raw": "Google",
      "from_normalized": "Google",
      "from_type": "text",
      "to_raw": "0500000000",
      "body": "Your code is 123456",
      "provider_received_at": "2026-07-05 13:45:00",
      "first_seen_at": "2026-07-05 13:45:02"
    }
  ]
}
GET

/messages/{id}

מחזיר הודעה אחת לפי מזהה, רק אם היא שייכת לחשבון המאומת.

Pathid — מזהה הודעה חובה.
{
  "ok": true,
  "message": {
    "id": 991,
    "virtual_number_id": 12,
    "from_raw": "Google",
    "body": "Your code is 123456"
  }
}
{
  "ok": false,
  "error": "not_found"
}
GET

/sms/credits

מחזיר את יתרת הקרדיטים הנוכחית לשליחת SMS.

{
  "ok": true,
  "sms_credits": 1000
}
POST

/senders/state

מסמן שולח כספאם או כחסום.

BodyRequiredהערות
sender / fromYesמזהה השולח.
stateNospam / blocked
virtual_number_idNoשיוך אופציונלי למספר.
{
  "sender": "0520000000",
  "state": "spam",
  "virtual_number_id": 12
}
{
  "ok": true,
  "result": {
    "state": "spam"
  }
}
POST

/senders/block

נקודת קיצור לחסימת שולח.

{
  "sender": "0520000000",
  "virtual_number_id": 12
}
{
  "ok": true,
  "blocked": true,
  "result": {
    "state": "blocked"
  }
}
POST

/sms/send

שולח SMS ממספר וירטואלי משויך. החיוב מחושב לפי נמענים ומקטעי הודעה.

BodyRequiredהערות
fromYesמספר שולח משויך.
messageYesטקסט הודעה.
phones / toYesנמענים מופרדים בנקודתיים, פסיק או שורה חדשה.
flashNoבוליאני: flash/sendFlashMessage/send_flash.
curl \
  --request POST \
  --url "https://app.aharon.cloud/api/v1/sms/send" \
  --header "Authorization: Bearer ACCESS_KEY_HERE" \
  --header "Content-Type: application/json" \
  --data '{
    "from": "0500000000",
    "to": "0520000000",
    "message": "Your code is 123456"
  }'
{
  "ok": true,
  "sms": {
    "outbound_message_id": 456,
    "provider_status": "OK",
    "recipients_count": 1,
    "segments": 1,
    "credits_used": 1,
    "balance_after": 999,
    "flash": false
  }
}

Webhook

ניתן להגדיר כתובת HTTPS ציבורית לכל מספר כדי לקבל אירועי SMS נכנסים.

{
  "event": "sms.received",
  "to": "0500000000",
  "from": "Google",
  "body": "Your code is 123456",
  "received_at": "2026-07-05 13:45:00"
}
X-SMS-Timestamp: 1782395100
X-SMS-Signature: sha256=...
HMAC_SHA256(webhook_secret, timestamp + "." + rawBody)

דוגמאות

curl

curl \
  --request GET \
  --url "https://app.aharon.cloud/api/v1/messages" \
  --header "Authorization: Bearer ACCESS_KEY_HERE" \
  --header "Accept: application/json"

Node.js

const response = await fetch('https://app.aharon.cloud/api/v1/messages', {
  method: 'GET',
  headers: {
    Authorization: 'Bearer ACCESS_KEY_HERE',
    Accept: 'application/json'
  }
});

const data = await response.json();
console.log(data);

Python

import requests

response = requests.get(
    'https://app.aharon.cloud/api/v1/messages',
    headers={
        'Authorization': 'Bearer ACCESS_KEY_HERE',
        'Accept': 'application/json'
    },
    timeout=20
)

print(response.json())