API טלפוניה חזק למפתחים ולמערכות AI

הקצו מספרים וירטואליים, הגדירו ניתוב שיחות נכנסות, שלחו SMS דרך הרשת שלנו, ונהלו העברת SMS נכנס. ה-API המרכזי לניהול חשבון/מספרים משתמש בקריאות POST מתועדות, בעוד שליחת SMS משתמשת ב-API נפרד מסוג HTTP GET.

כל מה שצריך כדי לבנות מעל קול ו-SMS

ממשקי API מתועדים ב-Postman לניהול חשבון, דוחות שיחות (CDR), מספרים (DID) והגדרות SMS, בנוסף ל-API נפרד לשליחת SMS יוצא מסוג GET.

#

API להקצאת מספרים

חפשו מספרים (DID) זמינים, שייכו מספר לחשבון שלכם, הציגו רשימת מספרים שנרכשו, שחררו מספרים, והגדירו את יעד ההעברה שלהם באופן פרוגרמטי.

SMS

API ל-SMS

שלחו SMS יוצא דרך הרשת שלנו באמצעות API נפרד מסוג HTTP GET. הגדירו העברת SMS נכנס למספר SMS אחר, לכתובת אימייל, או ל-webhook דרך ה-API.

CALL

API לניתוב מספרים (DID)

הגדירו העברה עבור מספרים שנרכשו. קריאת ההעברה המתועדת תומכת ב-call_type וב-call_type_value; הדוגמה ב-API מציגה העברה לכתובת IP של טראנק.

WH

API לחשבון ולשימוש

התחברו דרך קריאת ה-Login, שלפו את היסטוריית החיובים של החשבון, ובקשו דוחות CDR לטווח תאריכים נבחר. דוחות CDR נשלחים לכתובת האימייל הרשומה בחשבון כקובץ Excel בתוך קובץ ZIP מצורף. ערכי האימות שמוחזרים מ-Login משמשים גם בבקשות הבאות.

API

ניתוב SMS ל-Webhook חדש

נתבו SMS נכנס לנקודת קצה (endpoint) משלכם. ניתוב SMS ל-webhook פועל במלואו וניתן להגדרה פרוגרמטית דרך /api/sms באמצעות webhook_url. ניתן להגדיר את אותו יעד גם דרך פורטל החשבון תחת סוג העברה ← API.

 

שליחת SMS וניתוב Webhook

1. שליחת SMS דרך API של HTTP: ניתן לשלוח SMS יוצא דרך רשת Israelnumber באמצעות נקודת קצה נפרדת מסוג HTTP GET שאינה כלולה כרגע באוסף ה-Postman. יכולת זו מתועדת כחלק מפורטל ה-SMS של המשתמש. מטעמי אבטחה, יש להוסיף תחילה את כתובת ה-IP של המקור לרשימת ההיתרים תחת החשבון שלי ← הגדרות IP.

בקשה: https://api.israelnumber.com/astppsend-sms?username={username}&password={password}&destination={destination}&callerid={CallerID}&message={message_body}&sms=1&whatsapp=0

2. ניתוב SMS ל-Webhook: ניתן להעביר SMS נכנס לנקודת הקצה שלכם, ואת היעד ניתן להגדיר פרוגרמטית דרך /api/sms באמצעות השדה webhook_url. אותה הגדרה זמינה גם בפורטל החשבון תחת סוג העברה ← API.

תבנית כתובת Webhook: https://example.com/api?from={CallerID}&text={SMS_TEXT}&to={SMS_DST_ADDR}

אימות ותבנית הבקשה

לפני השימוש ב-API, יש להוסיף את כתובת ה-IP של השרת השולח את הבקשות לרשימת ההיתרים בפורטל החשבון של המשתמש. לכל חשבון יש שם משתמש וסיסמה ייחודיים משלו, אשר נשלחים בבקשת ה-Login הראשונית.

