בנית אתר או אפליקציה – אולי בעזרת Cursor, Lovable, Bolt, Replit, v0, Base44, Claude, ChatGPT, Gemini, n8n, Make וכדומה, או כל כלי אחר – ועכשיו צריך שהמשתמשים יאמתו את הטלפון? זה החלק הקל. אין SDK להתקין, אין חשבון מורכב לאשר, אין אנגלית טכנית לפענח: קריאה אחת לשרת שלנו, והקוד בטלפון של המשתמש תוך שניות. הרשמה חינם עם 10 הודעות ניסיון, בלי כרטיס אשראי.
ואם נתקעתם – יש כאן אנשים. שירות לקוחות אנושי, בעברית, בימים א׳–ה׳ 9:00–17:00: 072-256-9090. לא צ'אטבוט, לא כרטיס תמיכה באנגלית שנענה אחרי יומיים.
בונים עם AI?
אין צורך לקרוא את כל התיעוד. שלושה צעדים:
- העתיקו את הפרומפט מהחלון השחור.
- הדביקו אותו בכלי שבו אתם עובדים — Cursor, Lovable, Bolt, Claude, ChatGPT או כל כלי אחר.
- שימו את
key,userו-passבמשתני סביבה. ה-AI ייצור את שאר הקוד.
הוסף לאפליקציה אימות טלפון ב-SMS (OTP) באמצעות SMS4FREE לפי התיעוד בכתובת
https://sms4free.co.il/docs/otp-api.html – צור קוד בן 6 ספרות עם תוקף 5 דקות,
שלח אותו דרך POST https://api.sms4free.co.il/ApiSMS/v2/SendSMS עם השדות
key, user, pass, sender, recipient, msg (JSON), ואמת את הקוד שהמשתמש מקליד.
קרא את key/user/pass ממשתני סביבה.מחפשים הסבר עסקי (למה SMS, כמה זה עולה, מה החוק אומר)? – המאמר בבלוג עופריקס.
למפתחים – בקצרה
HTTPS אחד, JSON נכנס ו-JSON יוצא, בלי SDK חובה.
POST https://api.sms4free.co.il/ApiSMS/v2/SendSMS
Content-Type: application/json1. איך עובד אימות ב-SMS (30 שניות)
- המשתמש מזין מספר נייד.
- השרת שלכם מייצר קוד אקראי (4–6 ספרות), שומר אותו עם תוקף (למשל 5 דקות) ומונה ניסיונות.
- השרת שולח את הקוד ב-SMS דרך ה-API של SMS4FREE (הקריאה שלמטה).
- המשתמש מקליד את הקוד; השרת משווה, מוחק את הקוד, ומסמן את המספר כמאומת.
הקוד נוצר ונבדק אצלכם. SMS4FREE מעביר את ההודעה. כך אתם שולטים בתוקף, בניסיונות ובנוסח – וכך זה נשאר פשוט.
2. אישורי גישה
| פרמטר | מה זה | איפה מוצאים |
|---|---|---|
user | מספר הנייד שאיתו נרשמתם (למשל 0501234567) | – |
pass | סיסמת החשבון | נשלחת במייל בהרשמה; ניתן לשנות באזור האישי |
key | מפתח API אישי | אזור אישי → "API" |
אבטחה: אל תשימו את שלושת הערכים בקוד צד-לקוח (דפדפן / אפליקציה). הקריאה ל-API נעשית מהשרת שלכם בלבד. שמרו אותם במשתני סביבה.
3. שליחת קוד אימות – הקריאה
בקשה
POST /ApiSMS/v2/SendSMS HTTP/1.1
Host: api.sms4free.co.il
Content-Type: application/json
{
"key": "YOUR_API_KEY",
"user": "0501234567",
"pass": "YOUR_PASSWORD",
"sender": "MyApp",
"recipient": "0541234567",
"msg": "קוד האימות שלך ל-MyApp הוא 482913. תקף ל-5 דקות."
}| שדה | חובה | הערות |
|---|---|---|
key, user, pass | כן | ראו סעיף 2 |
sender | כן | שם השולח שיופיע בטלפון. עם 10 ההודעות החינמיות – רק מספר הנייד שנרשמתם איתו (או מספר וירטואלי שלכם). אחרי רכישת חבילה – עד 11 תווים באנגלית ומספרים (בלי רווחים/פיסוק, למשל MyApp) או מספר מאומת. מספר שולח חדש דורש אימות ראשון דרך דף השליחה באתר. אם השדה ריק המערכת שולחת כ- ABC. |
recipient | כן | מספר ישראלי. מתקבלים 05XXXXXXXX, 9725XXXXXXXX, +9725XXXXXXXX וגם 9 ספרות שמתחילות ב-5 (המערכת מנרמלת לפורמט מקומי). לכמה נמענים – מופרדים ב-; או ב-, (ל-OTP תמיד נמען אחד). |
msg | כן | עד 134 תווים מחויב כהודעה אחת. כל מקטע נוסף של עד 67 תווים נוספים מחויב כהודעה נוספת. |
תשובה
{ "status": 1, "message": "" }status | משמעות |
|---|---|
| מספר חיובי | מספר ההודעות שהתקבלו לשליחה (ל-OTP: 1) |
0 או שלילי | שגיאה. message מכיל תיאור. ראו קודי שגיאה בסעיף 6 |
קוד HTTP 200 אינו אישור בפני עצמו – בדקו תמיד את
status.
4. דוגמאות קוד
כל הדוגמאות שולחות את אותה הודעה. החליפו את האישורים במשתני סביבה.
using System.Net.Http.Json;
using System.Security.Cryptography;
public sealed class Sms4FreeOtp(HttpClient http)
{
public async Task<string> SendAsync(string phone, CancellationToken ct = default)
{
var code = RandomNumberGenerator.GetInt32(100000, 1000000).ToString();
var res = await http.PostAsJsonAsync("https://api.sms4free.co.il/ApiSMS/v2/SendSMS", new {
key = Environment.GetEnvironmentVariable("SMS4FREE_API_KEY"),
user = Environment.GetEnvironmentVariable("SMS4FREE_USER"),
pass = Environment.GetEnvironmentVariable("SMS4FREE_PASS"),
sender = "MyApp", recipient = phone,
msg = $"קוד האימות שלך ל-MyApp הוא {code}. תקף ל-5 דקות."
}, ct);
var data = await res.Content.ReadFromJsonAsync<Sms4FreeResponse>(ct);
if (data is null || data.status <= 0) throw new InvalidOperationException($"SMS4FREE error {data?.status}: {data?.message}");
return code;
}
public sealed record Sms4FreeResponse(int status, string message);
}5. בדיקת יתרה
תשובה: מספר שלם בגוף התשובה (לא אובייקט JSON) – כמות ההודעות הזמינות (למשל 9850). ערך שלילי = שגיאת אישורים (בדרך כלל -1).
using System.Net.Http.Json;
public sealed class Sms4FreeBalance(HttpClient http)
{
public async Task<int> AvailableAsync(CancellationToken ct = default)
{
var res = await http.PostAsJsonAsync("https://api.sms4free.co.il/ApiSMS/AvailableSMS", new {
key = Environment.GetEnvironmentVariable("SMS4FREE_API_KEY"),
user = Environment.GetEnvironmentVariable("SMS4FREE_USER"),
pass = Environment.GetEnvironmentVariable("SMS4FREE_PASS"),
}, ct);
var text = await res.Content.ReadAsStringAsync(ct);
var balance = int.Parse(text);
if (balance < 0) throw new InvalidOperationException($"SMS4FREE error {balance}");
return balance;
}
}מומלץ להתריע אצלכם כשהיתרה יורדת מתחת לסף (למשל 500) – קוד אימות שלא נשלח = משתמש שלא נכנס.
6. קודי שגיאה
status | משמעות | מה לעשות |
|---|---|---|
> 0 | ההודעה נשלחה בהצלחה אל מספר זה של נמענים | — |
0 | שגיאה כללית | לפנייה לשירות הלקוחות |
-1 | מפתח, שם משתמש או סיסמה שגויים | מפתח ה־API / שם המשתמש / הסיסמה שהוזנו אינם תקינים |
-2 | מזהה שולח (Sender) לא תקין | ניתן לשנות את שם השולח רק לאחר רכישת חבילת SMS — לרכישה |
-3 | לא נמצאו נמענים | יש להזין רשימת מספרי טלפון מופרדים בתו ; |
-4 | לא ניתן לשלוח הודעה — יתרת הודעות פנויות נמוכה | יש לרכוש חבילת SMS נוספת |
-5 | הודעה לא מתאימה | תוכן ההודעה אינו תקין לשליחה |
-6 | מספר שולח לא עבר אימות ראשוני | יש לבצע אימות ע"י שליחת הודעה מדף השליחה — לאימות |
7. מה שחשוב לדעת על OTP בישראל
- זמן הגעה: שניות בודדות. הודעות API נשלחות בתור נפרד מקמפיינים, כך שקוד אימות לא ממתין מאחורי דיוור של 50,000 הודעות.
- אורך: עד 134 תווים מחויב כהודעה אחת. כל מקטע נוסף של עד 67 תווים נוספים מחויב כהודעה נוספת. הודעת OTP סטנדרטית בעברית נכנסת בהודעה אחת – שמרו אותה קצרה.
- טלפונים כשרים: המערכת מזהה מספר כשר אוטומטית וממירה לשיחה קולית שמקריאה את הקוד – בלי שינוי בקוד שלכם. אפשר גם לכפות המרה קולית לכל הנמענים עם
"isVoice": true. אם ביטלתם שיחות קוליות בחשבון, הודעות למספרים כשרים לא יישלחו ולא יחויבו. פירוט חיוב: מספר וירטואלי לטלפון כשר ו- מחירון. - מילוי אוטומטי בדפדפן (WebOTP): כדי שהקוד יוכנס אוטומטית בכרום/אנדרואיד, סיימו את ההודעה בשורה
@yourdomain.com #482913ובטופס:<input autocomplete="one-time-code" inputmode="numeric">. מדריך גוגל. - הגנה מניצול לרעה (בצד שלכם): הגבלת קצב לכל מספר ולכל IP (למשל 3 קודים ל-10 דקות), תוקף 5 דקות, 5 ניסיונות הקלדה ואז קוד חדש, ואל תגלו בתשובה אם המספר קיים במערכת.
- רגולציה: הודעת אימות שהמשתמש ביקש היא הודעת שירות, לא דיוור, ואינה דורשת הסכמה מראש לפי חוק התקשורת (תיקון 40). שם השולח חייב להיות מזוהה. ראו רגולציה 2020 לזיהוי שולח.
8. יכולות נוספות דרך ה-API
| יכולת | מצב | פרטים |
|---|---|---|
| שליחה מרובת נמענים | זמין – recipient מופרד ב-; או , | – |
| שליחה מתוזמנת | אותה נקודת קצה POST /ApiSMS/v2/SendSMS | הוסיפו dateToSend (תאריך) ו-hourToSend (שעה). בלי שניהם – נשלח מייד. |
| דוחות מסירה (DLR / Webhook) | זמין בשליחה | העבירו returnUrl + usermsgid. אנחנו נשלח POST application/x-www-form-urlencoded לכתובת עם to, status, msgId. סטטוס נפוץ: 1 נמסר, 5 לא נמסר, 6 מספר כשר. סקירת API: שליחת SMS באמצעות API. |
| הודעות נכנסות / מספר וירטואלי | זמין במסלול מספר וירטואלי | מגדירים כתובת הפניה במספר הווירטואלי; המערכת שולחת sender, receiver, msg. תיעוד: API להודעות נכנסות. |
| שם שולח דינמי | אחרי רכישת חבילה | עד 11 תווים באנגלית ומספרים, או מספר מאומת |
9. התחלה ב-3 דקות
- הרשמה
חינם, 10 הודעות, בלי כרטיס.
- העתיקו את ה-
keyאזור אישי → API → העתיקו את המפתח.
- שלחו הודעת ניסיון
הריצו את דוגמת ה-cURL עם המספר שלכם.
שאלות נפוצות
כמה זמן לוקח לקוד אימות להגיע?
שניות בודדות. הודעות API נשלחות בתור נפרד מקמפיינים, כך שקוד אימות לא ממתין מאחורי דיוור המוני.
כמה זה עולה?
ההרשמה חינם וכוללת 10 הודעות ניסיון. לאחר מכן רוכשים חבילת הודעות לפי המחירון באתר, ללא דמי מנוי.
האם זה עובד גם למשתמשים עם טלפון כשר?
כן. SMS4FREE מזהה מספר כשר וממיר את ההודעה לשיחה קולית שמקריאה את הקוד, בלי שינוי בקוד שלכם.
אני לא מתכנת – בניתי אפליקציה עם כלי AI. זה מתאים לי?
כן. העתיקו את הפרומפט שבראש הדף לכלי שבו בניתם, והוא ייצור את החיבור. ואם נתקעתם – שירות לקוחות אנושי בעברית, א׳–ה׳ 9:00–17:00.
איך הקוד מתמלא אוטומטית בטלפון?
סיימו את ההודעה בשורה @yourdomain.com #קוד ובטופס השתמשו ב-autocomplete="one-time-code" (תקן WebOTP).




