notifications
Notifications
Templates, preferences, send/retry, provider credentials, push device registration, and usage.
34 נקודות קצה
GET /api/v1/me/notifications
The caller’s own in-app notification inbox, newest first (cursor-paginated).
פרמטרים של הנתיב והשאילתה
| שם | מיקום | סוג | מגבלות |
|---|---|---|---|
cursor | query | string | — |
limit | query | integer | 1–100 · default: 25 |
unreadOnly | query | enum: "true" | "false" | default: "false" |
דוגמה עם curl
curl -X GET "https://your-institute.example/api/v1/me/notifications" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"תשובות
| שם | סוג | מגבלות |
|---|---|---|
dataחובה | array<object> | — |
nextCursorחובה | string | null | — |
{
"data": [
{
"id": "37386ae0-3738-7738-8386-37386ae03738",
"templateKey": "string",
"locale": "ar",
"title": "Midterm Exam",
"body": "string",
"payload": {},
"readAt": "2026-03-02T09:00:00.000Z",
"createdAt": "2026-03-02T09:00:00.000Z"
}
],
"nextCursor": null
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
POST /api/v1/me/notifications/{id}/read
Mark one of the caller’s own inbox entries as read (idempotent).
פרמטרים של הנתיב והשאילתה
| שם | מיקום | סוג | מגבלות |
|---|---|---|---|
idחובה | path | string | — |
דוגמה עם curl
curl -X POST "https://your-institute.example/api/v1/me/notifications/37386ae0-3738-7738-8386-37386ae03738/read" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"תשובות
| שם | סוג | מגבלות |
|---|---|---|
okחובה | enum: true | — |
updatedחובה | integer | 0–9007199254740991 |
{
"ok": true,
"updated": 0
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
POST /api/v1/me/notifications/read-all
Mark every unread inbox entry of the caller’s own as read.
דוגמה עם curl
curl -X POST "https://your-institute.example/api/v1/me/notifications/read-all" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"תשובות
| שם | סוג | מגבלות |
|---|---|---|
okחובה | enum: true | — |
updatedחובה | integer | 0–9007199254740991 |
{
"ok": true,
"updated": 0
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
GET /api/v1/me/notifications/unread-count
How many of the caller’s own inbox entries are still unread.
דוגמה עם curl
curl -X GET "https://your-institute.example/api/v1/me/notifications/unread-count" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"תשובות
| שם | סוג | מגבלות |
|---|---|---|
unreadחובה | integer | 0–9007199254740991 |
{
"unread": 0
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
GET /api/v1/notification-preferences
The caller's own per-channel notification preferences.
דוגמה עם curl
curl -X GET "https://your-institute.example/api/v1/notification-preferences" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"תשובות
| שם | סוג | מגבלות |
|---|---|---|
preferencesחובה | array<object> | — |
{
"preferences": [
{
"channel": "push",
"enabled": true,
"digestMode": "immediate"
}
]
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
PUT /api/v1/notification-preferences
Sets one or more of the caller's own per-channel notification preferences.
גוף הבקשה
| שם | סוג | מגבלות |
|---|---|---|
preferencesחובה | array<object> | — |
דוגמה
{
"preferences": [
{
"channel": "push",
"enabled": true,
"digestMode": "immediate"
}
]
}דוגמה עם curl
curl -X PUT "https://your-institute.example/api/v1/notification-preferences" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"preferences": [
{
"channel": "push",
"enabled": true,
"digestMode": "immediate"
}
]
}'תשובות
| שם | סוג | מגבלות |
|---|---|---|
preferencesחובה | array<object> | — |
{
"preferences": [
{
"channel": "push",
"enabled": true,
"digestMode": "immediate"
}
]
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
GET /api/v1/notification-rules
The effective rule of every notification type, in the registry order, cursor-paginated (the whole catalogue fits one page). Each entry carries what the type allows, its locks, the Institflow default and the version to echo as `expectedVersion`.
פרמטרים של הנתיב והשאילתה
| שם | מיקום | סוג | מגבלות |
|---|---|---|---|
cursor | query | string | — |
limit | query | integer | 1–100 · default: 25 |
דוגמה עם curl
curl -X GET "https://your-institute.example/api/v1/notification-rules" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"תשובות
| שם | סוג | מגבלות |
|---|---|---|
dataחובה | array<object> | — |
nextCursorחובה | string | null | — |
{
"data": [
{
"typeKey": "string",
"category": "attendance",
"trigger": {
"kind": "event",
"event": "string",
"anchor": "string"
},
"subject": "string",
"recipientKinds": [
"students"
],
"staffPermission": "string",
"defaultStaffAudience": "none",
"scopes": [
"course"
],
"guardianGrouping": "per_child",
"urgencyChoice": true,
"locks": {
"enabled": true,
"minimumStaff": true,
"userCanMute": true,
"emailOn": true
},
"reminder": {
"maxLeads": -9007199254740991,
"supportsItemMode": true,
"supportsEnrolmentRelative": true
},
"legacySettingKey": "string",
"rule": {
"enabled": true,
"students": true,
"teachers": true,
"guardians": "none",
"staff": {
"mode": "default",
"roleIds": [
"9ded041d-9ded-7ded-8ed0-9ded041d9ded"
]
},
"memberIds": [
"b34e3ee7-b34e-734e-84e3-b34e3ee7b34e"
],
"channels": {
"push": true,
"email": "ada.lovelace@example.com",
"sms": true,
"whatsapp": true
},
"urgency": "immediate",
"reminder": {
"leads": [
"value"
],
"respectQuietHours": true,
"includeEnrolmentRelative": true
},
"scope": {
"mode": "all",
"courseIds": [
"8e692f22-8e69-7e69-8692-8e692f228e69"
],
"groupIds": [
"b0a20d96-b0a2-70a2-8a20-b0a20d96b0a2"
]
},
"userCanMute": true
},
"defaults": {
"enabled": true,
"students": true,
"teachers": true,
"guardians": "none",
"staff": {
"mode": "default",
"roleIds": [
"9ded041d-9ded-7ded-8ed0-9ded041d9ded"
]
},
"memberIds": [
"b34e3ee7-b34e-734e-84e3-b34e3ee7b34e"
],
"channels": {
"push": true,
"email": "ada.lovelace@example.com",
"sms": true,
"whatsapp": true
},
"urgency": "immediate",
"reminder": {
"leads": [
"value"
],
"respectQuietHours": true,
"includeEnrolmentRelative": true
},
"scope": {
"mode": "all",
"courseIds": [
"8e692f22-8e69-7e69-8692-8e692f228e69"
],
"groupIds": [
"b0a20d96-b0a2-70a2-8a20-b0a20d96b0a2"
]
},
"userCanMute": true
},
"customisedFields": [
"string"
],
"version": -9007199254740991,
"updatedAt": "2026-03-02T09:00:00.000Z"
}
],
"nextCursor": null
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
GET /api/v1/notification-rules/{typeKey}
One type: the effective rule, the institute's own override, the locks and — per channel — whether it can deliver, who bills it and at what price.
פרמטרים של הנתיב והשאילתה
| שם | מיקום | סוג | מגבלות |
|---|---|---|---|
typeKeyחובה | path | string | — |
דוגמה עם curl
curl -X GET "https://your-institute.example/api/v1/notification-rules/string" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"תשובות
| שם | סוג | מגבלות |
|---|---|---|
typeKeyחובה | string | — |
categoryחובה | enum: "attendance" | "billing" | "learning" | "reminders" | "institute" | — |
triggerחובה | object | — |
subjectחובה | string | — |
recipientKindsחובה | array<enum: "students" | "guardians" | "teachers" | "staff" | "members"> | — |
staffPermissionחובה | string | null | — |
defaultStaffAudienceחובה | enum: "none" | "permission_holders" | "owners_managers" | — |
scopesחובה | array<enum: "course" | "group"> | — |
guardianGroupingחובה | enum: "per_child" | "per_subject" | — |
urgencyChoiceחובה | boolean | — |
locksחובה | object | — |
reminderחובה | object | null | — |
legacySettingKeyחובה | string | null | — |
ruleחובה | object | — |
defaultsחובה | object | — |
customisedFieldsחובה | array<string> | — |
versionחובה | integer | -9007199254740991–9007199254740991 |
updatedAtחובה | string (date-time) | null | — |
overrideחובה | object | null | — |
channelStatesחובה | array<object> | — |
{
"typeKey": "string",
"category": "attendance",
"trigger": {
"kind": "event",
"event": "string",
"anchor": "string"
},
"subject": "string",
"recipientKinds": [
"students"
],
"staffPermission": "string",
"defaultStaffAudience": "none",
"scopes": [
"course"
],
"guardianGrouping": "per_child",
"urgencyChoice": true,
"locks": {
"enabled": true,
"minimumStaff": true,
"userCanMute": true,
"emailOn": true
},
"reminder": {
"maxLeads": -9007199254740991,
"supportsItemMode": true,
"supportsEnrolmentRelative": true
},
"legacySettingKey": "string",
"rule": {
"enabled": true,
"students": true,
"teachers": true,
"guardians": "none",
"staff": {
"mode": "default",
"roleIds": [
"9ded041d-9ded-7ded-8ed0-9ded041d9ded"
]
},
"memberIds": [
"b34e3ee7-b34e-734e-84e3-b34e3ee7b34e"
],
"channels": {
"push": true,
"email": "ada.lovelace@example.com",
"sms": true,
"whatsapp": true
},
"urgency": "immediate",
"reminder": {
"leads": [
"value"
],
"respectQuietHours": true,
"includeEnrolmentRelative": true
},
"scope": {
"mode": "all",
"courseIds": [
"8e692f22-8e69-7e69-8692-8e692f228e69"
],
"groupIds": [
"b0a20d96-b0a2-70a2-8a20-b0a20d96b0a2"
]
},
"userCanMute": true
},
"defaults": {
"enabled": true,
"students": true,
"teachers": true,
"guardians": "none",
"staff": {
"mode": "default",
"roleIds": [
"9ded041d-9ded-7ded-8ed0-9ded041d9ded"
]
},
"memberIds": [
"b34e3ee7-b34e-734e-84e3-b34e3ee7b34e"
],
"channels": {
"push": true,
"email": "ada.lovelace@example.com",
"sms": true,
"whatsapp": true
},
"urgency": "immediate",
"reminder": {
"leads": [
"value"
],
"respectQuietHours": true,
"includeEnrolmentRelative": true
},
"scope": {
"mode": "all",
"courseIds": [
"8e692f22-8e69-7e69-8692-8e692f228e69"
],
"groupIds": [
"b0a20d96-b0a2-70a2-8a20-b0a20d96b0a2"
]
},
"userCanMute": true
},
"customisedFields": [
"string"
],
"version": -9007199254740991,
"updatedAt": "2026-03-02T09:00:00.000Z",
"override": {
"enabled": true,
"students": true,
"teachers": true,
"guardians": "none",
"staff": {
"mode": "default",
"roleIds": [
"9ded041d-9ded-7ded-8ed0-9ded041d9ded"
]
},
"memberIds": [
"b34e3ee7-b34e-734e-84e3-b34e3ee7b34e"
],
"channels": {
"push": true,
"email": "ada.lovelace@example.com",
"sms": true,
"whatsapp": true
},
"urgency": "immediate",
"reminder": {
"leads": [
"value"
],
"respectQuietHours": true,
"includeEnrolmentRelative": true
},
"scope": {
"mode": "all",
"courseIds": [
"8e692f22-8e69-7e69-8692-8e692f228e69"
],
"groupIds": [
"b0a20d96-b0a2-70a2-8a20-b0a20d96b0a2"
]
},
"userCanMute": true
},
"channelStates": [
{
"channel": "push",
"status": "own",
"reason": "Requested by guardian.",
"deliverable": true,
"billing": "free",
"unitPriceUnits": -9007199254740991
}
]
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
PUT /api/v1/notification-rules/{typeKey}
Replaces the institute's override of one type (a field left out is the Institflow default again). `expectedVersion` guards against a concurrent edit (409 `VERSION_CONFLICT`). A change that raises what the institute pays for — a paid channel switched on, recipients, lead times or scope added to a type with a paid channel — is refused with 422 `VALIDATION_ERROR` and `details.reason = "cost_confirmation_required"` plus the estimate, unless `confirmCost` is `true`. A channel this install cannot deliver cannot be switched on (403 `FEATURE_DISABLED`).
פרמטרים של הנתיב והשאילתה
| שם | מיקום | סוג | מגבלות |
|---|---|---|---|
typeKeyחובה | path | string | — |
גוף הבקשה
| שם | סוג | מגבלות |
|---|---|---|
ruleחובה | object | — |
expectedVersion | integer | 0–9007199254740991 |
confirmCost | boolean | — |
דוגמה
{
"rule": {
"enabled": true,
"students": true,
"teachers": true,
"guardians": "none",
"staff": {
"mode": "default",
"roleIds": [
"9ded041d-9ded-7ded-8ed0-9ded041d9ded"
]
},
"memberIds": [
"b34e3ee7-b34e-734e-84e3-b34e3ee7b34e"
],
"channels": {
"push": true,
"email": "ada.lovelace@example.com",
"sms": true,
"whatsapp": true
},
"urgency": "immediate",
"reminder": {
"leads": [
"value"
],
"respectQuietHours": true,
"includeEnrolmentRelative": true
},
"scope": {
"mode": "all",
"courseIds": [
"8e692f22-8e69-7e69-8692-8e692f228e69"
],
"groupIds": [
"b0a20d96-b0a2-70a2-8a20-b0a20d96b0a2"
]
},
"userCanMute": true
},
"expectedVersion": 0,
"confirmCost": true
}דוגמה עם curl
curl -X PUT "https://your-institute.example/api/v1/notification-rules/string" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"rule": {
"enabled": true,
"students": true,
"teachers": true,
"guardians": "none",
"staff": {
"mode": "default",
"roleIds": [
"9ded041d-9ded-7ded-8ed0-9ded041d9ded"
]
},
"memberIds": [
"b34e3ee7-b34e-734e-84e3-b34e3ee7b34e"
],
"channels": {
"push": true,
"email": "ada.lovelace@example.com",
"sms": true,
"whatsapp": true
},
"urgency": "immediate",
"reminder": {
"leads": [
"value"
],
"respectQuietHours": true,
"includeEnrolmentRelative": true
},
"scope": {
"mode": "all",
"courseIds": [
"8e692f22-8e69-7e69-8692-8e692f228e69"
],
"groupIds": [
"b0a20d96-b0a2-70a2-8a20-b0a20d96b0a2"
]
},
"userCanMute": true
},
"expectedVersion": 0,
"confirmCost": true
}'תשובות
| שם | סוג | מגבלות |
|---|---|---|
typeKeyחובה | string | — |
categoryחובה | enum: "attendance" | "billing" | "learning" | "reminders" | "institute" | — |
triggerחובה | object | — |
subjectחובה | string | — |
recipientKindsחובה | array<enum: "students" | "guardians" | "teachers" | "staff" | "members"> | — |
staffPermissionחובה | string | null | — |
defaultStaffAudienceחובה | enum: "none" | "permission_holders" | "owners_managers" | — |
scopesחובה | array<enum: "course" | "group"> | — |
guardianGroupingחובה | enum: "per_child" | "per_subject" | — |
urgencyChoiceחובה | boolean | — |
locksחובה | object | — |
reminderחובה | object | null | — |
legacySettingKeyחובה | string | null | — |
ruleחובה | object | — |
defaultsחובה | object | — |
customisedFieldsחובה | array<string> | — |
versionחובה | integer | -9007199254740991–9007199254740991 |
updatedAtחובה | string (date-time) | null | — |
overrideחובה | object | null | — |
channelStatesחובה | array<object> | — |
{
"typeKey": "string",
"category": "attendance",
"trigger": {
"kind": "event",
"event": "string",
"anchor": "string"
},
"subject": "string",
"recipientKinds": [
"students"
],
"staffPermission": "string",
"defaultStaffAudience": "none",
"scopes": [
"course"
],
"guardianGrouping": "per_child",
"urgencyChoice": true,
"locks": {
"enabled": true,
"minimumStaff": true,
"userCanMute": true,
"emailOn": true
},
"reminder": {
"maxLeads": -9007199254740991,
"supportsItemMode": true,
"supportsEnrolmentRelative": true
},
"legacySettingKey": "string",
"rule": {
"enabled": true,
"students": true,
"teachers": true,
"guardians": "none",
"staff": {
"mode": "default",
"roleIds": [
"9ded041d-9ded-7ded-8ed0-9ded041d9ded"
]
},
"memberIds": [
"b34e3ee7-b34e-734e-84e3-b34e3ee7b34e"
],
"channels": {
"push": true,
"email": "ada.lovelace@example.com",
"sms": true,
"whatsapp": true
},
"urgency": "immediate",
"reminder": {
"leads": [
"value"
],
"respectQuietHours": true,
"includeEnrolmentRelative": true
},
"scope": {
"mode": "all",
"courseIds": [
"8e692f22-8e69-7e69-8692-8e692f228e69"
],
"groupIds": [
"b0a20d96-b0a2-70a2-8a20-b0a20d96b0a2"
]
},
"userCanMute": true
},
"defaults": {
"enabled": true,
"students": true,
"teachers": true,
"guardians": "none",
"staff": {
"mode": "default",
"roleIds": [
"9ded041d-9ded-7ded-8ed0-9ded041d9ded"
]
},
"memberIds": [
"b34e3ee7-b34e-734e-84e3-b34e3ee7b34e"
],
"channels": {
"push": true,
"email": "ada.lovelace@example.com",
"sms": true,
"whatsapp": true
},
"urgency": "immediate",
"reminder": {
"leads": [
"value"
],
"respectQuietHours": true,
"includeEnrolmentRelative": true
},
"scope": {
"mode": "all",
"courseIds": [
"8e692f22-8e69-7e69-8692-8e692f228e69"
],
"groupIds": [
"b0a20d96-b0a2-70a2-8a20-b0a20d96b0a2"
]
},
"userCanMute": true
},
"customisedFields": [
"string"
],
"version": -9007199254740991,
"updatedAt": "2026-03-02T09:00:00.000Z",
"override": {
"enabled": true,
"students": true,
"teachers": true,
"guardians": "none",
"staff": {
"mode": "default",
"roleIds": [
"9ded041d-9ded-7ded-8ed0-9ded041d9ded"
]
},
"memberIds": [
"b34e3ee7-b34e-734e-84e3-b34e3ee7b34e"
],
"channels": {
"push": true,
"email": "ada.lovelace@example.com",
"sms": true,
"whatsapp": true
},
"urgency": "immediate",
"reminder": {
"leads": [
"value"
],
"respectQuietHours": true,
"includeEnrolmentRelative": true
},
"scope": {
"mode": "all",
"courseIds": [
"8e692f22-8e69-7e69-8692-8e692f228e69"
],
"groupIds": [
"b0a20d96-b0a2-70a2-8a20-b0a20d96b0a2"
]
},
"userCanMute": true
},
"channelStates": [
{
"channel": "push",
"status": "own",
"reason": "Requested by guardian.",
"deliverable": true,
"billing": "free",
"unitPriceUnits": -9007199254740991
}
]
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
POST /api/v1/notification-rules/{typeKey}/preview
Changes nothing: the monthly cost estimate (a range, in credit units), how many people the rule would reach by kind, whether saving it needs `confirmCost`, and warnings. Without a body it describes the current rule.
פרמטרים של הנתיב והשאילתה
| שם | מיקום | סוג | מגבלות |
|---|---|---|---|
typeKeyחובה | path | string | — |
גוף הבקשה
| שם | סוג | מגבלות |
|---|---|---|
rule | object | — |
דוגמה
{
"rule": {
"enabled": true,
"students": true,
"teachers": true,
"guardians": "none",
"staff": {
"mode": "default",
"roleIds": [
"9ded041d-9ded-7ded-8ed0-9ded041d9ded"
]
},
"memberIds": [
"b34e3ee7-b34e-734e-84e3-b34e3ee7b34e"
],
"channels": {
"push": true,
"email": "ada.lovelace@example.com",
"sms": true,
"whatsapp": true
},
"urgency": "immediate",
"reminder": {
"leads": [
"value"
],
"respectQuietHours": true,
"includeEnrolmentRelative": true
},
"scope": {
"mode": "all",
"courseIds": [
"8e692f22-8e69-7e69-8692-8e692f228e69"
],
"groupIds": [
"b0a20d96-b0a2-70a2-8a20-b0a20d96b0a2"
]
},
"userCanMute": true
}
}דוגמה עם curl
curl -X POST "https://your-institute.example/api/v1/notification-rules/string/preview" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"rule": {
"enabled": true,
"students": true,
"teachers": true,
"guardians": "none",
"staff": {
"mode": "default",
"roleIds": [
"9ded041d-9ded-7ded-8ed0-9ded041d9ded"
]
},
"memberIds": [
"b34e3ee7-b34e-734e-84e3-b34e3ee7b34e"
],
"channels": {
"push": true,
"email": "ada.lovelace@example.com",
"sms": true,
"whatsapp": true
},
"urgency": "immediate",
"reminder": {
"leads": [
"value"
],
"respectQuietHours": true,
"includeEnrolmentRelative": true
},
"scope": {
"mode": "all",
"courseIds": [
"8e692f22-8e69-7e69-8692-8e692f228e69"
],
"groupIds": [
"b0a20d96-b0a2-70a2-8a20-b0a20d96b0a2"
]
},
"userCanMute": true
}
}'תשובות
| שם | סוג | מגבלות |
|---|---|---|
effectiveחובה | object | — |
requiresCostConfirmationחובה | boolean | — |
estimateחובה | object | — |
recipientsחובה | object | — |
warningsחובה | array<object> | — |
{
"effective": {
"enabled": true,
"students": true,
"teachers": true,
"guardians": "none",
"staff": {
"mode": "default",
"roleIds": [
"9ded041d-9ded-7ded-8ed0-9ded041d9ded"
]
},
"memberIds": [
"b34e3ee7-b34e-734e-84e3-b34e3ee7b34e"
],
"channels": {
"push": true,
"email": "ada.lovelace@example.com",
"sms": true,
"whatsapp": true
},
"urgency": "immediate",
"reminder": {
"leads": [
"value"
],
"respectQuietHours": true,
"includeEnrolmentRelative": true
},
"scope": {
"mode": "all",
"courseIds": [
"8e692f22-8e69-7e69-8692-8e692f228e69"
],
"groupIds": [
"b0a20d96-b0a2-70a2-8a20-b0a20d96b0a2"
]
},
"userCanMute": true
},
"requiresCostConfirmation": true,
"estimate": {
"basis": "history",
"recipientsPerMonth": -9007199254740991,
"channels": [
{
"channel": "push",
"billing": "free",
"messagesLow": -9007199254740991,
"messagesHigh": -9007199254740991,
"costLowUnits": -9007199254740991,
"costHighUnits": -9007199254740991
}
],
"totalLowUnits": -9007199254740991,
"totalHighUnits": -9007199254740991
},
"recipients": {
"students": -9007199254740991,
"guardians": -9007199254740991,
"teachers": -9007199254740991,
"staff": -9007199254740991,
"members": -9007199254740991
},
"warnings": [
{
"code": "string",
"detail": "string"
}
]
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
POST /api/v1/notification-rules/{typeKey}/reset
Deletes the override the institute made: the type goes back to the Institflow default. Going back can switch the type or a paid channel on again; that answers 422 with the estimate until the request carries `confirmCost: true`, exactly like a save.
פרמטרים של הנתיב והשאילתה
| שם | מיקום | סוג | מגבלות |
|---|---|---|---|
typeKeyחובה | path | string | — |
גוף הבקשה
| שם | סוג | מגבלות |
|---|---|---|
expectedVersion | integer | 0–9007199254740991 |
confirmCost | boolean | — |
דוגמה
{
"expectedVersion": 0,
"confirmCost": true
}דוגמה עם curl
curl -X POST "https://your-institute.example/api/v1/notification-rules/string/reset" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"expectedVersion": 0,
"confirmCost": true
}'תשובות
| שם | סוג | מגבלות |
|---|---|---|
typeKeyחובה | string | — |
categoryחובה | enum: "attendance" | "billing" | "learning" | "reminders" | "institute" | — |
triggerחובה | object | — |
subjectחובה | string | — |
recipientKindsחובה | array<enum: "students" | "guardians" | "teachers" | "staff" | "members"> | — |
staffPermissionחובה | string | null | — |
defaultStaffAudienceחובה | enum: "none" | "permission_holders" | "owners_managers" | — |
scopesחובה | array<enum: "course" | "group"> | — |
guardianGroupingחובה | enum: "per_child" | "per_subject" | — |
urgencyChoiceחובה | boolean | — |
locksחובה | object | — |
reminderחובה | object | null | — |
legacySettingKeyחובה | string | null | — |
ruleחובה | object | — |
defaultsחובה | object | — |
customisedFieldsחובה | array<string> | — |
versionחובה | integer | -9007199254740991–9007199254740991 |
updatedAtחובה | string (date-time) | null | — |
overrideחובה | object | null | — |
channelStatesחובה | array<object> | — |
{
"typeKey": "string",
"category": "attendance",
"trigger": {
"kind": "event",
"event": "string",
"anchor": "string"
},
"subject": "string",
"recipientKinds": [
"students"
],
"staffPermission": "string",
"defaultStaffAudience": "none",
"scopes": [
"course"
],
"guardianGrouping": "per_child",
"urgencyChoice": true,
"locks": {
"enabled": true,
"minimumStaff": true,
"userCanMute": true,
"emailOn": true
},
"reminder": {
"maxLeads": -9007199254740991,
"supportsItemMode": true,
"supportsEnrolmentRelative": true
},
"legacySettingKey": "string",
"rule": {
"enabled": true,
"students": true,
"teachers": true,
"guardians": "none",
"staff": {
"mode": "default",
"roleIds": [
"9ded041d-9ded-7ded-8ed0-9ded041d9ded"
]
},
"memberIds": [
"b34e3ee7-b34e-734e-84e3-b34e3ee7b34e"
],
"channels": {
"push": true,
"email": "ada.lovelace@example.com",
"sms": true,
"whatsapp": true
},
"urgency": "immediate",
"reminder": {
"leads": [
"value"
],
"respectQuietHours": true,
"includeEnrolmentRelative": true
},
"scope": {
"mode": "all",
"courseIds": [
"8e692f22-8e69-7e69-8692-8e692f228e69"
],
"groupIds": [
"b0a20d96-b0a2-70a2-8a20-b0a20d96b0a2"
]
},
"userCanMute": true
},
"defaults": {
"enabled": true,
"students": true,
"teachers": true,
"guardians": "none",
"staff": {
"mode": "default",
"roleIds": [
"9ded041d-9ded-7ded-8ed0-9ded041d9ded"
]
},
"memberIds": [
"b34e3ee7-b34e-734e-84e3-b34e3ee7b34e"
],
"channels": {
"push": true,
"email": "ada.lovelace@example.com",
"sms": true,
"whatsapp": true
},
"urgency": "immediate",
"reminder": {
"leads": [
"value"
],
"respectQuietHours": true,
"includeEnrolmentRelative": true
},
"scope": {
"mode": "all",
"courseIds": [
"8e692f22-8e69-7e69-8692-8e692f228e69"
],
"groupIds": [
"b0a20d96-b0a2-70a2-8a20-b0a20d96b0a2"
]
},
"userCanMute": true
},
"customisedFields": [
"string"
],
"version": -9007199254740991,
"updatedAt": "2026-03-02T09:00:00.000Z",
"override": {
"enabled": true,
"students": true,
"teachers": true,
"guardians": "none",
"staff": {
"mode": "default",
"roleIds": [
"9ded041d-9ded-7ded-8ed0-9ded041d9ded"
]
},
"memberIds": [
"b34e3ee7-b34e-734e-84e3-b34e3ee7b34e"
],
"channels": {
"push": true,
"email": "ada.lovelace@example.com",
"sms": true,
"whatsapp": true
},
"urgency": "immediate",
"reminder": {
"leads": [
"value"
],
"respectQuietHours": true,
"includeEnrolmentRelative": true
},
"scope": {
"mode": "all",
"courseIds": [
"8e692f22-8e69-7e69-8692-8e692f228e69"
],
"groupIds": [
"b0a20d96-b0a2-70a2-8a20-b0a20d96b0a2"
]
},
"userCanMute": true
},
"channelStates": [
{
"channel": "push",
"status": "own",
"reason": "Requested by guardian.",
"deliverable": true,
"billing": "free",
"unitPriceUnits": -9007199254740991
}
]
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
GET /api/v1/notification-spend
This month's notification usage per channel and, when the install is on the Institflow messaging relay, the credit balance and overdraft limit as last synced.
דוגמה עם curl
curl -X GET "https://your-institute.example/api/v1/notification-spend" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"תשובות
| שם | סוג | מגבלות |
|---|---|---|
periodחובה | string | — |
relayחובה | object | null | — |
usageחובה | array<object> | — |
{
"period": "string",
"relay": {
"balanceUnits": -9007199254740991,
"overdraftUnits": -9007199254740991,
"status": "active"
},
"usage": [
{
"channel": "string",
"count": -9007199254740991,
"costMinor": -9007199254740991
}
]
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
GET /api/v1/notification-templates
Tenant overrides merged with platform defaults.
פרמטרים של הנתיב והשאילתה
| שם | מיקום | סוג | מגבלות |
|---|---|---|---|
cursor | query | string | — |
limit | query | integer | 1–100 · default: 25 |
דוגמה עם curl
curl -X GET "https://your-institute.example/api/v1/notification-templates" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"תשובות
| שם | סוג | מגבלות |
|---|---|---|
dataחובה | array<object> | — |
nextCursorחובה | string | null | — |
{
"data": [
{
"id": "37386ae0-3738-7738-8386-37386ae03738",
"key": "string",
"channel": "push",
"locale": "ar",
"subject": "string",
"body": "string",
"providerTemplateName": "string",
"isActive": true,
"isPlatformDefault": true,
"createdAt": "2026-03-02T09:00:00.000Z",
"updatedAt": "2026-03-02T09:00:00.000Z"
}
],
"nextCursor": null
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
POST /api/v1/notification-templates
Creates a tenant override for a template key/channel/locale.
גוף הבקשה
| שם | סוג | מגבלות |
|---|---|---|
keyחובה | string | 1–150 chars |
channelחובה | enum: "push" | "whatsapp" | "email" | "sms" | "in_app" | — |
localeחובה | enum: "ar" | "en" | "he" | — |
subject | string | 1–300 chars |
bodyחובה | string | 1–5000 chars |
providerTemplateName | string | 1–150 chars |
isActive | boolean | default: true |
דוגמה
{
"key": "string",
"channel": "push",
"locale": "ar",
"subject": "string",
"body": "string",
"providerTemplateName": "string",
"isActive": true
}דוגמה עם curl
curl -X POST "https://your-institute.example/api/v1/notification-templates" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"key": "string",
"channel": "push",
"locale": "ar",
"subject": "string",
"body": "string",
"providerTemplateName": "string",
"isActive": true
}'תשובות
| שם | סוג | מגבלות |
|---|---|---|
idחובה | string (uuid) | — |
keyחובה | string | — |
channelחובה | enum: "push" | "whatsapp" | "email" | "sms" | "in_app" | — |
localeחובה | enum: "ar" | "en" | "he" | — |
subjectחובה | string | null | ≥1 chars |
bodyחובה | string | — |
providerTemplateNameחובה | string | null | ≥1 chars |
isActiveחובה | boolean | — |
isPlatformDefaultחובה | boolean | — |
createdAtחובה | string (date-time) | — |
updatedAtחובה | string (date-time) | — |
{
"id": "37386ae0-3738-7738-8386-37386ae03738",
"key": "string",
"channel": "push",
"locale": "ar",
"subject": "string",
"body": "string",
"providerTemplateName": "string",
"isActive": true,
"isPlatformDefault": true,
"createdAt": "2026-03-02T09:00:00.000Z",
"updatedAt": "2026-03-02T09:00:00.000Z"
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
DELETE /api/v1/notification-templates/{id}
Deletes a tenant override.
פרמטרים של הנתיב והשאילתה
| שם | מיקום | סוג | מגבלות |
|---|---|---|---|
idחובה | path | string | — |
דוגמה עם curl
curl -X DELETE "https://your-institute.example/api/v1/notification-templates/37386ae0-3738-7738-8386-37386ae03738" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"תשובות
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
PATCH /api/v1/notification-templates/{id}
Updates a tenant override (never a platform default row).
פרמטרים של הנתיב והשאילתה
| שם | מיקום | סוג | מגבלות |
|---|---|---|---|
idחובה | path | string | — |
גוף הבקשה
| שם | סוג | מגבלות |
|---|---|---|
subject | string | 1–300 chars |
body | string | 1–5000 chars |
providerTemplateName | string | 1–150 chars |
isActive | boolean | default: true |
דוגמה
{
"subject": "string",
"body": "string",
"providerTemplateName": "string",
"isActive": true
}דוגמה עם curl
curl -X PATCH "https://your-institute.example/api/v1/notification-templates/37386ae0-3738-7738-8386-37386ae03738" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"subject": "string",
"body": "string",
"providerTemplateName": "string",
"isActive": true
}'תשובות
| שם | סוג | מגבלות |
|---|---|---|
idחובה | string (uuid) | — |
keyחובה | string | — |
channelחובה | enum: "push" | "whatsapp" | "email" | "sms" | "in_app" | — |
localeחובה | enum: "ar" | "en" | "he" | — |
subjectחובה | string | null | ≥1 chars |
bodyחובה | string | — |
providerTemplateNameחובה | string | null | ≥1 chars |
isActiveחובה | boolean | — |
isPlatformDefaultחובה | boolean | — |
createdAtחובה | string (date-time) | — |
updatedAtחובה | string (date-time) | — |
{
"id": "37386ae0-3738-7738-8386-37386ae03738",
"key": "string",
"channel": "push",
"locale": "ar",
"subject": "string",
"body": "string",
"providerTemplateName": "string",
"isActive": true,
"isPlatformDefault": true,
"createdAt": "2026-03-02T09:00:00.000Z",
"updatedAt": "2026-03-02T09:00:00.000Z"
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
POST /api/v1/notification-templates/{id}/test
Renders this template against a fixed sample payload and sends it, through the tenant's real provider for its channel, to the calling user's own contact address. Never sends to anyone else.
פרמטרים של הנתיב והשאילתה
| שם | מיקום | סוג | מגבלות |
|---|---|---|---|
idחובה | path | string | — |
דוגמה עם curl
curl -X POST "https://your-institute.example/api/v1/notification-templates/37386ae0-3738-7738-8386-37386ae03738/test" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"תשובות
| שם | סוג | מגבלות |
|---|---|---|
okחובה | enum: true | — |
sentToחובה | string | — |
channelחובה | enum: "push" | "whatsapp" | "email" | "sms" | "in_app" | — |
{
"ok": true,
"sentTo": "string",
"channel": "push"
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
GET /api/v1/notification-type-preferences
The caller's own per-type notification switches (class reminder, work-due reminder, new lesson). A type never switched off is on.
דוגמה עם curl
curl -X GET "https://your-institute.example/api/v1/notification-type-preferences" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"תשובות
| שם | סוג | מגבלות |
|---|---|---|
preferencesחובה | array<object> | — |
{
"preferences": [
{
"typeKey": "student.absent",
"enabled": true,
"canMute": true
}
]
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
PUT /api/v1/notification-type-preferences
Switches one or more of the caller's own notification types on or off.
גוף הבקשה
| שם | סוג | מגבלות |
|---|---|---|
preferencesחובה | array<object> | — |
דוגמה
{
"preferences": [
{
"typeKey": "student.absent",
"enabled": true
}
]
}דוגמה עם curl
curl -X PUT "https://your-institute.example/api/v1/notification-type-preferences" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"preferences": [
{
"typeKey": "student.absent",
"enabled": true
}
]
}'תשובות
| שם | סוג | מגבלות |
|---|---|---|
preferencesחובה | array<object> | — |
{
"preferences": [
{
"typeKey": "student.absent",
"enabled": true,
"canMute": true
}
]
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
GET /api/v1/notification-usage
Per-channel usage/cost counters for a billing period (default: the current month).
דוגמה עם curl
curl -X GET "https://your-institute.example/api/v1/notification-usage" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"תשובות
| שם | סוג | מגבלות |
|---|---|---|
periodחובה | string | — |
usageחובה | array<object> | — |
{
"period": "string",
"usage": [
{
"channel": "push",
"count": -9007199254740991,
"costMinor": -9007199254740991
}
]
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
GET /api/v1/notifications
List the outbox log, cursor-paginated, filterable by status/channel/recipient.
פרמטרים של הנתיב והשאילתה
| שם | מיקום | סוג | מגבלות |
|---|---|---|---|
cursor | query | string | — |
limit | query | integer | 1–100 · default: 25 |
status | query | enum: "queued" | "sending" | "sent" | "delivered" | "failed" | "skipped" | — |
channel | query | enum: "push" | "whatsapp" | "email" | "sms" | "in_app" | — |
recipientUserId | query | string (uuid) | — |
recipientGuardianId | query | string (uuid) | — |
recipientStudentId | query | string (uuid) | — |
דוגמה עם curl
curl -X GET "https://your-institute.example/api/v1/notifications" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"תשובות
| שם | סוג | מגבלות |
|---|---|---|
dataחובה | array<object> | — |
nextCursorחובה | string | null | — |
{
"data": [
{
"id": "37386ae0-3738-7738-8386-37386ae03738",
"channel": "push",
"status": "queued",
"toAddress": "string",
"templateKey": "string",
"locale": "ar",
"provider": "string",
"providerMessageId": "wamid.HBgLMTU1NTU1MTIzNDU=",
"error": "string",
"costMinor": -9007199254740991,
"recipientUserId": "86999436-8699-7699-8999-869994368699",
"recipientGuardianId": "f98e9636-f98e-798e-88e9-f98e9636f98e",
"recipientStudentId": "69fd1416-69fd-79fd-8fd1-69fd141669fd",
"scheduledFor": "2026-03-02T09:00:00.000Z",
"sentAt": "2026-03-02T09:00:00.000Z",
"deliveredAt": "2026-03-02T09:00:00.000Z",
"attempts": -9007199254740991,
"createdAt": "2026-03-02T09:00:00.000Z"
}
],
"nextCursor": null
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
POST /api/v1/notifications/{id}/retry
Re-queues a failed or skipped notification row.
פרמטרים של הנתיב והשאילתה
| שם | מיקום | סוג | מגבלות |
|---|---|---|---|
idחובה | path | string | — |
דוגמה עם curl
curl -X POST "https://your-institute.example/api/v1/notifications/37386ae0-3738-7738-8386-37386ae03738/retry" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"תשובות
| שם | סוג | מגבלות |
|---|---|---|
idחובה | string (uuid) | — |
channelחובה | enum: "push" | "whatsapp" | "email" | "sms" | "in_app" | — |
statusחובה | enum: "queued" | "sending" | "sent" | "delivered" | "failed" | "skipped" | — |
toAddressחובה | string | — |
templateKeyחובה | string | — |
localeחובה | enum: "ar" | "en" | "he" | — |
providerחובה | string | — |
providerMessageIdחובה | string | null | ≥1 chars |
errorחובה | string | null | ≥1 chars |
costMinorחובה | integer | null | -9007199254740991–9007199254740991 |
recipientUserIdחובה | string (uuid) | null | — |
recipientGuardianIdחובה | string (uuid) | null | — |
recipientStudentIdחובה | string (uuid) | null | — |
scheduledForחובה | string (date-time) | null | — |
sentAtחובה | string (date-time) | null | — |
deliveredAtחובה | string (date-time) | null | — |
attemptsחובה | integer | -9007199254740991–9007199254740991 |
createdAtחובה | string (date-time) | — |
{
"id": "37386ae0-3738-7738-8386-37386ae03738",
"channel": "push",
"status": "queued",
"toAddress": "string",
"templateKey": "string",
"locale": "ar",
"provider": "string",
"providerMessageId": "wamid.HBgLMTU1NTU1MTIzNDU=",
"error": "string",
"costMinor": -9007199254740991,
"recipientUserId": "86999436-8699-7699-8999-869994368699",
"recipientGuardianId": "f98e9636-f98e-798e-88e9-f98e9636f98e",
"recipientStudentId": "69fd1416-69fd-79fd-8fd1-69fd141669fd",
"scheduledFor": "2026-03-02T09:00:00.000Z",
"sentAt": "2026-03-02T09:00:00.000Z",
"deliveredAt": "2026-03-02T09:00:00.000Z",
"attempts": -9007199254740991,
"createdAt": "2026-03-02T09:00:00.000Z"
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
POST /api/v1/notifications/send
Manual broadcast to a group/branch/explicit student list. `dryRun` returns recipient count + quota impact without sending. Naming `channels` explicitly with `sms`/`whatsapp` this tenant is not approved for (`sms_notifications`/`whatsapp_notifications` not effective) is rejected with 422 `VALIDATION_ERROR` rather than silently sending a smaller broadcast; leaving `channels` unset falls through the tenant ladder instead, which skips an unapproved channel silently and still reaches the in-app inbox.
גוף הבקשה
| שם | סוג | מגבלות |
|---|---|---|
templateKey | string | 1–150 chars |
subject | string | 1–300 chars |
body | string | 1–5000 chars |
channels | array<enum: "push" | "whatsapp" | "email" | "sms" | "in_app"> | — |
audienceחובה | object | — |
payload | object | default: {} |
urgency | enum: "immediate" | "digest" | default: "immediate" |
dryRun | boolean | default: false |
דוגמה
{
"templateKey": "string",
"subject": "string",
"body": "string",
"channels": [
"push"
],
"audience": {
"groupId": "6dc7fce6-6dc7-7dc7-8c7f-6dc7fce66dc7",
"branchId": "390b8975-390b-790b-80b8-390b8975390b",
"studentIds": [
"af05d28a-af05-7f05-805d-af05d28aaf05"
],
"recipients": "both"
},
"payload": {},
"urgency": "immediate",
"dryRun": false
}דוגמה עם curl
curl -X POST "https://your-institute.example/api/v1/notifications/send" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"templateKey": "string",
"subject": "string",
"body": "string",
"channels": [
"push"
],
"audience": {
"groupId": "6dc7fce6-6dc7-7dc7-8c7f-6dc7fce66dc7",
"branchId": "390b8975-390b-790b-80b8-390b8975390b",
"studentIds": [
"af05d28a-af05-7f05-805d-af05d28aaf05"
],
"recipients": "both"
},
"payload": {},
"urgency": "immediate",
"dryRun": false
}'תשובות
| שם | סוג | מגבלות |
|---|---|---|
dryRunחובה | boolean | — |
recipientCountחובה | integer | -9007199254740991–9007199254740991 |
queuedחובה | integer | -9007199254740991–9007199254740991 |
skippedחובה | integer | -9007199254740991–9007199254740991 |
notificationIdsחובה | array<string (uuid)> | — |
channelCountsחובה | object | — |
quotaImpactחובה | object | — |
{
"dryRun": true,
"recipientCount": -9007199254740991,
"queued": -9007199254740991,
"skipped": -9007199254740991,
"notificationIds": [
"6de4da18-6de4-7de4-8e4d-6de4da186de4"
],
"channelCounts": {},
"quotaImpact": {}
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
GET /api/v1/provider-credentials
Lists configured provider credentials — provider id + verified_at only, never secrets.
דוגמה עם curl
curl -X GET "https://your-institute.example/api/v1/provider-credentials" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"תשובות
| שם | סוג | מגבלות |
|---|---|---|
dataחובה | array<object> | — |
{
"data": [
{
"channel": "push",
"provider": "string",
"isActive": true,
"verifiedAt": "2026-03-02T09:00:00.000Z"
}
]
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
DELETE /api/v1/provider-credentials/{channel}
Removes the stored provider credentials for a channel.
פרמטרים של הנתיב והשאילתה
| שם | מיקום | סוג | מגבלות |
|---|---|---|---|
channelחובה | path | string | — |
דוגמה עם curl
curl -X DELETE "https://your-institute.example/api/v1/provider-credentials/string" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"תשובות
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
PUT /api/v1/provider-credentials/{channel}
Sets (envelope-encrypted) provider credentials for a channel. Never echoes the secret back. 403 FEATURE_DISABLED for `sms`/`whatsapp` (platform/licence-approved per tenant, no platform sender exists for either in 1.0.0) or for `email`/`push` when the matching `byo_email_provider`/`byo_push_provider` flag is not granted — the platform SMTP/Expo sender keeps working either way.
פרמטרים של הנתיב והשאילתה
| שם | מיקום | סוג | מגבלות |
|---|---|---|---|
channelחובה | path | string | — |
גוף הבקשה
| שם | סוג | מגבלות |
|---|---|---|
providerחובה | string | 1–50 chars |
configחובה | object | — |
דוגמה
{
"provider": "string",
"config": {}
}דוגמה עם curl
curl -X PUT "https://your-institute.example/api/v1/provider-credentials/string" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"provider": "string",
"config": {}
}'תשובות
| שם | סוג | מגבלות |
|---|---|---|
channelחובה | enum: "push" | "whatsapp" | "email" | "sms" | "in_app" | — |
providerחובה | string | — |
isActiveחובה | boolean | — |
verifiedAtחובה | string (date-time) | null | — |
{
"channel": "push",
"provider": "string",
"isActive": true,
"verifiedAt": "2026-03-02T09:00:00.000Z"
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
POST /api/v1/provider-credentials/{channel}/test
Sends a real test message on this channel to the caller's own contact address. Same 403 FEATURE_DISABLED gating as PUT applies here — testing a channel this tenant has not been approved for (or, for email/push, a stored override without byo_email_provider/byo_push_provider) is rejected before anything is sent.
פרמטרים של הנתיב והשאילתה
| שם | מיקום | סוג | מגבלות |
|---|---|---|---|
channelחובה | path | string | — |
דוגמה עם curl
curl -X POST "https://your-institute.example/api/v1/provider-credentials/string/test" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"תשובות
| שם | סוג | מגבלות |
|---|---|---|
okחובה | enum: true | — |
sentToחובה | string | — |
{
"ok": true,
"sentTo": "string"
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
GET /api/v1/provider-credentials/status
Per-channel deliverability for this tenant right now — 'own' (approved tenant credentials active), 'platform' (no tenant override, but email/push/in_app always send through Institflow's own sender), or 'unavailable' (sms/whatsapp with no approved, configured tenant credential — the only case nothing sends). No permission required and carries no secret: every screen that plans a send (the broadcast wizard, the invoices reminder banner, the onboarding checklist) reads this instead of guessing from the credentials list.
דוגמה עם curl
curl -X GET "https://your-institute.example/api/v1/provider-credentials/status" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"תשובות
| שם | סוג | מגבלות |
|---|---|---|
dataחובה | array<object> | — |
{
"data": [
{
"channel": "push",
"status": "own",
"reason": "Requested by guardian."
}
]
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
DELETE /api/v1/push-devices
Unregisters the caller's own push device token.
גוף הבקשה
| שם | סוג | מגבלות |
|---|---|---|
tokenחובה | string | 1–4096 chars |
דוגמה
{
"token": "string"
}דוגמה עם curl
curl -X DELETE "https://your-institute.example/api/v1/push-devices" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"token": "string"
}'תשובות
| שם | סוג | מגבלות |
|---|---|---|
okחובה | enum: true | — |
{
"ok": true
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
POST /api/v1/push-devices
Registers (or refreshes) the caller's own push device token.
גוף הבקשה
| שם | סוג | מגבלות |
|---|---|---|
platformחובה | enum: "ios" | "android" | "web" | — |
tokenחובה | string | 1–4096 chars |
דוגמה
{
"platform": "ios",
"token": "string"
}דוגמה עם curl
curl -X POST "https://your-institute.example/api/v1/push-devices" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"platform": "ios",
"token": "string"
}'תשובות
| שם | סוג | מגבלות |
|---|---|---|
okחובה | enum: true | — |
{
"ok": true
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
GET /api/v1/web-push/config
Whether this server can send browser push and, if so, the public key to subscribe with. `enabled: false` means the page should offer no browser-notification controls.
דוגמה עם curl
curl -X GET "https://your-institute.example/api/v1/web-push/config" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"תשובות
| שם | סוג | מגבלות |
|---|---|---|
enabledחובה | boolean | — |
publicKeyחובה | string | null | — |
{
"enabled": true,
"publicKey": "string"
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
DELETE /api/v1/web-push/subscriptions
Removes the caller's own browser push subscription for an endpoint (idempotent).
גוף הבקשה
| שם | סוג | מגבלות |
|---|---|---|
endpointחובה | string | 0–2048 chars |
דוגמה
{
"endpoint": "string"
}דוגמה עם curl
curl -X DELETE "https://your-institute.example/api/v1/web-push/subscriptions" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"endpoint": "string"
}'תשובות
| שם | סוג | מגבלות |
|---|---|---|
okחובה | enum: true | — |
{
"ok": true
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
POST /api/v1/web-push/subscriptions
Registers (or refreshes) the caller's browser push subscription (`PushSubscription.toJSON()`). Refused with a feature-disabled error while the server has no push transport.
גוף הבקשה
| שם | סוג | מגבלות |
|---|---|---|
endpointחובה | string | 0–2048 chars |
keysחובה | object | — |
userAgent | string | 0–200 chars |
דוגמה
{
"endpoint": "string",
"keys": {
"p256dh": "string",
"auth": "string"
},
"userAgent": "string"
}דוגמה עם curl
curl -X POST "https://your-institute.example/api/v1/web-push/subscriptions" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"endpoint": "string",
"keys": {
"p256dh": "string",
"auth": "string"
},
"userAgent": "string"
}'תשובות
| שם | סוג | מגבלות |
|---|---|---|
idחובה | string (uuid) | — |
{
"id": "37386ae0-3738-7738-8386-37386ae03738"
}מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
POST /api/v1/webhooks/providers/{provider}
Inbound delivery-status webhook from a notification provider (Meta/Twilio). Signature-verified.
פרמטרים של הנתיב והשאילתה
| שם | מיקום | סוג | מגבלות |
|---|---|---|---|
providerחובה | path | string | — |
דוגמה עם curl
curl -X POST "https://your-institute.example/api/v1/webhooks/providers/string" \
-H "Authorization: Bearer $INSTITFLOW_API_KEY"תשובות
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.
מחזירה את מעטפת השגיאה המשותפת `ErrorEnvelope` — `{ error: { code, message, requestId, details? } }`. כל הקודים מפורטים במדריך המוסכמות.