L’API
Un timestamp juif autonome, en JSON ou en texte. Gratuit, sans clé, sans grégorien.
Principes
- Base :
/api/. Réponses en JSON ; envoyezAccept: text/plainou ajoutez?format=textpour du texte. - Pas de clé, pas d’inscription. CORS ouvert (
Access-Control-Allow-Origin: *). - Limite de débit par adresse : 20 requêtes par unité de cadence, rafale de 60 ; au-delà,
429avecRetry-After. Cache-Control: max-age=1sur/api/now; un jour sur les réponses purement arithmétiques.- Code sous licence MIT. Réponses de l’API sous licence CC BY 4.0 : réutilisation libre avec attribution « zman, zman.technology ».
Unités et constantes
| Nom | Valeur | Remarque |
|---|---|---|
| rega’im par chelek | 76 | Rambam, Hilkhot Kiddoush ha-Hodesh 10:1 |
| chalakim par heure | 1 080 | ibid. 6:2 |
| heures par jour | 24 | depuis 18:00 temps moyen de Jérusalem |
| rega’im par heure | 82 080 | |
| chalakim par jour | 25 920 | |
| rega’im par jour | 1 969 920 | toujours, quelle que soit la durée du jour |
| epoch | rega 0 | samedi 18:00 ouvrant la semaine du molad Tohou ; jour 0 = dimanche |
| molad Tohou | 2 395 824 | jour 1, 5 h, 204 ch |
| 1 Tichri de l’an 1 | jour 1 | lundi |
| mois | 1 – 13 | Nissan = 1 … Adar = 12 (Adar I en année embolismique), Adar II = 13 |
| jour de la semaine | 0 – 6 | dimanche = 0, Chabbat = 6 |
Endpoints
GET /api/now
L’instant présent : rega, jour, heure, chelek, rega dans le chelek, date, jour de la semaine, et qualité de l’horloge (source : iers ou fallback ; dut1_age_days : âge de la dernière mesure ; predicted : la valeur DUT1 est une prédiction).
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
}
}
En texte :
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}
Décode un entier en jour, heure, chelek, rega, date et jour de la semaine. Pour un jour antérieur au 1 Tichri de l’an 1, date vaut null. Exemple : le molad Tohou.
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}
Le jour donné, avec son premier rega (start) et le premier rega du lendemain (end, exclusif). Erreur 400 si la date n’existe pas (30 Hechvan une année déficiente, Adar II une année commune, etc.).
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}
Le molad moyen du mois, en rega et en parts. La convention est celle des annonces : heures comptées depuis 18:00 la veille. « Vendredi soir 20:59 et 1 chelek » apparaît donc comme jour de la semaine 6 (le jour halachique a commencé), 2 heures, 1 063 chalakim.
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}
Longueur de l’année, caractère embolismique, Roch Hachana, et les mois dans l’ordre civil avec leur longueur et leur premier jour.
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
État de l’horloge et du cache IERS. 200 si tout va bien, 503 en mode dégradé (pas de donnée 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
}
}
Ce que l’API ne renverra jamais
Aucune réponse ne contient de date grégorienne, de timestamp Unix, d’heure UTC ni de durée en secondes. Ce n’est pas un oubli : c’est le point du projet. Le compteur est natif — l’epoch est juif, l’unité est le rega, l’horloge est la rotation de la Terre — et le traduire dans le temps des nations reviendrait à en faire une dérivée de ce dont il veut précisément s’affranchir. La seconde SI et le calendrier grégorien n’existent que dans le package qui lit l’horloge de la machine ; un test automatique parcourt toutes les réponses et interdit les champs et les mots unix, utc, iso, gregorian, seconds. Si vous avez besoin d’une conversion, hebcal le fait très bien ; nous ne le ferons pas ici.
Les anciens chemins sans préfixe (/now, /rega/…) répondent par une redirection 301 vers /api/….