// api

API publique

Cette page inventorie la surface machine bilingue de l0g : Agent Surface 1.18.0, index de recherche partagé, trois claims structurants typés maximum par article, evidence graph, Risk Diff, Black Box Recorder, snapshots de risque, endpoint canoniquedebt-risk.json et historique signals/historypour replay et backtest. CORS ouvert, aucune clé, aucune authentification, aucun pistage.

English version available →

// endpoints

Les points d'accès publics, sans clé ni authentification. Agent Surface 1.18.0 est le contrat de lecture pour agents ; les endpoints de risque restent des snapshots spécialisés.

GET/donnees/agents/HTMLDocumentation Agent Surface 1.18.0 : fraîcheur par producteur, séries nommées, règles de citation, garde-fous et endpoints M2M.GET/agents.jsonJSONManifeste de découverte pour agents : capacités, endpoints, règles d'usage et politique de preuve.GET/openapi.jsonOPENAPIContrat OpenAPI 3.1 des endpoints M2M de l0g.GET/api/v1/search-index.jsonJSONIndex bilingue canonique partagé par Agent Surface, MCP et WebMCP.GET/llms-full-en.txtTEXTCorpus anglais complet séparé du contexte français.GET/api/v1/claims.jsonJSONGraphe affirmation-source : claims typées, références cliquables, datées quand détectable.GET/api/v1/evidence-graph.jsonJSONEvidence graph : articles, claims, références, hôtes, sources primaires et datasets en nœuds/arêtes.GET/api/v1/catalog.ndjsonNDJSONCatalogue complet ligne à ligne pour ingestion streaming, RAG ou indexation incrémentale.GET/api/v1/claims.ndjsonNDJSONClaims typées en flux NDJSON, avec références embarquées.GET/api/v1/evidence-graph.ndjsonNDJSONEvidence graph ligne à ligne : nœuds puis arêtes.GET/api/v1/sources.jsonJSONSources primaires et hôtes effectivement cités par le corpus.GET/api/v1/freshness.jsonJSONFraîcheur du corpus et des signaux : dates utiles, expiration et couverture.GET/api/v1/human-traffic.jsonJSONLectures humaines : GET HTML agrégés par jour, page et domaine référent, sans identifiant persistant et avec seuil k=5.GET/api/v1/integrity.jsonJSONEmpreintes SHA-256 canoniques des surfaces Agent Surface, pour vérifier un snapshot.GET/api/v1/changes.jsonJSONChangefeed machine : versions, hashes courants, statut de diff et changements sémantiques.GET/api/v1/changes.ndjsonNDJSONChangefeed en flux ligne à ligne, avec métadonnées de version pour watchers.GET/api/v1/black-box.jsonJSONBlack Box Recorder : frames point-in-time hashées pour rejouer l’état public du risque.GET/api/v1/risk-diff.jsonJSONRisk Diff : ce qui change dans les signaux, sources, claims, modèles, articles et niveau de confiance.GET/api/v1/catalog.jsonJSONCatalogue machine complet : articles, guides, sources, atlas du glossaire et protocole.GET/api/v1/risk.jsonJSONÉtat courant des dashboards historiques et synthèse confluence.GET/api/v1/debt-risk.jsonJSONSnapshot canonique Debt Risk Radar importé depuis latest.json : score courant hors CBO, buckets, couverture des sources, provenance et top signaux.GET/api/v1/risk.xmlAtomFlux des changements de niveau, pour bots d'alerte et SIEM.GET/api/v1/history.ndjsonNDJSONJournal opérationnel brut à chaque assemblage. Continuité fine, append-only serveur, sans attestation CI individuelle.GET/api/v1/signals/current.jsonJSONDernières observations point-in-time par instrument, dérivées de l'historique public.GET/series/HTMLRegistre des noms citables, identifiants stables, versions méthodologiques et exports par série.GET/api/v1/signals/history.jsonJSONHistorique canonique fusionné : journal opérationnel quotidien, frames Black Box attestées, courant, couverture et niveaux de preuve.GET/api/v1/signals/history.ndjsonNDJSONHistorique ligne à ligne : une ligne meta, puis observations, puis événements level-change.GET/api/v1/signals/history.csvCSVObservations à plat pour pandas, R, DuckDB ou tableur.GET/api/v1/signals/schema.jsonJSONSchéma machine des lignes meta, observation et level-change.

// exemple

