למפתחים

ה-API של תוריו.
היומן של העסק, מתוך המערכת שלכם.

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

מה אפשר לעשות

היכולות של ה-API

גרסה 1 של ה-API, בכתובת https://toryou.co.il/api/v1. בקשות ותשובות ב-JSON.

שירותים וצוות

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

קריאה

שעות פנויות בזמן אמת

השעות הפנויות לשירות ביום מסוים, לפי שעות הפעילות, ההתראה מראש, החסימות והאירועים ביומן Google של הצוות.

קריאה

קביעת תורים

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

תורים

הזזה וביטול

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

תורים

יומן התורים

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

קריאה

לקוחות

חיפוש לקוח לפי שם או טלפון, יצירת לקוח חדש ועדכון פרטים, הערות, תגיות וחסימה.

לקוחות

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

למי זה מתאים

שלושה סוגי חיבורים

עסק שמחבר את המערכות שלו

אתר שמציג שעות פנויות וקובע תורים בעיצוב שלו, CRM שמסנכרן לקוחות, או גיליון שמושך את היומן לדוחות.

בית תוכנה או סוכנות

מי שבונה אתרים ומערכות לעסקים יכול לחבר אותם לתוריו בשם הלקוח, עם מפתח שהעסק יוצר ומנהל.

מפתחים שבונים מוצר

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

איך מתחילים

מגישה ועד הקריאה הראשונה

  1. מפעילים את התוספת. ה-API היא חבילה משלימה שמצטרפת לכל אחת מהחבילות. פונים אלינו, ואנחנו מפעילים אותה לעסק.
  2. יוצרים מפתח. בממשק הניהול, במסך "API למפתחים", לוחצים "מפתח חדש", נותנים לו שם ובוחרים רק את ההרשאות שהמערכת צריכה.
  3. שומרים את המפתח. המפתח המלא מוצג פעם אחת בלבד. שומרים אותו בשרת, למשל במשתנה סביבה, ולא בקוד ולא בדפדפן.
  4. שולחים קריאה. כל קריאה נשלחת מהשרת שלכם עם המפתח בכותרת Authorization.
# the business and the key's permissions
curl https://toryou.co.il/api/v1/me \
  -H "Authorization: Bearer tk_xxxxxxxx_your_secret"

הרשאות

כל מפתח מקבל רק את מה שהוא צריך

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

הרשאהמה היא מאפשרת
readשירותים, צוות, שעות פנויות, רשימת תורים ולקוחות.
appointments:writeקביעת תור, הזזה וביטול. הלקוח מקבל את אותן הודעות כמו בתור שנקבע מהממשק.
customers:writeיצירת לקוח ועדכון שם, דוא״ל, הערות, תגיות וחסימה.

נקודות הקצה

כל הקריאות בגרסה 1

תאריכים ושעות בבקשות הם בשעון המקומי של העסק: YYYY-MM-DD ו-HH:MM. בתשובות מופיעים גם startAt ו-endAt ב-UTC. רשימות חוזרות בעמודים של 100, עם hasMore.

קריאההרשאהמה היא עושה
העסק
GET /api/v1/meכל מפתחשם העסק, אזור הזמן, כתובת דף ההזמנה וההרשאות של המפתח.
GET /api/v1/servicesreadהשירותים: משך, מחיר, קיבולת, כמות מרבית, פעיל והזמנה אונליין.
GET /api/v1/staffreadאנשי הצוות והשירותים שכל אחד נותן.
GET /api/v1/availabilityreadשעות פנויות. serviceId ו-date חובה. אפשר גם staffId, quantity ו-branchId.
תורים
GET /api/v1/appointmentsreadתורים בטווח from עד to, עד 62 ימים. סינון אופציונלי לפי status ו-customerId, ועמוד עם page.
GET /api/v1/appointments/:idreadתור אחד.
POST /api/v1/appointmentsappointments:writeקביעת תור. לקוח שעוד לא קיים נוצר לפי מספר הטלפון. מומלץ לשלוח Idempotency-Key.
POST /api/v1/appointments/:id/moveappointments:writeהזזה ל-date ו-time חדשים, ואפשר גם לאיש צוות אחר.
POST /api/v1/appointments/:id/cancelappointments:writeביטול, עם reason אופציונלי.
לקוחות
GET /api/v1/customersreadחיפוש לפי שם או טלפון עם q, או התאמה מדויקת עם phone.
GET /api/v1/customers/:idreadלקוח אחד, כולל תגיות, חסימה והסכמה לדיוור.
POST /api/v1/customerscustomers:writeיצירת לקוח, או החזרת הלקוח הקיים לפי טלפון. לא דורס שם שהלקוח מילא בעצמו.
PATCH /api/v1/customers/:idcustomers:writeעדכון שם פרטי ושם משפחה, דוא״ל, הערות, תגיות (עד 10) וחסימה.

