מבוא
סקירה כללית
כל הקריאות מבוצעות כנגד שרת Parse ייעודי לחברת התיירות.
כל בקשה חייבת לכלול שני כותרות אימות. כל הנתונים מוחזרים בפורמט JSON.
תאריכים בפורמט ISO 8601. מחירים במטבע שקל ישראלי.
סביבת Sandbox: לבדיקות ניתן להשתמש ב Application-Id לסביבת הפיתוח.
לא יעדכן נתונים ראשיים. כל שאר ה headers זהים.
Master Key: מפתח ה Master Key מעניק גישה מלאה לכל הנתונים ללא הגבלה.
אל תחשפו אותו בצד הלקוח, בלוגים, או ב version control.
אימות
Authentication
כל בקשת API דורשת שני headers חובה. ה Application-Id מזהה את הטנאנט שלכם.
ה Master-Key מעניק הרשאות כתיבה מלאות.
Base URL
https://api-3.mbapps.co.il/parse/
Application ID Header
X-Parse-Application-Id
מזהה ייחודי של הטנאנט. חובה בכל בקשה.
Master Key Header
X-Parse-Master-Key
מפתח גישה מלאה. שמרו בצד השרת בלבד.
# All requests require both headers
curl -X GET \
'https://api-3.mbapps.co.il/parse/classes/Trips' \
-H 'X-Parse-Application-Id: YOUR_APP_ID' \
-H 'X-Parse-Master-Key: YOUR_MASTER_KEY' \
-H 'Content-Type: application/json'
const BASE_URL = 'https://api-3.mbapps.co.il/parse';
const headers = {
'X-Parse-Application-Id': 'YOUR_APP_ID',
'X-Parse-Master-Key': 'YOUR_MASTER_KEY',
'Content-Type': 'application/json'
};
// Reuse headers object in all requests below
רשימה מהירה
כל נקודות הקצה
Endpoints Reference
5 endpoints · 3 webhooks| שיטה | נתיב | תיאור |
|---|---|---|
| POST | /parse/classes/Accounts | הכנסת ליד חדש |
| POST | /parse/classes/Bookings | יצירת הזמנה |
| GET | /parse/classes/Trips | רשימת טיולים עם סינון |
| POST | /parse/classes/CampaignCosts | תיעוד עלות קמפיין |
| GET | /parse/classes/Trips/:objectId | פרטי טיול בודד |
לידים ולקוחות
הכנסת ליד חדש
יוצר רשומת Account חדשה במערכת. ניתן להשתמש בנקודת קצה זו מטפסי פנייה, פייסבוק Lead Ads, Google Ads, ואתר החברה.
לאחר יצירה מוצלחת ה CRM מפעיל אוטומטית את זרימת הטיפול בלידים.
POST
/parse/classes/Accounts
יצירת ליד חדש
פרמטרים חובה
| שדה | סוג | חובה | תיאור |
|---|---|---|---|
| FirstName | String | חובה | שם פרטי של הליד |
| LastName | String | חובה | שם משפחה |
| Phone | String | חובה | מספר טלפון, פורמט ישראלי: 05XXXXXXXX |
| String | אופציונלי | כתובת דוא"ל | |
| Source | String | אופציונלי | מקור הליד: facebook, google, website, referral, organic |
| InterestedTrip | String | אופציונלי | שם הטיול שהליד ביקש מידע עליו |
| TravelerCount | Number | אופציונלי | מספר הנוסעים המתוכנן |
curl -X POST \
'https://api-3.mbapps.co.il/parse/classes/Accounts' \
-H 'X-Parse-Application-Id: YOUR_APP_ID' \
-H 'X-Parse-Master-Key: YOUR_MASTER_KEY' \
-H 'Content-Type: application/json' \
-d '{
"FirstName": "דנה",
"LastName": "לוי",
"Phone": "0521234567",
"Email": "dana.levi@gmail.com",
"Source": "facebook",
"InterestedTrip": "חופשה באיים היוונים",
"TravelerCount": 4
}'
const response = await fetch(
`${BASE_URL}/classes/Accounts`,
{
method: 'POST',
headers,
body: JSON.stringify({
FirstName: 'דנה',
LastName: 'לוי',
Phone: '0521234567',
Email: 'dana.levi@gmail.com',
Source: 'facebook',
InterestedTrip: 'חופשה באיים היוונים',
TravelerCount: 4
})
}
);
const data = await response.json();
console.log('Lead created:', data.objectId);
תגובה לדוגמה
201 Created
{
"objectId": "aX9kTmPq72",
"createdAt": "2026-03-25T09:14:22.441Z"
}
הזמנות
יצירת הזמנה
יוצר הזמנה חדשה ומקשר אותה לליד קיים ולטיול. מעדכן אוטומטית את מונה ה CurrentBookings בטיול הרלוונטי.
לאחר יצירה מוצלחת נשלחת הודעת WhatsApp אישור ללקוח.
Pointer objects: שדות AccountId ו TripId הם Pointer לאובייקטים ב Parse.
יש להשתמש בפורמט
{"__type":"Pointer","className":"Accounts","objectId":"..."}
POST
/parse/classes/Bookings
יצירת הזמנה חדשה
פרמטרים
| שדה | סוג | חובה | תיאור |
|---|---|---|---|
| AccountId | Pointer | חובה | מצביע לרשומת Accounts (ה objectId של הליד) |
| TripId | Pointer | חובה | מצביע לרשומת Trips (ה objectId של הטיול) |
| Status | String | חובה | סטטוס: pending, confirmed, cancelled, completed |
| Adults | Number | חובה | מספר מבוגרים |
| Children | Number | אופציונלי | מספר ילדים, ברירת מחדל 0 |
| TotalPrice | Number | חובה | סכום כולל בשקלים |
| Notes | String | אופציונלי | הערות חופשיות: בקשות מיוחדות, דיאטה, נגישות |
curl -X POST \
'https://api-3.mbapps.co.il/parse/classes/Bookings' \
-H 'X-Parse-Application-Id: YOUR_APP_ID' \
-H 'X-Parse-Master-Key: YOUR_MASTER_KEY' \
-H 'Content-Type: application/json' \
-d '{
"AccountId": {
"__type": "Pointer",
"className": "Accounts",
"objectId": "aX9kTmPq72"
},
"TripId": {
"__type": "Pointer",
"className": "Trips",
"objectId": "tYr3WxQm19"
},
"Status": "confirmed",
"Adults": 2,
"Children": 2,
"TotalPrice": 35600,
"Notes": "ילד אחד דורש עריסה"
}'
const response = await fetch(
`${BASE_URL}/classes/Bookings`,
{
method: 'POST',
headers,
body: JSON.stringify({
AccountId: {
__type: 'Pointer',
className: 'Accounts',
objectId: 'aX9kTmPq72'
},
TripId: {
__type: 'Pointer',
className: 'Trips',
objectId: 'tYr3WxQm19'
},
Status: 'confirmed',
Adults: 2,
Children: 2,
TotalPrice: 35600,
Notes: 'ילד אחד דורש עריסה'
})
}
);
const booking = await response.json();
console.log('Booking ref:', booking.objectId);
תגובה לדוגמה
201 Created
{
"objectId": "bK2mNpLr44",
"createdAt": "2026-03-25T10:05:18.113Z"
}
טיולים
רשימת טיולים
מחזיר את רשימת הטיולים הזמינים. תומך בסינון לפי סטטוס, מותג וסוג. ניתן לשלב מספר תנאים ב where object.
שימושי לאכלוס דרופדאון בטפסים, בניית קטלוג באתר, ובדיקת תפוסה בזמן אמת.
GET
/parse/classes/Trips
קבלת טיולים עם סינון
Query Parameters
| פרמטר | סוג | חובה | תיאור |
|---|---|---|---|
| where | JSON | אופציונלי | אובייקט סינון JSON בפורמט URL-encoded |
| limit | Number | אופציונלי | מספר תוצאות מקסימלי, ברירת מחדל 100 |
| skip | Number | אופציונלי | דילוג על N תוצאות ראשונות לצורך pagination |
| order | String | אופציונלי | מיון: DepartureDate, PricePerPerson. הוסף - לסדר יורד |
ערכי Where Filter
| שדה | ערכים אפשריים | דוגמה |
|---|---|---|
| Status | טיוטה, פעיל, מלא, סגור, בוטל | {"Status":"פעיל"} |
| Brand | Dreams, Solo | {"Brand":"Dreams"} |
| Type | משפחות, זוגות, סולו, קבוצות, עסקי, הרפתקאות | {"Type":"משפחות"} |
# Get all active Dreams-brand trips sorted by departure date
curl -X GET \
'https://api-3.mbapps.co.il/parse/classes/Trips?where=%7B%22Status%22%3A%22%D7%A4%D7%A2%D7%99%D7%9C%22%2C%22Brand%22%3A%22Dreams%22%7D&order=DepartureDate' \
-H 'X-Parse-Application-Id: YOUR_APP_ID' \
-H 'X-Parse-Master-Key: YOUR_MASTER_KEY'
# Decoded where: {"Status":"פעיל","Brand":"Dreams"}
const where = encodeURIComponent(JSON.stringify({
Status: 'פעיל',
Brand: 'Dreams'
}));
const response = await fetch(
`${BASE_URL}/classes/Trips?where=${where}&order=DepartureDate&limit=20`,
{ headers }
);
const { results } = await response.json();
console.log(`Found ${results.length} trips`);
// Filter trips with available spots
const available = results.filter(
t => t.CurrentBookings < t.MaxCapacity
);
תגובה לדוגמה
200 OK
{
"results": [
{
"objectId": "tYr3WxQm19",
"Name": "חופשה באיים היוונים",
"Destination": "יוון, סנטוריני וקרפאטוס",
"DepartureDate": "2026-06-15T00:00:00.000Z",
"PricePerPerson": 8900,
"MaxCapacity": 40,
"CurrentBookings": 28,
"Status": "פעיל",
"Brand": "Dreams",
"Type": "משפחות",
"TripCode": "GR-FAM-0615",
"createdAt": "2026-02-01T08:00:00.000Z"
}
]
}
קמפיינים
תיעוד עלות קמפיין
מוסיף רשומת הוצאה לקמפיין פרסומי. המערכת מחשבת אוטומטית CPL ו ROI על בסיס ההוצאות ומספר הלידים שהגיעו מאותו קמפיין.
ניתן לייבא נתוני הוצאות מ Meta Ads ו Google Ads באמצעות API זה.
POST
/parse/classes/CampaignCosts
הוספת עלות לקמפיין
פרמטרים
| שדה | סוג | חובה | תיאור |
|---|---|---|---|
| CampaignId | Pointer | חובה | מצביע לרשומת Campaigns |
| Amount | Number | חובה | סכום ההוצאה בשקלים |
| Date | Date | חובה | תאריך ההוצאה בפורמט ISO 8601 |
| Channel | String | חובה | ערוץ: facebook, google, instagram, tiktok, email, sms |
curl -X POST \
'https://api-3.mbapps.co.il/parse/classes/CampaignCosts' \
-H 'X-Parse-Application-Id: YOUR_APP_ID' \
-H 'X-Parse-Master-Key: YOUR_MASTER_KEY' \
-H 'Content-Type: application/json' \
-d '{
"CampaignId": {
"__type": "Pointer",
"className": "Campaigns",
"objectId": "cMp7RwVz31"
},
"Amount": 1850,
"Date": {
"__type": "Date",
"iso": "2026-03-25T00:00:00.000Z"
},
"Channel": "facebook"
}'
const response = await fetch(
`${BASE_URL}/classes/CampaignCosts`,
{
method: 'POST',
headers,
body: JSON.stringify({
CampaignId: {
__type: 'Pointer',
className: 'Campaigns',
objectId: 'cMp7RwVz31'
},
Amount: 1850,
Date: {
__type: 'Date',
iso: new Date().toISOString()
},
Channel: 'facebook'
})
}
);
const cost = await response.json();
console.log('Cost recorded:', cost.objectId);
תגובה לדוגמה
201 Created
{
"objectId": "cCt5XpMn08",
"createdAt": "2026-03-25T11:42:07.882Z"
}
Webhooks
אירועים ו Webhook Payloads
המערכת שולחת HTTP POST לכתובת ה webhook שלכם בזמן אמת עם התרחשות אירועים.
כל payload כולל את שם האירוע, חותמת זמן, ונתוני האובייקט הרלוונטי.
יש לאשר קבלת ה webhook עם תגובת 200 OK תוך 5 שניות.
אימות Webhook: כל בקשה נחתמת עם header
X-MB-Signature המכיל HMAC-SHA256
של ה payload. בדקו את החתימה לפני עיבוד הבקשה.
new_lead
WEBHOOK
ליד חדש נוצר במערכת
{
"event": "new_lead",
"timestamp": "2026-03-25T09:14:22.441Z",
"data": {
"objectId": "aX9kTmPq72",
"FirstName": "דנה",
"LastName": "לוי",
"Phone": "0521234567",
"Email": "dana.levi@gmail.com",
"Source": "facebook",
"InterestedTrip": "חופשה באיים היוונים",
"TravelerCount": 4,
"createdAt": "2026-03-25T09:14:22.441Z"
}
}
booking_confirmed
WEBHOOK
הזמנה אושרה ושולמה
{
"event": "booking_confirmed",
"timestamp": "2026-03-25T10:05:18.113Z",
"data": {
"objectId": "bK2mNpLr44",
"Status": "confirmed",
"Adults": 2,
"Children": 2,
"TotalPrice": 35600,
"Notes": "ילד אחד דורש עריסה",
"Account": {
"objectId": "aX9kTmPq72",
"FirstName": "דנה",
"LastName": "לוי",
"Phone": "0521234567"
},
"Trip": {
"objectId": "tYr3WxQm19",
"Name": "חופשה באיים היוונים",
"DepartureDate": "2026-06-15T00:00:00.000Z"
},
"createdAt": "2026-03-25T10:05:18.113Z"
}
}
trip_full
WEBHOOK
טיול הגיע לתפוסה מקסימלית
{
"event": "trip_full",
"timestamp": "2026-03-25T14:31:55.007Z",
"data": {
"objectId": "tYr3WxQm19",
"Name": "חופשה באיים היוונים",
"Destination": "יוון, סנטוריני וקרפאטוס",
"DepartureDate": "2026-06-15T00:00:00.000Z",
"MaxCapacity": 40,
"CurrentBookings": 40,
"Status": "מלא",
"Brand": "Dreams",
"waitlist_count": 0
}
}