מסמך ה-Postman שסופק מתעד בקשות POST עם גופי בקשה בפורמט JSON וכותרת בקשה מסוג x-auth-token. עבור קריאת ה-Login הראשונית, יש להשתמש בערך ה-x-auth-token הקבוע המסופק בתיעוד ה-Postman יחד עם שם המשתמש והסיסמה של החשבון. Login מוצלח מחזיר את ה-id של החשבון, את ה-account_token, ו-x-auth-token חדש עבור ה-session. יש להשתמש ב-x-auth-token של ה-session שהוחזר בכותרת הבקשה עבור כל הקריאות הבאות באותו session, בעוד ה-id וה-account_token שהוחזרו נשלחים בגוף הבקשה כערכי ה-id וה-token המתועדים.

חשוב: גם ה-API הנפרד לשליחת SMS יוצא (GET) דורש שכתובת ה-IP של השרת השולח תהיה ברשימת ההיתרים, ומשתמש בשם המשתמש/סיסמה של החשבון ולא בתהליך ה-Login/session-token.

דוגמאות קוד להתחלה מהירה

קודם כול הוסיפו את כתובת ה-IP של השרת השולח לרשימת ההיתרים. השתמשו ב-x-auth-token הקבוע מתיעוד ה-Postman רק עבור בקשת ה-Login הראשונית יחד עם שם המשתמש/סיסמה של החשבון. Login מחזיר את ה-id של החשבון, את ה-account_token, ו-x-auth-token חדש עבור ה-session. השתמשו ב-x-auth-token של ה-session בכותרת הקריאות הבאות, והשתמשו ב-id וב-account_token שהוחזרו בגופי הבקשה בהתאם לדרישות כל נקודת קצה.

# מבוסס על תיעוד ה-API שסופק.
# הוסיפו תחילה את כתובת ה-IP של השרת שלכם לרשימת ההיתרים. השתמשו ב-x-auth-token הקבוע מתיעוד ה-Postman עבור Login.

import requests

INITIAL_HEADERS = {
    "x-auth-token": "YOUR_INITIAL_X_AUTH_TOKEN",
    "Content-Type": "application/json"
}

# שלב 1 — התחברות (Login) עם ה-x-auth-token הקבוע
login = requests.post(
    "https://newsip.israelnumber.com/api/login/",
    headers=INITIAL_HEADERS,
    json={
        "username": "YOUR_ACCOUNT_NUMBER",
        "password": "YOUR_PASSWORD"
    }
)
login.raise_for_status()

login_data = login.json()
account_id = login_data["id"]
token = login_data["account_token"]
session_x_auth_token = login_data["x-auth-token"]

# שימוש ב-x-auth-token של ה-session שהוחזר לאחר ה-Login
SESSION_HEADERS = {
    "x-auth-token": session_x_auth_token,
    "Content-Type": "application/json"
}

# שלב 2 — הצגת רשימת מספרים (DID) זמינים
# country_id הוא מזהה מדינה מספרי אופציונלי, המסופק בהפניה לרשימת המדינות.
available = requests.post(
    "https://newsip.israelnumber.com/customer/did_crud/",
    headers=SESSION_HEADERS,
    json={
        "action": "available_list",
        "parent_id": "0",
        "country_id": "YOUR_COUNTRY_ID",
        "id": account_id,
        "token": token
    }
)
available_data = available.json()

# שלב 3 — שיוך מספר (DID)
# did_id מגיע מתגובת רשימת המספרים הזמינים.
order = requests.post(
    "https://newsip.israelnumber.com/customer/did_management/",
    headers=SESSION_HEADERS,
    json={
        "action": "assign",
        "did_id": "YOUR_DID_ID",
        "accountid": account_id,
        "reseller_id": "0",
        "id": account_id,
        "token": token
    }
)
print(order.json())

