ה־API
חותמת זמן יהודית עצמאית, ב־JSON או בטקסט. חינם, ללא מפתח, ללא לוח גרגוריאני.
עקרונות
- בסיס:
/api/. תשובות ב־JSON; שלחוAccept: text/plainאו הוסיפו?format=textלקבלת טקסט. - ללא מפתח, ללא הרשמה. CORS פתוח (
Access-Control-Allow-Origin: *). - הגבלת קצב לכל כתובת: 20 בקשות ליחידת קצב, פרץ של 60; מעבר לכך,
429עםRetry-After. Cache-Control: max-age=1על/api/now; יום אחד על תשובות חשבוניות טהורות.- הקוד ברישיון MIT. תשובות ה־API ברישיון CC BY 4.0: שימוש חופשי עם ייחוס ל־"zman, zman.technology".
יחידות וקבועים
| שם | ערך | הערה |
|---|---|---|
| רגעים בחלק | 76 | רמב"ם, הלכות קידוש החודש י, א |
| חלקים בשעה | 1,080 | שם, ו, ב |
| שעות ביום | 24 | מ־18:00 זמן ירושלים הממוצע |
| רגעים בשעה | 82,080 | |
| חלקים ביום | 25,920 | |
| רגעים ביום | 1,969,920 | תמיד, יהא אורך היום אשר יהא |
| ראשית המניין | רגע 0 | מוצאי שבת 18:00 הפותח את שבוע מולד תוהו; יום 0 = יום ראשון |
| מולד תוהו | 2,395,824 | יום 1, 5 שעות, 204 חלקים |
| א' בתשרי שנת א | יום 1 | יום שני |
| חודשים | 1 – 13 | ניסן = 1 … אדר = 12 (אדר א׳ בשנה מעוברת), אדר ב׳ = 13 |
| יום בשבוע | 0 – 6 | יום ראשון = 0, שבת = 6 |
נקודות קצה
GET /api/now
הרגע הנוכחי: רגע, יום, שעה, חלק, רגע בתוך החלק, תאריך, יום בשבוע, ואיכות השעון (source: iers או fallback; dut1_age_days: גיל המדידה האחרונה; predicted: ערך DUT1 הוא תחזית).
curl -s https://zman.technology/api/now
{
"rega": 4163021922875,
"day": 2113294,
"hour": 22,
"chelek": 8,
"rega_in_chelek": 27,
"date": {
"year": 5786,
"month": 6,
"month_name": "Elul",
"month_name_he": "אלול",
"day": 25
},
"weekday": 1,
"weekday_name_he": "יום שני",
"clock": {
"source": "iers",
"dut1_age_days": 4.6,
"predicted": true
}
}
כטקסט:
curl -s -H 'Accept: text/plain' https://zman.technology/api/now
rega 4163021922875
day 2113294 hour 22 chelek 8 rega 27
date 25 Elul 5786 (אלול)
weekday 1 יום שני
clock source=iers dut1_age_days=4.6 predicted=true
GET /api/rega/{n}
מפענח מספר שלם ליום, שעה, חלק, רגע, תאריך ויום בשבוע. ליום שלפני א' בתשרי שנת א, date הוא null. דוגמה: מולד תוהו.
curl -s https://zman.technology/api/rega/2395824
{
"rega": 2395824,
"day": 1,
"hour": 5,
"chelek": 204,
"rega_in_chelek": 0,
"date": {
"year": 1,
"month": 7,
"month_name": "Tishrei",
"month_name_he": "תשרי",
"day": 1
},
"weekday": 1,
"weekday_name_he": "יום שני"
}
GET /api/date/{year}/{month}/{day}
היום הנתון, עם הרגע הראשון שלו (start) והרגע הראשון של היום שאחריו (end, לא כולל). שגיאה 400 אם התאריך אינו קיים (ל' בחשון בשנה חסרה, אדר ב׳ בשנה פשוטה, וכדומה).
curl -s https://zman.technology/api/date/5787/7/1
{
"date": {
"year": 5787,
"month": 7,
"month_name": "Tishrei",
"month_name_he": "תשרי",
"day": 1
},
"day": 2113299,
"weekday": 6,
"weekday_name_he": "שבת",
"start": 4163029966080,
"end": 4163031936000
}
GET /api/molad/{year}/{month}
המולד הממוצע של החודש, ברגעים ובחלקים. המוסכמה היא זו של ההכרזות: שעות נספרות מ־18:00 בערב הקודם. "ליל שבת 20:59 וחלק אחד" מופיע אפוא כיום בשבוע 6 (היום ההלכתי כבר החל), 2 שעות, 1,063 חלקים.
curl -s https://zman.technology/api/molad/5787/7
{
"rega": 4163030211028,
"day": 2113299,
"hour": 2,
"chelek": 1063,
"rega_in_chelek": 0,
"date": {
"year": 5787,
"month": 7,
"month_name": "Tishrei",
"month_name_he": "תשרי",
"day": 1
},
"weekday": 6,
"weekday_name_he": "שבת"
}
GET /api/year/{year}
אורך השנה, האם היא מעוברת, ראש השנה, והחודשים בסדר האזרחי עם אורכם ויומם הראשון.
curl -s https://zman.technology/api/year/5787
{
"year": 5787,
"length": 385,
"leap": true,
"rosh_hashana": {
"day": 2113299,
"weekday": 6,
"weekday_name_he": "שבת"
},
"months": [
{
"month": 7,
"name": "Tishrei",
"name_he": "תשרי",
"length": 30,
"start_day": 2113299
},
{
"month": 8,
"name": "Cheshvan",
"name_he": "חשון",
"length": 30,
"start_day": 2113329
},
{
"month": 9,
"name": "Kislev",
"name_he": "כסלו",
"length": 30,
"start_day": 2113359
},
{
"month": 10,
"name": "Tevet",
"name_he": "טבת",
"length": 29,
"start_day": 2113389
},
{
"month": 11,
"name": "Shevat",
"name_he": "שבט",
"length": 30,
"start_day": 2113418
},
{
"month": 12,
"name": "Adar I",
"name_he": "אדר א׳",
"length": 30,
"start_day": 2113448
},
{
"month": 13,
"name": "Adar II",
"name_he": "אדר ב׳",
"length": 29,
"start_day": 2113478
},
{
"month": 1,
"name": "Nissan",
"name_he": "ניסן",
"length": 30,
"start_day": 2113507
},
{
"month": 2,
"name": "Iyar",
"name_he": "אייר",
"length": 29,
"start_day": 2113537
},
{
"month": 3,
"name": "Sivan",
"name_he": "סיון",
"length": 30,
"start_day": 2113566
},
{
"month": 4,
"name": "Tammuz",
"name_he": "תמוז",
"length": 29,
"start_day": 2113596
},
{
"month": 5,
"name": "Av",
"name_he": "אב",
"length": 30,
"start_day": 2113625
},
{
"month": 6,
"name": "Elul",
"name_he": "אלול",
"length": 29,
"start_day": 2113655
}
]
}
GET /api/health
מצב השעון ומטמון ה־IERS. 200 כשהכול תקין, 503 במצב מנוון (ללא נתוני IERS).
curl -s https://zman.technology/api/health
{
"status": "ok",
"clock": {
"source": "iers",
"dut1_age_days": 4.6,
"predicted": true
},
"data": {
"loaded": true,
"records": 19976,
"measured_records": 19603,
"source": "disk",
"cache_age_days": 0
}
}
מה ה־API לעולם לא יחזיר
שום תשובה אינה מכילה תאריך גרגוריאני, חותמת זמן של Unix, שעת UTC או משך בשניות. זו אינה השמטה: זו הנקודה של הפרויקט. המונה הוא מקורי — ראשית המניין יהודית, היחידה היא הרגע, השעון הוא סיבוב כדור הארץ — ותרגומו לזמן האומות יהפוך אותו לנגזרת של בדיוק מה שהוא מבקש להשתחרר ממנו. השנייה של SI והלוח הגרגוריאני קיימים רק בחבילה הקוראת את שעון המחשב; בדיקה אוטומטית עוברת על כל התשובות ואוסרת את השדות והמילים unix, utc, iso, gregorian, seconds. אם אתם זקוקים להמרה, hebcal עושה זאת היטב; כאן לא נעשה זאת.
הנתיבים הישנים ללא קידומת (/now, /rega/…) עונים בהפניה 301 אל /api/….