התחלה מהירה דף הבית > REST API · v1 בונים את החיבור שמתאים לכם חברו את המערכות שלכם לשירותים הקיימים, עם מפתחות גישה מאוחדים ושליטה בהרשאות, במשאבים ובמכסות. ניהול מפתחות API ↗ כתובת ה־API שלכם העתקה https://rest.yemot.co.il/api/v1 Authorization · Bearer token כל השירותים. חיבור אחד. 01 יוצרים מפתח באזור האישי בחרו שם ברור לחיבור והגדירו תוקף. המפתח עובד רק בחשבון שלכם ורק בכתובת שבה נוצר. 02 בוחרים בדיוק את הגישה הדרושה אפשר לאפשר שירות שלם או קריאה בודדת, ולהוסיף הגבלות משאבים, כתובות IP ומכסות. 03 מאמתים ומתחברים מאשרים את היצירה באימות נוסף ושומרים את מפתח ה־API המוצג פעם אחת. שולחים אותו מהשרת שלכם בכותרת Authorization. הקריאה הראשונה שלכם דוגמה למפתח עם הרשאת קריאת פרופיל. החליפו את API_KEY במפתח ה־API שהנפקתם. cURL העתקה curl --request GET 'https://rest.yemot.co.il/api/v1/usersApi/profile' \ --header 'Authorization: Bearer ' ימות המשיח בע״מ מרכז המפתחים · תיעוד ה API שירותים וחיבורים דף הבית > אותו API שאתם מכירים רוב הפעולות הן אותן פעולות שאתם מכירים מהמערכת, באותם נתיבים, פרמטרים וגופי בקשה. מה שמשתנה הוא רק הכתובת שאליה פונים וההזדהות במפתח — ומה שמותר נקבע לפי ההרשאות שנתתם למפתח. GET /api/v1/switch/GetExtension?path=ivr2:/1 בפעולות של מרכזייה מוסיפים כותרת switch-id עם המזהה שמתקבל בקריאה לרשימת המרכזיות. אפשר לפנות רק למרכזיות שבחשבון שלכם, ומתוכן רק לאלה שאישרתם במפתח. תחומי השירות במערכת מה שמופיע כאן הוא מה שפתוח בחשבון שלכם. מה שהמפתח עצמו יכול לעשות נקבע בהרשאות שהגדרתם לו. 〈/〉 פרטי החשבון קריאת פרטי החשבון והמידע על המפתח שבו משתמשים. identity.profile 〈/〉 מידע על אבטחת החשבון קריאת סיכום אמצעי האימות הפעילים, ללא סיסמאות או קודי אימות. identity.security 〈/〉 רשימת המרכזיות צפייה במרכזיות המשויכות לחשבון ובפרטים שלהן. switches.list 〈/〉 ניהול המרכזייה גישה לפעולות המרכזייה הקיימות: שלוחות, קבצים, קמפיינים ושיחות. אפשר להגביל את הגישה למרכזיות נבחרות ולנתיבים מסוימים. switches.core 〈/〉 פרטי חשבון הסלולר קריאת פרטי החשבון וניהול ההגדרות הזמינות באזור האישי הסלולרי. cellular.core 〈/〉 חבילות ומנויים צפייה בחבילות ובמנויים המשויכים לחשבון. cellular.packages ימות המשיח בע״מ מרכז המפתחים · תיעוד ה API מרכזיות ו־IVR דף הבית > IVR API אותן פעולות שאתם מכירים במערכת המרכזיות, עם מפתח API קבוע ובחירת מרכזייה בכל בקשה. 1. מציאת המרכזיות שלכם קראו ל־GET /api/v1/switches/search עם הרשאת רשימת מרכזיות. data.items מכיל את המרכזיות הפעילות שבבעלות החשבון ושהמפתח רשאי לגשת אליהן. number הוא מספר המערכת, name הוא שמה ו־uuid הוא המזהה לשליחה בכותרת. id הוא אותו מזהה, לתאימות עם מנגנון המשאבים. curl --request GET 'https://rest.yemot.co.il/api/v1/switches/search?limit=25' \ --header 'Authorization: Bearer ' { "items": [ { "uuid": "26e41fbe-acba-4130-8a07-d138fd6c0df0", "id": "26e41fbe-acba-4130-8a07-d138fd6c0df0", "switch_type": 11, "switch_type_name": "IVR", "name": "023130003", "number": "023130003", "contact_name": null, "purpose": null, "update_date_by_customer": null } ], "next": null } אפשר לקרוא ללא פרמטרים; ברירת המחדל היא 50 תוצאות. אין לשלוח גוף בקשה. כותרת switch-id אינה נדרשת לחיפוש ואינה מסננת את הרשימה. אפשר להעביר limit עד 100. כאשר next אינו null, שלחו אותו כ־after כדי לקבל את העמוד הבא. הרשימה מסוננת לפי הרשאות לפני החלוקה לעמודים. 2. בחירת המרכזייה ושליחת פעולה בכל קריאה ל־/switch/ שולחים שתי כותרות: Authorization עם מפתח ה־API, ו־switch-id עם ה־uuid שקיבלתם ברשימה. אין לשלוח בכותרת את מספר הטלפון או מזהה פנימי אחר. המפתח מזהה את החשבון; switch-id בוחר את המרכזייה. curl --request GET 'https://rest.yemot.co.il/api/v1/switch/GetCustomerData' \ --header 'Authorization: Bearer ' \ --header 'switch-id: 26e41fbe-acba-4130-8a07-d138fd6c0df0' שם הפעולה, הפרמטרים וגוף הבקשה נשארים כפי שהם ב־API הקיים. לדוגמה, GetCustomerData זמין תחת /api/v1/switch/GetCustomerData. פעולות ניהול הזדהות והנפקת טוקנים אינן זמינות דרך מפתח API. 3. הגבלת גישה למרכזיות מסוימות בניהול המפתח, בלשונית משאבים, אפשר לבחור את כל המרכזיות שבבעלות החשבון או רשימה של מזהים מותרים. ב־ACL ההגדרה היא acl.switches, והמזהים הם ערכי uuid. ההגבלה חלה גם על תוצאות החיפוש וגם על הפעולות. אפשר להוסיף כללים לחסימת פעולות או להגבלת פרמטרים. ימות המשיח בע״מ מרכז המפתחים · תיעוד ה API לקריאות שמופיעות כאן יש סכמת OpenAPI מלאה. לשאר הפעולות משתמשים בתיעוד הקיים של אותה פעולה במערכת — הן לא מתועדות כאן מחדש. חיפוש נתיב או הרשאה GET /usersApi/profile פרטי החשבון מחזיר את פרטי החשבון שהמפתח שייך אליו - שם, מייל וטלפון. קריאה בלבד, ואינה מרעננת נתונים משום מקום. הרשאה: usersApi.profile.read curl --request GET 'https://rest.yemot.co.il/api/v1/usersApi/profile' \ --header 'Authorization: Bearer ' דוגמת תשובה { "success": true, "data": { "customerId": 123, "firstName": "Example", "lastName": "Customer", "email": "customer@example.test", "phone": null }, "error": null, "coreSso": { "apiVersion": "v1", "ssoVersion": "example-build", "ssoZone": null, "ssoReplicaSetHash": null, "ssoPodSuffix": null, "requestId": "00000000-0000-4000-8000-000000000002" } } סכמת תשובה GET /usersApi/security מידע על אבטחת החשבון מחזיר אילו סוגי אימות דו-שלבי מוגדרים בחשבון וכמה מכל סוג. לא מוחזרים היעדים עצמם, לא סודות, לא קודי שחזור ולא אפשרות לשנות משהו. הרשאה: usersApi.security.read curl --request GET 'https://rest.yemot.co.il/api/v1/usersApi/security' \ --header 'Authorization: Bearer ' דוגמת תשובה { "success": true, "data": { "twoFactorEnabled": true, "methods": [ { "type": "PASSKEY", "count": 1 } ] }, "error": null, "coreSso": { "apiVersion": "v1", "ssoVersion": "example-build", "ssoZone": null, "ssoReplicaSetHash": null, "ssoPodSuffix": null, "requestId": "00000000-0000-4000-8000-000000000002" } } סכמת תשובה GET /apiKeys/self פרטי החשבון מחזיר את פרטי המפתח שאיתו נשלחה הבקשה - שם, מצב, גרסת ההרשאות ותוקף. כפוף להרשאות המפתח, לתוקפו ולמכסות. הרשאה: apikey.selfRead curl --request GET 'https://rest.yemot.co.il/api/v1/apiKeys/self' \ --header 'Authorization: Bearer ' דוגמת תשובה { "success": true, "data": { "id": "00000000-0000-4000-8000-000000000001", "name": "My integration", "state": "active", "policyVersion": 1, "expiresAt": null }, "error": null, "coreSso": { "apiVersion": "v1", "ssoVersion": "example-build", "ssoZone": null, "ssoReplicaSetHash": null, "ssoPodSuffix": null, "requestId": "00000000-0000-4000-8000-000000000002" } } סכמת תשובה DELETE /apiKeys/self פרטי החשבון מבטל את הסוד שאיתו נשלחה הבקשה, ואותו בלבד - אין פרמטר שמאפשר לבטל מפתח אחר. הרשאת אפליקציה שמחזיקה חיבורים ממספר מכשירים מאבדת את החיבור הזה בלבד; כל מפתח אחר, וכן החיבור האחרון שנותר בהרשאה, מבטלים את המפתח עצמו על כל הסודות שלו. עובד גם כשהמפתח מושהה או פג, וגם כשגישת ה-API בחשבון כבויה. סוד שהוחלף בסבב אינו יכול לבטל מפתח פעיל. סוד שהונפק למכשיר חייב להציג את אותו מכשיר. ביטול חוזר מחזיר revoked=true. הרשאה: apikey.selfRevoke פעולה זו מבטלת לצמיתות את הסוד שאיתו נשלחה הבקשה. הרשאת אפליקציה שמחוברת מכמה מכשירים מאבדת את החיבור הזה בלבד, ושאר המכשירים ממשיכים לעבוד; בכל מקרה אחר, ובכלל זה החיבור האחרון שנותר בהרשאה, מבוטל המפתח עצמו על כל סודותיו - כולל סוד קודם שעדיין פעיל בתקופת חפיפה. לא ניתן לחדש אותו לאחר הביטול. curl --request DELETE 'https://rest.yemot.co.il/api/v1/apiKeys/self' \ --header 'Authorization: Bearer ' דוגמת תשובה { "success": true, "data": { "revoked": true }, "error": null, "coreSso": { "apiVersion": "v1", "ssoVersion": "example-build", "ssoZone": null, "ssoReplicaSetHash": null, "ssoPodSuffix": null, "requestId": "00000000-0000-4000-8000-000000000002" } } סכמת תשובה GET /switches/search רשימת המרכזיות מחזיר את המרכזיות הפעילות שבחשבון. הבעלות וההגבלה שהגדרתם במפתח מוחלות לפני העימוד. אין כאן פתיחת סשן למרכזייה. הרשאה: ivr.switches.list פרמטרים limit query רשות { "type": "integer", "minimum": 1, "maximum": 100, "default": 50 } after query רשות { "type": "string", "pattern": "^[A-Za-z0-9_-]{1,50}$" } curl --request GET 'https://rest.yemot.co.il/api/v1/switches/search?limit=25' \ --header 'Authorization: Bearer ' דוגמת תשובה { "success": true, "data": { "items": [ { "id": "00000000-0000-4000-8000-000000000001", "uuid": "00000000-0000-4000-8000-000000000001", "switch_type": 11, "switch_type_name": "Free system", "name": "Office", "number": "023130003", "contact_name": null, "purpose": null, "update_date_by_customer": null } ], "next": null }, "error": null, "coreSso": { "apiVersion": "v1", "ssoVersion": "example-build", "ssoZone": null, "ssoReplicaSetHash": null, "ssoPodSuffix": null, "requestId": "00000000-0000-4000-8000-000000000002" } } סכמת תשובה GET /switches/get רשימת המרכזיות בוחר מרכזייה לפי כותרת switch-id. נבדקת הבעלות בפועל, שהמרכזייה פעילה, ושהיא מותרת במפתח. לא מוחזרות סיסמאות ולא אסימוני כניסה. הרשאה: ivr.switches.get פרמטרים switch-id header חובה { "type": "string", "pattern": "^[A-Za-z0-9_-]{1,50}$" } curl --request GET 'https://rest.yemot.co.il/api/v1/switches/get' \ --header 'Authorization: Bearer ' \ --header 'switch-id: ' דוגמת תשובה { "success": true, "data": { "id": "00000000-0000-4000-8000-000000000001", "uuid": "00000000-0000-4000-8000-000000000001", "switch_type": 11, "switch_type_name": "Free system", "name": "Office", "number": "023130003", "contact_name": null, "purpose": null, "update_date_by_customer": null }, "error": null, "coreSso": { "apiVersion": "v1", "ssoVersion": "example-build", "ssoZone": null, "ssoReplicaSetHash": null, "ssoPodSuffix": null, "requestId": "00000000-0000-4000-8000-000000000002" } } סכמת תשובה המסמך זמין גם ב־/api/v1/openapi תחת data. ההורדה מכילה מסמך OpenAPI עצמאי. ימות המשיח בע״מ מרכז המפתחים · תיעוד ה API הרשאות ותפעול דף הבית > הרשאות שנשארות בשליטתכם הרשאת שירות פותחת את פעולותיו, אלא אם מגבלה חוסמת אותן. כלל חסימה תמיד גובר. מפתח אינו יכול להנפיק מפתחות נוספים או לשנות את הגדרות האבטחה של החשבון. כללי ACL יכולים לבדוק את request.path ללא /api/v1, את request.method ואת query.*, body.* או params.*. ב־params, ערכים ב־query גוברים על body. הסימולטור באזור האישי מאפשר לבדוק הרשאות בלי לבצע את הקריאה. אימות לפעולות רגישות יצירה ושינוי הרשאות מחייבים אימות חדש באמצעות מפתח גישה או אפליקציית אימות; אם שניהם אינם זמינים, באמצעות טלפון. התחברות אחרונה או מכשיר שנזכר אינם מחליפים אימות זה. החלפה וביטול אפשר להחליף את מפתח ה־API ולהשאיר את המפתח הקודם פעיל בתקופת חפיפה מוגדרת. שני המפתחות חולקים את אותן מכסות. ביטול לצמיתות משבית גם את המפתח הקודם. מפתחות קיימים אינם מקבלים שירותים נוספים אוטומטית. מכסות וניסיונות חוזרים ברירת המחדל היא ללא הגבלה. אם הוגדרו מכסות, הן משותפות לכל הקריאות של המפתח: קצב בקשות, כמות יומית לפי UTC וקריאות במקביל. בתשובת 429 ממתינים לפי Retry-After. אין לחזור אוטומטית על פעולת כתיבה לאחר ניתוק או שגיאת שירות — ייתכן שכבר בוצעה. גודל בקשה בכתיבה מרובה בקשה אחת יכולה לחשוף עד 50,000 פרמטרים למדיניות המפתח. כל ערך פשוט נספר פעמיים — פעם תחת query/body ופעם תחת params — ולכן כתיבה של מערך רשומות מוגבלת בפועל לכ־6,000 רשומות של ארבעה שדות בקריאה אחת. חריגה מוחזרת כ־400 עם API_INVALID_REQUEST והסבר, ולא כשגיאת שירות; מפצלים לקריאות קטנות יותר. עומק הקינון של פרמטרים מוגבל ל־12 רמות. מה חוזר מהשרת הקריאות שמתועדות כאן מחזירות success, data ו־error. שאר הפעולות מחזירות בדיוק את מה שהן מחזירות היום, עם תוספת coreSso לתשובת JSON. קבצים חוזרים כפי שהם; מערך או ערך בודד נעטפים ב־data. coreSso כולל את גרסת ה־API, מזהה בקשה, ופרטי הגרסה והמכונה שענתה — אלה נתוני אבחון שלנו, ואין צורך להסתמך עליהם. מה שכן כדאי לשמור הוא מזהה הבקשה: איתו אנחנו מאתרים את הקריאה אם תפנו לתמיכה. שגיאת רשת שנוצרה לפני שהבקשה הגיעה אלינו יכולה לחזור בלי המידע הזה. בשבעת הימים שלפני תפוגת מפתח ה־API, coreSso.warnings כולל אזהרה באנגלית מסוג API_KEY_EXPIRING_SOON, עם expiresAt ו־remainingSeconds. האזהרה חלה גם על המפתח הקודם בתקופת חפיפה; במקרה זה reason הוא rotationOverlap, ויש לעבור למפתח החדש. האזהרה אינה משנה את תוצאת הקריאה. ימות המשיח בע״מ מרכז המפתחים · תיעוד ה API