תיעוד ה-API
API לקריאה בלבד שמחזיר את נתוני התעבורה שלך: קצב נוכחי בזמן אמת, נפח מצטבר מתחילת החודש והיסטוריה. כל הנתונים מגיעים בפורמט JSON.
{{BASE}}התחלה מהירה
את ה-API key קיבלת מספק השירות. שלח אותו ב-header בשם X-API-Key:
curl -H "X-API-Key: YOUR_API_KEY" \
{{BASE}}/v1/trafficconst res = await fetch("{{BASE}}/v1/traffic", {
headers: { "X-API-Key": "YOUR_API_KEY" },
});
const data = await res.json();
console.log(data.current.downloadMbps);import requests
r = requests.get(
"{{BASE}}/v1/traffic",
headers={"X-API-Key": "YOUR_API_KEY"},
timeout=15,
)
print(r.json()["current"])התשובה:
{
"status": "Active",
"current": { "downloadMbps": 125.4, "uploadMbps": 32.8 },
"month": { "from": "2026-10-01T00:00:00.000Z", "downloadGB": 842.5, "uploadGB": 216.3 },
"updatedAt": "2026-10-12T12:23:29.145Z"
}
אימות
כל בקשה צריכה לכלול את המפתח באחת משתי הדרכים:
X-API-Key: YOUR_API_KEY Authorization: Bearer YOUR_API_KEY
GET /v1/traffic
סיכום התעבורה שלך: הקצב כרגע והנפח מתחילת החודש. זה ה-endpoint הנפוץ ביותר, והוא מתאים להצגה ישירה בדשבורד.
| פרמטר | תיאור |
|---|---|
sensor אופציונלי | מזהה או alias של סנסור אחד. בלי הפרמטר מתקבל הסכום של כל הסנסורים שלך. |
שדות התשובה
| שדה | תיאור |
|---|---|
status | Active כשהניטור תקין, אחרת Inactive. |
current.downloadMbps / uploadMbps | הקצב הנוכחי במגהביט לשנייה. Download הוא תעבורה שאתה מקבל, ו-Upload הוא תעבורה שאתה שולח. |
month.downloadGB / uploadGB | הנפח המצטבר מתחילת החודש בג'יגה-בייט (109 בתים). |
month.from | תחילת תקופת החישוב. |
updatedAt | מתי חושבה התשובה. |
current.totalMbps ו-month.totalGB.GET /v1/sensors
רשימת הסנסורים שמוקצים לך.
{ "sensors": [ { "id": 1234, "alias": "main-link" } ] }
אפשר להשתמש ב-id או ב-alias בכתובות הבאות.
GET /v1/sensors/:idOrAlias
המצב הנוכחי של סנסור אחד, כולל כל ה-Channels שלו.
{
"id": 1234,
"alias": "main-link",
"status": "Up",
"message": "OK",
"lastCheck": "10/12/2026 3:23:00 PM [30 s ago]",
"channels": [
{ "name": "Download", "display": "1.2 Mbit/s", "value": 150000.5 },
{ "name": "Upload", "display": "0.3 Mbit/s", "value": 37500.2 }
]
}
display הוא הערך כפי שמוצג למשתמש, ו-value הוא הערך הגולמי לעיבוד (בדרך כלל בתים לשנייה).
GET /v1/sensors/:idOrAlias/history
היסטוריית תעבורה לטווח זמן, מחולקת לפרקי זמן שווים.
| פרמטר | תיאור |
|---|---|
from אופציונלי | תחילת הטווח בפורמט ISO 8601, למשל 2026-10-11T00:00:00Z. ברירת מחדל: 24 שעות אחורה. |
to אופציונלי | סוף הטווח. ברירת מחדל: עכשיו. |
interval אופציונלי | אורך כל פרק זמן בשניות: 60, 300, 900, 3600, 21600, 86400. ברירת מחדל: 300. |
הטווח המרבי הוא 40 יום.
curl -H "X-API-Key: YOUR_API_KEY" \
"{{BASE}}/v1/sensors/main-link/history?from=2026-10-11T00:00:00Z&interval=3600"
{
"id": 1234,
"alias": "main-link",
"interval": 3600,
"data": [
{
"time": "10/12/2026 1:00:00 PM - 2:00:00 PM",
"Download (Speed)": 150000.5,
"Download (Volume)": 540001800,
"Upload (Speed)": 37500.2,
"Upload (Volume)": 135000720,
"coverage": 100
}
]
}
| שדה | תיאור |
|---|---|
… (Speed) | הקצב הממוצע בפרק הזמן, בבתים לשנייה. |
… (Volume) | הנפח בפרק הזמן, בבתים. |
coverage | כמה מפרק הזמן נמדד בפועל, באחוזים. מתחת ל-100 אומר שחסרים נתונים. |
GET /v1/metrics
מדדי השרת שלך, למשל צריכת חשמל, זרם, טמפרטורה וזמן פעילות. כל מדד הוא ערך אחד עם יחידה וסטטוס.
| פרמטר | תיאור |
|---|---|
server אופציונלי | מחזיר רק את המדדים של שרת אחד. רשימת השרתים ב-GET /v1/servers. בלי הפרמטר מתקבלים כל המדדים. |
name אופציונלי | מחזיר רק את המדד עם השם הזה, למשל power. אפשר לשלב עם server. |
{
"metrics": [
{ "server": "server1", "name": "power", "label": "צריכת חשמל", "value": 216, "unit": "W", "limit": null, "overLimit": false, "status": "Up" },
{ "server": "server1", "name": "current", "label": "זרם", "value": 1.42, "unit": "A", "limit": 1.3, "overLimit": true, "status": "Warning" },
{ "server": "server1", "name": "online", "label": "זמינות", "value": null, "unit": "", "limit": null, "overLimit": false, "status": "Up" }
],
"updatedAt": "2026-10-12T12:23:29.145Z"
}
| שדה | תיאור |
|---|---|
server | השרת שאליו שייך המדד, או null אם אין חלוקה לשרתים. |
name | מזהה קבוע של המדד, מתאים לשימוש בקוד. |
label | שם להצגה למשתמש. |
value | הערך הנוכחי. null במדד זמינות, או כשאין כרגע נתון. |
unit | יחידת המדידה. |
limit | הגבול המוגדר למדד בחשבון שלך (למשל מגבלת זרם), או null אם אין. |
overLimit | true כשהערך הנוכחי גבוה מהגבול. |
status | מצב הניטור: Up תקין. Warning כשהערך חורג מהגבול, ו-Down כשיש תקלה. |
no_metrics.GET /v1/metrics/history
היסטוריה של מדד אחד, למשל צריכת חשמל (W) או זרם (A), מחולקת לפרקי זמן שווים.
| פרמטר | תיאור |
|---|---|
name | שם המדד, למשל power או current. חובה. |
server אופציונלי | השרת. חובה אם יש כמה שרתים עם מדד באותו שם. |
from, to, interval אופציונלי | כמו ב-/v1/sensors/:id/history: טווח בפורמט ISO 8601 (עד 40 יום), ופרק זמן בשניות 60, 300, 900, 3600, 21600, 86400. ברירת מחדל: 24 שעות אחורה ב-5 דקות. |
curl -H "X-API-Key: YOUR_API_KEY" \
"{{BASE}}/v1/metrics/history?server=server1&name=current&from=2026-10-11T00:00:00Z&interval=3600"
{
"server": "server1",
"name": "current",
"label": "זרם",
"unit": "A",
"limit": 1.3,
"interval": 3600,
"summary": { "min": 0.93, "max": 1.41, "avg": 1.02 },
"data": [
{ "time": "2026-10-11T07:00:00.000Z", "value": 0.94, "coverage": 100 },
{ "time": "2026-10-11T08:00:00.000Z", "value": 1.41, "coverage": 100 }
]
}
| שדה | תיאור |
|---|---|
data[].time | תחילת פרק הזמן (UTC). |
data[].value | הערך הממוצע בפרק הזמן, ביחידת המדד. null אם לא נמדד. |
data[].coverage | כמה מפרק הזמן נמדד, באחוזים. |
summary | מינימום, מקסימום וממוצע של הערכים בטווח. מבוסס על ממוצעי פרקי הזמן, ולכן שיא קצר יכול להיעלם ב-interval גדול. לשיא מדויק יותר השתמש ב-interval=60. |
metric_has_no_history.GET /v1/servers
אם יש לך כמה שרתים, זה מראה אילו קיימים ואילו מדדים יש לכל אחד. אחר כך בוחרים שרת עם /v1/metrics?server=….
{
"servers": [
{ "server": "server1", "label": "Server 1", "metrics": ["power", "current", "online"] },
{ "server": "server2", "label": "Server 2", "metrics": ["power", "current"] }
]
}
curl -H "X-API-Key: YOUR_API_KEY" \
"{{BASE}}/v1/metrics?server=server2"
שרת שלא קיים מחזיר 404 עם server_not_found.
שגיאות
שגיאה מחזירה קוד HTTP מתאים וגוף JSON בצורה { "error": "קוד" }.
| קוד | error | משמעות |
|---|---|---|
| 400 | invalid_range | טווח זמן לא תקין, למשל from אחרי to. |
| 400 | range_exceeds_40_days | הטווח ארוך מ-40 יום. |
| 400 | interval_must_be_one_of_… | ערך interval לא נתמך. |
| 400 | name_required / ambiguous_metric / metric_has_no_history | ב-/v1/metrics/history: חסר name, יש כמה מדדים באותו שם (צריך גם server), או שלמדד אין היסטוריה. |
| 401 | unauthorized | המפתח חסר או שגוי. |
| 403 | account_disabled | החשבון מושבת. |
| 404 | sensor_not_found | הסנסור לא קיים או לא מוקצה לך. |
| 404 | no_metrics / metric_not_found / server_not_found | אין לך מדדים, או שהמדד או השרת שביקשת לא קיימים. |
| 429 | rate_limited | חרגת ממגבלת הבקשות. נסה שוב בעוד דקה. |
| 502 | upstream_error | שגיאה זמנית בקבלת הנתונים. נסה שוב. |
מגבלות והערות
- קצב בקשות: עד 60 בקשות בדקה לכל מפתח.
- רענון נתונים: הנתונים מתעדכנים בערך כל דקה. התשובות נשמרות עד 30 שניות, והנפח החודשי עד 5 דקות, ולכן אין טעם לשאול לעתים קרובות יותר.
- נפח חודשי: מחושב מהיסטוריית הניטור בממוצעי שעה, ולכן הוא מדויק בקירוב ולא לחיוב ברמת הבייט.
- יחידות: Mbps הוא מגהביט (106 ביטים) לשנייה, ו-GB הוא 109 בתים.
- שעות: שעות ב-
historyהן שעון ישראל. - אבטחה: הגישה היא ב-HTTPS בלבד.
נסה עכשיו
הדבק את המפתח שלך, בחר endpoint ומלא פרמטרים, ולחץ כדי לראות תשובה אמיתית. אחרי הזנת המפתח השדות יציעו את הסנסורים, השרתים והמדדים שלך. המפתח נשלח רק לשרת הזה ולא נשמר בדפדפן.