API טלפוניה חזק למפתחים ולמערכות AI
הקצו מספרים וירטואליים, הגדירו ניתוב שיחות נכנסות, שלחו SMS דרך הרשת שלנו, ונהלו העברת SMS נכנס. ה-API המרכזי לניהול חשבון/מספרים משתמש בקריאות POST מתועדות, בעוד שליחת SMS משתמשת ב-API נפרד מסוג HTTP GET.
כל מה שצריך כדי לבנות מעל קול ו-SMS
ממשקי API מתועדים ב-Postman לניהול חשבון, דוחות שיחות (CDR), מספרים (DID) והגדרות SMS, בנוסף ל-API נפרד לשליחת SMS יוצא מסוג GET.
API להקצאת מספריםחפשו מספרים (DID) זמינים, שייכו מספר לחשבון שלכם, הציגו רשימת מספרים שנרכשו, שחררו מספרים, והגדירו את יעד ההעברה שלהם באופן פרוגרמטי. | API ל-SMSשלחו SMS יוצא דרך הרשת שלנו באמצעות API נפרד מסוג HTTP GET. הגדירו העברת SMS נכנס למספר SMS אחר, לכתובת אימייל, או ל-webhook דרך ה-API. |
API לניתוב מספרים (DID)הגדירו העברה עבור מספרים שנרכשו. קריאת ההעברה המתועדת תומכת ב- | API לחשבון ולשימושהתחברו דרך קריאת ה-Login, שלפו את היסטוריית החיובים של החשבון, ובקשו דוחות CDR לטווח תאריכים נבחר. דוחות CDR נשלחים לכתובת האימייל הרשומה בחשבון כקובץ Excel בתוך קובץ ZIP מצורף. ערכי האימות שמוחזרים מ-Login משמשים גם בבקשות הבאות. |
ניתוב SMS ל-Webhook חדשנתבו SMS נכנס לנקודת קצה (endpoint) משלכם. ניתוב SMS ל-webhook פועל במלואו וניתן להגדרה פרוגרמטית דרך |
שליחת 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. נקודת קצה: פרמטרים: דוגמה: | SMS נכנס ← Webhookפעיל במלואו. הגדירו את ה-webhook פרוגרמטית עם נקודת קצה: ערכי API נדרשים: עבור העברת SMS ל-webhook בלבד, ניתן להשמיט את משתני תבנית ה-webhook: דוגמת גוף בקשה: |
מה מפתחים בונים עם ה-API של Israelnumber
גלו מדריכים מפורטים לכל תרחיש שילוב.
שילוב סוכני AIהקצו מספר מקומי (DID) דרך ה-API ונתבו שיחות נכנסות באמצעות הגדרת ההעברה המתועדת של המספר. | הקצאת מספרים (DID)חפשו מספרים (DID) זמינים, שייכו אותם, הגדירו העברה, הציגו רשימת מספרים שנרכשו, ושחררו אותם — הכול באופן פרוגרמטי. |
SMS דרך APIשלחו SMS יוצא באמצעות ה-API הנפרד מסוג HTTP GET, והגדירו העברת SMS נכנס למספר SMS אחר, לכתובת אימייל, או ל-webhook דרך קריאות הגדרת ה-SMS המתועדות. | SMS-to-Webhookהעבירו SMS נכנס לנקודת הקצה שלכם. הגדירו את היעד פרוגרמטית דרך |
מדריך ה-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 המתועד כדי לקבל את ערכי האימות של החשבון שלכם.