# שלב 4 — הגדרת העברה למספר (DID)
# דוגמת התייחסות: call_type=2, call_type_value=כתובת ה-IP של הטראנק שלכם.
forwarding = requests.post(
    "https://newsip.israelnumber.com/customer/did_management/",
    headers=SESSION_HEADERS,
    json={
        "action": "forward",
        "did_id": "YOUR_PURCHASED_DID_ID",
        "call_type": "2",
        "call_type_value": "YOUR_TRUNK_IP",
        "always": "5",
        "user_busy": "5",
        "user_not_registered": "5",
        "no_answer": "5",
        "extensions": "",
        "call_type_vm_flag": "",
        "always_destination": "",
        "always_vm_flag": "",
        "user_busy_destination": "",
        "user_busy_vm_flag": "",
        "user_not_registered_destination": "",
        "user_not_registered_vm_flag": "",
        "no_answer_destination": "",
        "no_answer_vm_flag": "",
        "id": account_id,
        "token": token
    }
)
print(forwarding.json())

# שלב 5 — הגדרת העברת SMS נכנס ל-webhook
sms_webhook = requests.post(
    "https://newsip.israelnumber.com/api/sms",
    headers=SESSION_HEADERS,
    json={
        "action": "add",
        "id": account_id,
        "token": token,
        "did": "YOUR_SMS_ENABLED_DID",
        "webhook_url": "https://example.com/api?from={CallerID}&text={SMS_TEXT}&to={SMS_DST_ADDR}"
    }
)
print("SMS webhook status:", sms_webhook.status_code)
if sms_webhook.content:
    try:
        print("SMS webhook response:", sms_webhook.json())
    except ValueError:
        print("SMS webhook response:", sms_webhook.text)
// Node.js 18+ (fetch מובנה)
// מבוסס על תיעוד ה-API שסופק.

const INITIAL_HEADERS = {
  "x-auth-token": "YOUR_INITIAL_X_AUTH_TOKEN",
  "Content-Type": "application/json"
};

async function post(url, body, headers) {
  const res = await fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body)
  });
  return res.json();
}

async function login(username, password) {
  return post(
    "https://newsip.israelnumber.com/api/login/",
    { username, password },
    INITIAL_HEADERS
  );
}

async function getAvailableDIDs(id, token, countryId, headers) {
  return post("https://newsip.israelnumber.com/customer/did_crud/", {
    action: "available_list",
    parent_id: "0",
    country_id: countryId,
    id,
    token
  }, headers);
}

async function getPurchasedDIDs(id, token, headers) {
  return post("https://newsip.israelnumber.com/customer/did_crud/", {
    action: "purchase_list",
    id,
    token
  }, headers);
}

async function addSmsWebhook(id, token, did, webhookUrl, headers) {
  const res = await fetch("https://newsip.israelnumber.com/api/sms", {
    method: "POST",
    headers,
    body: JSON.stringify({
      action: "add",
      id,
      token,
      did,
      webhook_url: webhookUrl
    })
  });
  const text = await res.text();
  let response = text;
  if (text) {
    try { response = JSON.parse(text); } catch (e) {}
  }
  return { status: res.status, response };
}

(async () => {
  const auth = await login("YOUR_ACCOUNT_NUMBER", "YOUR_PASSWORD");
  const accountId = auth.id;
  const token = auth.account_token;
  const sessionXAuthToken = auth["x-auth-token"];

  const SESSION_HEADERS = {
    "x-auth-token": sessionXAuthToken,
    "Content-Type": "application/json"
  };

  // countryId הוא מזהה מדינה מספרי אופציונלי, המסופק בהפניה לרשימת המדינות.
  const available = await getAvailableDIDs(
    accountId,
    token,
    "YOUR_COUNTRY_ID",
    SESSION_HEADERS
  );
  console.log(available);

  const purchased = await getPurchasedDIDs(accountId, token, SESSION_HEADERS);
  console.log(purchased);

  const smsWebhook = await addSmsWebhook(
    accountId,
    token,
    "YOUR_SMS_ENABLED_DID",
    "https://example.com/api?from={CallerID}&text={SMS_TEXT}&to={SMS_DST_ADDR}",
    SESSION_HEADERS
  );
  console.log("SMS webhook result:", smsWebhook);
})();
# שלב 1 — התחברות (Login) עם ה-x-auth-token הקבוע
LOGIN_RESPONSE=$(curl -s -X POST "https://newsip.israelnumber.com/api/login/" \
  -H "x-auth-token: YOUR_INITIAL_X_AUTH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "username":"YOUR_ACCOUNT_NUMBER",
    "password":"YOUR_PASSWORD"
  }')

