זמןzman

L’API

Un timestamp juif autonome, en JSON ou en texte. Gratuit, sans clé, sans grégorien.

Principes

Unités et constantes

NomValeurRemarque
rega’im par chelek76Rambam, Hilkhot Kiddoush ha-Hodesh 10:1
chalakim par heure1 080ibid. 6:2
heures par jour24depuis 18:00 temps moyen de Jérusalem
rega’im par heure82 080
chalakim par jour25 920
rega’im par jour1 969 920toujours, quelle que soit la durée du jour
epochrega 0samedi 18:00 ouvrant la semaine du molad Tohou ; jour 0 = dimanche
molad Tohou2 395 824jour 1, 5 h, 204 ch
1 Tichri de l’an 1jour 1lundi
mois1 – 13Nissan = 1 … Adar = 12 (Adar I en année embolismique), Adar II = 13
jour de la semaine0 – 6dimanche = 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/….