curl -s https://l0g.fr/agents.json
curl -s https://l0g.fr/api/v1/risk.json
curl -s https://l0g.fr/api/v1/debt-risk.json
curl -s https://l0g.fr/api/v1/signals/history.ndjson | head
{
  "version": "2",
  "generated": "2026-06-18T08:00:00Z",
  "snapshot": "2026-06-16T08:16:13Z",
  "status": "degraded",
  "indices": {
    "us":      { "value": 58, "scale": 100, "level": "Élevé",  "tone": "elevated", "label": "US Macro Dashboard", "source": "https://us.l0g.fr" },
    "eu":      { "value": 47, "scale": 100, "level": "Modéré", "tone": "moderate", "label": "EU Macro Dashboard", "source": "https://euro.l0g.fr" },
    "yen":     { "value": 41, "scale": 100, "level": "Modéré", "tone": "moderate", "label": "Yen Carry Monitor",  "source": "https://yct.l0g.fr" },
    "energie": { "value": 58, "scale": 100, "level": "Tendu",  "tone": "elevated", "sourceStatus": "ok", "qualityStatus": "official-delayed", "fallbackUsed": true, "sourceUpdatedAt": "..." },
    "debt":    { "value": 54, "scale": 100, "level": "Élevé", "tone": "elevated", "sourceStatus": "ok", "qualityStatus": "nominal", "fallbackUsed": false, "sourceUpdatedAt": "..." }
  },
  "scaleCaveat": { "title": "Normalisation d’affichage, pas indice unique" },
  "precisionGuard": { "title": "Illusion de précision" },
  "confluence": { "updated": "...", "count": 15, "conviction": 1, "top": { "ticker": "TSM", "score": 90, "quadrant": "divergent" } },
  "license": "CC BY 4.0", "attribution": "l0g.fr"
}

// historique & backtest

L'historique signals/history fusionne sans interpolation le journal opérationnel et la Black Box. seriesDate date la publication l0g ;observedAt date l'observation économique amont quand elle existe.evidenceTier vaut operational-archive,attested-archive ou current-snapshot. Le flux brut conserve chaque assemblage ; la surface canonique retient son dernier point par jour UTC.

import pandas as pd
df = pd.read_csv("https://l0g.fr/api/v1/signals/thermometre-stress-dette/history.csv", parse_dates=["seriesDate"])
df = df.set_index("seriesDate").sort_index()

Le backtest doit utiliser seriesDate pour la date de publication l0g etobservedAt seulement pour la date économique amont. Les lignesobservation sont backtestables ; les événementslevel-change servent à l'audit et aux alertes, pas au calcul de performance.

// champs

  • Agent Surface 1.18.0 : contrat M2M bilingue, avec /agents.json pour la découverte, /openapi.json pour le schéma et /api/v1/integrity.json pour vérifier les snapshots.
  • language, canonicalId, translationOf, alternateUrl et translationStatus relient chaque traduction à sa source française.
  • indices.<clé>.value — valeur du signal (0 à scale, généralement 100), normalisée par instrument.
  • indices.<clé>.rawValue — valeur native facultative avant normalisation ; son unité dépend de la méthodologie de l'instrument et ne doit pas être comparée directement aux autres signaux.
  • sourceStatus, qualityStatus, fallbackUsed, sourceUpdatedAt, sourceCheckedAt, lastAttemptAt et lastSuccessAt distinguent la publication des données, leur dernier contrôle réussi et la collecte par l'agrégateur.
  • /api/v1/debt-risk.json — source canonique du signal Dette US : signal.value est l'arrondi de provenance.scoreRaw, lui-même repris de https://debt.l0g.fr/latest.json. Le stress courant exclut les projections CBO et stabilise les familles manquantes par imputation neutre ; quand disponible, provenance.coverage indique la couverture observée avant imputation.
  • /api/v1/signals/history.json : surface complète pour replay, avec coverage, policy, current, observations et levelChanges.
  • signals/history.ndjson : même contrat en flux, avec recordType=meta, recordType=observation, puis recordType=level-change.
  • scaleCaveat et precisionGuard — limites de lecture : normalisation d’affichage, couverture, fraîcheur, incertitude et reproductibilité.
  • level — libellé lisible (Détendu, Modéré, Élevé/Tendu, Crise).
  • tone — code machine : calm, moderate, elevated, crisis.
  • snapshot — horodatage (ISO 8601 UTC) des données ; generated — date de génération du fichier.
  • confluence — synthèse 13FLOW : nombre de titres, quadrant conviction, meilleur score.

Pas d'« indice global » : on n'expose que les sous-signaux réellement mesurés par chaque outil. Agréger les signaux en un seul chiffre serait un nombre dérivé non mesuré — on ne le fait pas.

// notes

  • CORS : Access-Control-Allow-Origin: * — consommable depuis n'importe quel domaine.
  • Cadence : régénéré toutes les 15 minutes, sans promesse de temps réel. snapshot/generated datent l'assemblage ; la fraîcheur utile se lit dans chaque signal.
  • Versionnement : la forme de /v1/ reste stable ; toute rupture passera par /v2/.
  • Licence : CC BY 4.0. Réutilisation libre avec attribution à l0g.fr.

Best-effort. Ceci n'est pas un conseil en investissement.