# חילוץ הערכים שהוחזרו מ-Login.
# דורש jq: https://jqlang.org/
ACCOUNT_ID=$(printf '%s' "$LOGIN_RESPONSE" | jq -r '.id')
ACCOUNT_TOKEN=$(printf '%s' "$LOGIN_RESPONSE" | jq -r '.account_token')
SESSION_X_AUTH_TOKEN=$(printf '%s' "$LOGIN_RESPONSE" | jq -r '."x-auth-token"')

# שלב 2 — הצגת רשימת מספרים (DID) זמינים באמצעות x-auth-token של ה-session
curl -s -X POST "https://newsip.israelnumber.com/customer/did_crud/" \
  -H "x-auth-token: $SESSION_X_AUTH_TOKEN" \
  -H "Content-Type: application/json" \
  -d "{
    \"action\":\"available_list\",
    \"parent_id\":\"0\",
    \"country_id\":\"YOUR_COUNTRY_ID\",
    \"id\":\"$ACCOUNT_ID\",
    \"token\":\"$ACCOUNT_TOKEN\"
  }"

# שלב 3 — הצגת רשימת מספרים שנרכשו
curl -s -X POST "https://newsip.israelnumber.com/customer/did_crud/" \
  -H "x-auth-token: $SESSION_X_AUTH_TOKEN" \
  -H "Content-Type: application/json" \
  -d "{
    \"action\":\"purchase_list\",
    \"id\":\"$ACCOUNT_ID\",
    \"token\":\"$ACCOUNT_TOKEN\"
  }"

# שלב 4 — שחרור מספר (DID)
curl -s -X POST "https://newsip.israelnumber.com/customer/did_management/" \
  -H "x-auth-token: $SESSION_X_AUTH_TOKEN" \
  -H "Content-Type: application/json" \
  -d "{
    \"action\":\"release\",
    \"did_id\":\"YOUR_DID_ID\",
    \"accountid\":\"$ACCOUNT_ID\",
    \"id\":\"$ACCOUNT_ID\",
    \"token\":\"$ACCOUNT_TOKEN\"
  }"

# שלב 5 — הגדרת העברת SMS נכנס ל-webhook
# -i מציג status/headers של HTTP יחד עם גוף התגובה, אם קיים.
curl -s -i -X POST "https://newsip.israelnumber.com/api/sms" \
  -H "x-auth-token: $SESSION_X_AUTH_TOKEN" \
  -H "Content-Type: application/json" \
  -d "{
    \"action\":\"add\",
    \"id\":\"$ACCOUNT_ID\",
    \"token\":\"$ACCOUNT_TOKEN\",
    \"did\":\"YOUR_SMS_ENABLED_DID\",
    \"webhook_url\":\"https://example.com/api?from={CallerID}&text={SMS_TEXT}&to={SMS_DST_ADDR}\"
  }"

הפניה מלאה לנקודות הקצה: מדריך ה-API  ·  אוסף Postman המלא

דוגמאות API ל-SMS

SMS יוצא משתמש ב-API הנפרד מסוג GET הפעיל. הגדרת SMS-to-webhook נכנס נתמכת על ידי ה-API המתועד /api/sms מסוג POST.

שליחת SMS — API מסוג HTTP GET