סטטוסים של תור: pending ממתין לאישור, confirmed מאושר, completed הושלם, no_show לא הגיע, cancelled בוטל.

דוגמה

שעות פנויות וקביעת תור

1. בודקים מה פנוי

curl "https://toryou.co.il/api/v1/availability?serviceId=SERVICE_ID&date=2026-11-01" \
  -H "Authorization: Bearer tk_xxxxxxxx_your_secret"

# 200
{ "date": "2026-11-01",
  "slots": [ { "time": "10:30", "staffIds": ["STAFF_ID"] } ],
  "reason": null }

2. קובעים את התור

curl -X POST https://toryou.co.il/api/v1/appointments \
  -H "Authorization: Bearer tk_xxxxxxxx_your_secret" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 3f8e2a1c-7b4d-4e9a-9c11-2d5f6a7b8c90" \
  -d '{"customer":{"phone":"0501234567","name":"Dana Levi"},
       "serviceId":"SERVICE_ID","date":"2026-11-01",
       "time":"10:30","notes":"Booked on our website"}'
// Node.js: this week's appointments
const res = await fetch('https://toryou.co.il/api/v1/appointments?from=2026-11-01&to=2026-11-07', {
  headers: { Authorization: 'Bearer ' + process.env.TORYOU_API_KEY },
});
const { appointments, hasMore } = await res.json();

בלי תורים כפולים. שלחו בכל קביעת תור כותרת Idempotency-Key עם מזהה UUID חדש, או requestId בגוף הבקשה. אם החיבור נפל ואתם שולחים שוב עם אותו מזהה ואותו תוכן, מתקבל אותו תור, בלי תור נוסף ובלי אישור נוסף ללקוח. אותו מזהה עם תוכן אחר מחזיר 409 עם idempotency_mismatch.

תור בשעה תפוסה מחזיר 409 עם "code": "slot_taken". השדה "force": true קובע גם מחוץ לשעות הפעילות, כמו קביעה ידנית בממשק.

אבטחה

בנוי לשימוש משרת לשרת

המפתח לא נשמר אצלנו

שומרים רק גיבוב של המפתח. המפתח המלא מוצג פעם אחת ביצירה, ומפתח שאבד מבטלים ויוצרים חדש.

לא מהדפדפן

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

תוקף והגבלת IP

לכל מפתח אפשר לקבוע תוקף, ולהגביל אותו לעד 20 כתובות IP של השרתים שלכם.

מגבלות קצב

עד 300 קריאות בדקה לכל מפתח. אחרי 20 ניסיונות אימות כושלים, הכתובת נחסמת לשעה.

יומן גישה

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

שליטה בידי העסק

העסק רואה מתי כל מפתח היה בשימוש לאחרונה, ויכול לבטל אותו בלחיצה. עד 20 מפתחות פעילים לעסק.

שגיאות

קודי תשובה

שגיאה חוזרת כ-JSON עם error, הסבר בעברית, ולעיתים גם code קבוע שאפשר לבדוק בקוד.

קודמתי
400פרמטר חסר או לא תקין, למשל תאריך שלא בפורמט YYYY-MM-DD.
401מפתח חסר, לא תקין, בוטל או שפג תוקפו. api_key_required, api_key_invalid, api_key_expired.
403למפתח אין את ההרשאה (scope_required), הקריאה הגיעה מכתובת IP לא מורשית או מדפדפן, התוספת לא פעילה לעסק, או שהעסק לא פעיל. ביצירת מפתח בממשק הניהול: ניסיון לתת למפתח הרשאה שאין למשתמש (scope_not_grantable).
404התור, הלקוח או השירות לא נמצאו בעסק.
409התנגשות, למשל שעה שכבר נתפסה (slot_taken), או מזהה בקשה שכבר שימש לתוכן אחר (idempotency_mismatch).
429יותר מדי קריאות (rate_limited). השדה retryAfterSec אומר כמה שניות לחכות לפני שמנסים שוב.

מה בדרך

היכולות הבאות

היכולות האלה עדיין לא זמינות. נשמח לשמוע מה הכי חשוב לכם.

Webhooks

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

בתכנון

עסק לבדיקות

סביבת ניסוי עם נתונים לדוגמה, לפיתוח ולבדיקות בלי לגעת ביומן אמיתי.

בתכנון

התחברות עם תוריו

חיבור באישור של בעל העסק (OAuth) למוצרים שעובדים עם עסקים רבים, בלי להעתיק מפתחות.

בתכנון

רוצים לחבר את המערכת שלכם לתוריו?

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