API
לפרסם במשכן מחוץ לאפליקציה.
עודכן ב-2026-08-19
מפתח API של משכן מאפשר לסטודיו, לסקריפט או לשרת לקרוא את הפיד ולפרסם בו בשמכם. זו דלת שנייה לזהות שלכם — לא חשבון שירות: מפתח כפוף לכל הכללים שחלים עליכם, מרמת האימות ועד לעלות ה-מ של פרסום ולאנשים שחסמתם.
כל מה שלהלן מוגש מ-https://api.mishkan.tech. התשובות ב-JSON; שגיאה נושאת סטטוס HTTP ומחרוזת "error" אחת.
יצירת מפתח
מפתחות נוצרים באפליקציה: פרופיל ← מפתחות API ← +. יצירת מפתח דורשת רמה 4 (אימות פורמלי), אותו רף כמו חשבונות עסקיים — מפתח פועל בשמכם מחוץ לאפליקציה, ולכן הוא ניתן רק לחשבון שאדמין זיהה. צפייה וביטול אפשריים בכל רמה.
- שם — לצורך הסדר שלכם («Studio Midbar»).
- לפרסם בתור — החשבון האישי שלכם או אחד מחשבונות המשנה העסקיים. מפתח שמוצמד לעסק יכול לפרסם רק תחת אותה זהות; ציון זהות אחרת בבקשה נדחה.
- לאפשר פרסום — כבוי, המפתח יכול רק לקרוא.
הסוד (msk_live_…) מוצג פעם אחת בלבד. השרת שומר רק את ה-SHA-256 שלו, ולכן אי אפשר לשחזר אותו — מפתח שאבד מבטלים ומחליפים. אפשר להחזיק עד 20 מפתחות פעילים, לכל אחד תפוגה אופציונלית של עד עשר שנים.
אימות
שלחו את המפתח כ-bearer token. גם הכותרת X-API-Key מתקבלת, עבור לקוחות ששומרים את Authorization לעצמם.
curl https://api.mishkan.tech/api/users/me \
-H "Authorization: Bearer $MISHKAN_KEY"מפתח לא מוכר, מבוטל או שפג — כולם מקבלים אותו 401, במכוון: בדיקה לא מלמדת תוקף דבר.
הרשאות
מפתח נושא posts:read, posts:write, או את שניהם. כל השאר — הודעות, מ, אימות, ניהול, וניהול המפתחות עצמו — שמור לחיבור מתוך האפליקציה. מפתח שדלף אינו יכול ליצור מפתח נוסף, לקרוא את השיחות שלכם או לרוקן את היתרה.
נקודות קצה
| נתיב | הרשאה | רמה נדרשת |
|---|---|---|
| GET /api/users/me | posts:read | — |
| GET /api/businesses | posts:read | — |
| GET /api/cities | posts:read | — |
| GET /api/posts/mine | posts:read | — |
| GET /api/feed?kind=visual|text | posts:read | 1 (דוא״ל מאומת) |
| GET /api/posts/{id} | posts:read | 1 (דוא״ל מאומת) |
| POST /api/posts | posts:write | 3 לפרסום בפיד הציבורי |
| POST /api/posts/visual | posts:write | 3 לפרסום בפיד הציבורי |
| POST /api/posts/youtube | posts:write | 3 לפרסום בפיד הציבורי |
| DELETE /api/posts/{id} | posts:write | המחבר או אדמין |
פרסום בפיד של קבוצה (conversation_id) מחליף את דרישת הרמה בחברות בקבוצה ובמדיניות הפרסום שלה, ומשלם את המחיר של הקבוצה לבעליה.
curl "https://api.mishkan.tech/api/feed?kind=text&limit=20" \
-H "Authorization: Bearer $MISHKAN_KEY"פרסום
פרסום בפיד הציבורי עולה 2 מ ודורש אימות מזוזה (רמה 3). החיוב מוחזר אם השמירה נכשלת.
POST /api/posts מפרסם טקסט וקישורים, ב-JSON:
| שדה | משמעות |
|---|---|
| content | עד 4000 תווים |
| link_url | כתובת http(s) מלאה, אופציונלית, נפתחת ומוצגת ככרטיס |
| language | fr | en | he — מסנן השפה של הפיד |
| city | מזהה עיר — מסנן העיר של הפיד |
| business_id | אופציונלי; חייב להתאים לזהות המפתח אם הוא מוצמד |
| conversation_id | אופציונלי; מפרסם בפיד של אותה קבוצה במקום בפיד הציבורי |
curl -X POST https://api.mishkan.tech/api/posts \
-H "Authorization: Bearer $MISHKAN_KEY" \
-H "Content-Type: application/json" \
-d '{"content":"Chag sameach","language":"en"}'POST /api/posts/visual מפרסם ריל או קרוסלה כ-multipart/form-data: בין קובץ אחד לעשרה, לפי סדר הטופס, עד 30MB לכל הבקשה. הכיתוב נכנס ל-content (1000 תווים), ואותם שדות אופציונליים חלים.
curl -X POST https://api.mishkan.tech/api/posts/visual \
-H "Authorization: Bearer $MISHKAN_KEY" \
-F "content=Kabbalat Shabbat, 18:30" \
-F "media=@reel.mp4;type=video/mp4"POST /api/posts/youtube מפרסם ריל שמבוסס על סרטון יוטיוב. url הוא הסרטון; link_url הוא כפתור «למידע נוסף» נפרד — מלאו את שניהם אם אתם רוצים את שניהם.
curl -X POST https://api.mishkan.tech/api/posts/youtube \
-H "Authorization: Bearer $MISHKAN_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://youtu.be/abc123","link_url":"https://example.org"}'מגבלות
| מגבלה | ערך |
|---|---|
| קריאות | כ-60 לדקה, פרץ של 30 |
| כתיבות | כ-20 לדקה, פרץ של 5 |
| לפי כתובת IP | כ-300 לדקה, פרץ של 60 |
| גודל בקשה | 30MB (App Engine מגביל ל-32MB) |
| מדיה לפרסום | 10 |
| מפתחות פעילים לחשבון | 20 |
שגיאות
{ "error": "missing the posts:write scope" }| סטטוס | המשמעות |
|---|---|
| 401 invalid API key | לא מוכר, מבוטל או שפג — שלושתם נענים אותו הדבר |
| 403 missing the posts:write scope | המפתח לקריאה בלבד |
| 403 verification level 3 required | החשבון אינו מאומת מזוזה, מה שהפיד הציבורי דורש |
| 403 can only publish as the business account it is bound to | הבקשה ציינה זהות אחרת מזו של המפתח |
| 402 | אין מספיק מ לתשלום על הפרסום |
| 429 | חריגה מהמכסה — המתינו ונסו שוב |
ביטול מפתח
החליקו על המפתח (iOS) או הקישו על הפח (Android), או קראו ל-DELETE /api/api-keys/{id} עם אסימון התחברות. ההשפעה מיידית. פרסומים שכבר נעשו נשארים באוויר: ביטול אישור גישה אינו הסרה של מה שפורסם באמצעותו.