שלחו הודעה מבלי לפתוח את פורטל החשבון. יכולת זו מתועדת כחלק מפורטל ה-SMS של המשתמש. הוסיפו תחילה את כתובת ה-IP של השרת השולח לרשימת ההיתרים תחת החשבון שלי ← הגדרות IP.

נקודת קצה:
https://api.israelnumber.com/astppsend-sms

פרמטרים: username, password, destination (בפורמט E.164), callerid, message (עד 70 תווים), sms (0/1), whatsapp (0/1).

דוגמה:
https://api.israelnumber.com/astppsend-sms?username=YOUR_USERNAME&password=YOUR_PASSWORD&destination=442035557788&callerid=MyBrand&message=Hello&sms=1&whatsapp=0

SMS נכנס ← Webhook

פעיל במלואו. הגדירו את ה-webhook פרוגרמטית עם POST /api/sms באמצעות webhook_url, או הגדירו את אותו יעד בפורטל החשבון תחת סוג העברה ← API.

נקודת קצה:
https://newsip.israelnumber.com/api/sms

ערכי API נדרשים:
action = add או update
id = מזהה החשבון שהוחזר מ-Login
token = ה-account_token שהוחזר מ-Login
did = מספר (DID) עם תמיכה ב-SMS
webhook_url = כתובת יעד ה-webhook שלכם

עבור העברת SMS ל-webhook בלבד, ניתן להשמיט את dest_sms ואת dest_email.

משתני תבנית ה-webhook:
{CallerID} מספר השולח
{SMS_TEXT} תוכן ה-SMS
{SMS_DST_ADDR} מספר ה-DID של הנמען

דוגמת גוף בקשה:
{"action":"add","id":"YOUR_ACCOUNT_ID","token":"YOUR_ACCOUNT_TOKEN","did":"972559664944","webhook_url":"https://example.com/api?from={CallerID}&text={SMS_TEXT}&to={SMS_DST_ADDR}"}

מה מפתחים בונים עם ה-API של Israelnumber

גלו מדריכים מפורטים לכל תרחיש שילוב.

שילוב סוכני AI

הקצו מספר מקומי (DID) דרך ה-API ונתבו שיחות נכנסות באמצעות הגדרת ההעברה המתועדת של המספר.

למדריך השילוב ←

הקצאת מספרים (DID)

חפשו מספרים (DID) זמינים, שייכו אותם, הגדירו העברה, הציגו רשימת מספרים שנרכשו, ושחררו אותם — הכול באופן פרוגרמטי.

למדריך ההקצאה ←

SMS דרך API

שלחו SMS יוצא באמצעות ה-API הנפרד מסוג HTTP GET, והגדירו העברת SMS נכנס למספר SMS אחר, לכתובת אימייל, או ל-webhook דרך קריאות הגדרת ה-SMS המתועדות.

למדריך ה-SMS ←

SMS-to-Webhook

העבירו SMS נכנס לנקודת הקצה שלכם. הגדירו את היעד פרוגרמטית דרך /api/sms באמצעות webhook_url, או הגדירו זאת דרך פורטל החשבון.

למדריך ה-webhook ←

מדריך ה-API המלא

הפניה טכנית לקריאות המתועדות ב-Postman: Login, ניהול חשבון, ייצוא CDR, ניהול מספרים, העברות, והגדרות SMS. ה-API הנפרד לשליחת SMS יוצא מתואר בעמוד זה.

למדריך המלא ←

 

שאלות נפוצות

שאלות נפוצות ממפתחים המשלבים את ה-API של Israelnumber.

האם אפשר להקצות מספרי טלפון וירטואליים דרך ה-API?

כן. ה-API המתועד תומך בהצגת רשימת מספרים זמינים, שיוך מספר לחשבון שלכם, הצגת רשימת מספרים שנרכשו, הגדרת העברה, ושחרור מספר — הכול באופן פרוגרמטי.

האם קיים API טלפוניה לסוכני קול מבוססי AI?

