תיעוד ה-API

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

כתובת בסיס {{BASE}}

התחלה מהירה

את ה-API key קיבלת מספק השירות. שלח אותו ב-header בשם X-API-Key:

curl -H "X-API-Key: YOUR_API_KEY" \
  {{BASE}}/v1/traffic
const 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 של סנסור אחד. בלי הפרמטר מתקבל הסכום של כל הסנסורים שלך.

שדות התשובה

שדהתיאור
statusActive כשהניטור תקין, אחרת 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 אם אין.
overLimittrue כשהערך הנוכחי גבוה מהגבול.
statusמצב הניטור: Up תקין. Warning כשהערך חורג מהגבול, ו-Down כשיש תקלה.
הרשימה תלויה במה שהוגדר לחשבון שלך. אם אין לך מדדים, תקבל שגיאה 404 עם 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משמעות
400invalid_rangeטווח זמן לא תקין, למשל from אחרי to.
400range_exceeds_40_daysהטווח ארוך מ-40 יום.
400interval_must_be_one_of_…ערך interval לא נתמך.
400name_required / ambiguous_metric / metric_has_no_historyב-/v1/metrics/history: חסר name, יש כמה מדדים באותו שם (צריך גם server), או שלמדד אין היסטוריה.
401unauthorizedהמפתח חסר או שגוי.
403account_disabledהחשבון מושבת.
404sensor_not_foundהסנסור לא קיים או לא מוקצה לך.
404no_metrics / metric_not_found / server_not_foundאין לך מדדים, או שהמדד או השרת שביקשת לא קיימים.
429rate_limitedחרגת ממגבלת הבקשות. נסה שוב בעוד דקה.
502upstream_errorשגיאה זמנית בקבלת הנתונים. נסה שוב.

מגבלות והערות

  • קצב בקשות: עד 60 בקשות בדקה לכל מפתח.
  • רענון נתונים: הנתונים מתעדכנים בערך כל דקה. התשובות נשמרות עד 30 שניות, והנפח החודשי עד 5 דקות, ולכן אין טעם לשאול לעתים קרובות יותר.
  • נפח חודשי: מחושב מהיסטוריית הניטור בממוצעי שעה, ולכן הוא מדויק בקירוב ולא לחיוב ברמת הבייט.
  • יחידות: Mbps הוא מגהביט (106 ביטים) לשנייה, ו-GB הוא 109 בתים.
  • שעות: שעות ב-history הן שעון ישראל.
  • אבטחה: הגישה היא ב-HTTPS בלבד.

נסה עכשיו

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