ה-API המתועד תומך בהקצאת מספרים והגדרת העברה באופן פרוגרמטי. ניתן להשתמש בכך כחלק משילוב סוכן קול מבוסס AI, כאשר פלטפורמת ה-AI מסוגלת לקבל שיחות דרך יעד טלפוניה תואם. ניתוב SMS ל-webhook הוא יכולת נפרדת עבור SMS נכנס, ואין לבלבל בינה לבין מסירת מדיה קולית בשידור חי.

באילו שפות תכנות תומך ה-API של Israelnumber?

הממשק המתועד משתמש בבקשות HTTP POST עם גוף בקשה בפורמט JSON וכותרת מסוג x-auth-token. כל שפה שיכולה לשלוח בקשות HTTP יכולה להשתלב עמו; דוגמאות מוצגות כאן ב-Python, Node.js ו-cURL.

האם קיימת סביבת בדיקה (sandbox) חינמית לבדיקת ה-API?

הפניית ה-API המלאה זמינה ב-Postman, ותיעוד כללי זמין בכתובת israelnumber.com/api-documentation-sandbox. השתמשו בפרטי ההתחברות ובסביבת הבדיקה שסופקו עבור החשבון שלכם. אין להניח שניתן להקצות משאבי ייצור ללא עלות.

כיצד לבצע אימות (authentication) לבקשות ה-API?

ראשית, הוסיפו את כתובת ה-IP של השרת השולח את קריאות ה-API לרשימת ההיתרים בפורטל החשבון שלכם. בקשת ה-Login הראשונית משתמשת בשם המשתמש/סיסמה הייחודיים לחשבון שלכם יחד עם ה-x-auth-token הקבוע המפורסם בתיעוד ה-Postman. לאחר הצלחת ה-Login, התגובה מחזירה את ה-id של החשבון, את ה-account_token, ו-x-auth-token חדש עבור ה-session. יש להשתמש ב-x-auth-token של ה-session בכותרת הבקשה עבור כל הקריאות הבאות באותו session, בעוד ה-id וה-account_token שהוחזרו נשלחים בגוף הבקשה כערכי ה-id וה-token המתועדים.

כיצד בוחרים מדינה בעת הצגת מספרים זמינים?

השתמשו במזהה ה-country_id המספרי האופציונלי המסופק בהפניה לרשימת המדינות. הפניית ה-API הנוכחית מסמנת את קריאת רשימת המדינות כמושבתת, ומספקת את מזהי המדינות בדוגמה במקום לדרוש הרצה בפועל של הקריאה.

האם ניתן לשלוח SMS יוצא דרך ה-API?

כן. Israelnumber מספקת נקודת קצה נפרדת מסוג HTTP GET להודעות יוצאות: https://api.israelnumber.com/astppsend-sms. היא מקבלת את הפרמטרים username, password, destination, callerid, message, sms, ו-whatsapp. יש להגדיר את כתובת ה-IP המקורית שלכם תחת החשבון שלי ← הגדרות IP. נקודת קצה זו מתועדת כחלק מפורטל ה-SMS של המשתמש ואינה כלולה כרגע באוסף ה-Postman.

האם ניתן להעביר SMS נכנס ל-webhook שלי?

כן. ניתוב SMS נכנס ל-webhook פעיל במלואו וניתן להגדרה פרוגרמטית דרך /api/sms באמצעות השדה webhook_url. ניתן גם להגדיר את אותו יעד בפורטל החשבון תחת סוג העברה ← API. כתובת ה-webhook יכולה להשתמש ב-{CallerID}, ב-{SMS_TEXT}, וב-{SMS_DST_ADDR}; הפלטפורמה מחליפה את המצייני-המקום הללו בערכים חיים עבור כל הודעה נכנסת.

מוכנים להתחיל לבנות?

צרו חשבון והשתמשו בתהליך ה-Login המתועד כדי לקבל את ערכי האימות של החשבון שלכם.