GHI API v1.1 – Specification (Sandbox)
Version courante : API v1.1 • Moteur sandbox : v0.4.3-sandbox • Environnement : sandbox
1. Conventions générales
- Base URL (sandbox) :
http://localhost:8000 - Tous les endpoints sont sous
/v1/ghi/... - Réponses en JSON, timestamps en UTC (ISO-8601 avec suffixe
Z).
2. Vue d’ensemble des endpoints
| Endpoint | Méthode | Description |
|---|---|---|
/v1/ghi/metadata |
GET | Métadonnées API + moteur, versions supportées. |
/v1/ghi/regions |
GET | Liste des régions GHI synthétiques. |
/v1/ghi/snapshot |
GET | Coûts de production par région + agrégats globaux. |
/v1/ghi/history |
GET | Historique synthétique des coûts (7 points de test). |
/v1/ghi/network |
GET | Métriques réseau synthétiques (EH/s, difficulté, frais moyens). |
/v1/ghi/forecast |
GET | Prévision synthétique du coût moyen global. |
3. /v1/ghi/metadata
Endpoint de découverte. Il expose la version courante de l’API, le moteur, l’environnement et la liste des endpoints disponibles.
Exemple de réponse
{
"version": "1.1",
"timestamp_utc": "2025-12-11T09:18:04.568237Z",
"engine_sandbox_version": "0.4.3-sandbox",
"environment": "sandbox",
"api_current": "1.1",
"api_supported": ["1.1", "1.0"],
"available_endpoints": [
"/v1/ghi/snapshot",
"/v1/ghi/history",
"/v1/ghi/regions",
"/v1/ghi/metadata",
"/v1/ghi/network",
"/v1/ghi/forecast"
]
}
4. /v1/ghi/regions
Retourne la liste des régions couvertes par le modèle, ainsi qu’un compteur.
Exemple de réponse
{
"version": "1.1",
"timestamp_utc": "2025-12-11T09:20:00.000000Z",
"engine_sandbox_version": "0.4.3-sandbox",
"regions": [
{"id": "us", "name": "United States"},
{"id": "eu", "name": "Europe"},
{"id": "cn", "name": "China"}
],
"region_count": 3
}
5. /v1/ghi/snapshot
Vue instantanée des coûts de production par région, avec agrégats globaux.
Compatible v1.0, enrichi en v1.1 avec les champs global_*_cost_usd.
Exemple de réponse
{
"version": "1.1",
"timestamp_utc": "2025-12-11T09:20:30.000000Z",
"engine_sandbox_version": "0.4.3-sandbox",
"region_count": 3,
"regions": [
{
"id": "us",
"name": "United States",
"region_id": "us",
"currency": "USD",
"min_cost_usd": 39000.0,
"avg_cost_usd": 43000.0,
"max_cost_usd": 51000.0
},
{
"id": "eu",
"name": "Europe",
"region_id": "eu",
"currency": "USD",
"min_cost_usd": 41000.0,
"avg_cost_usd": 46000.0,
"max_cost_usd": 53000.0
},
{
"id": "cn",
"name": "China",
"region_id": "cn",
"currency": "USD",
"min_cost_usd": 36000.0,
"avg_cost_usd": 40000.0,
"max_cost_usd": 48000.0
}
],
"global_min_cost_usd": 36000.0,
"global_avg_cost_usd": 43000.0,
"global_max_cost_usd": 53000.0
}
6. /v1/ghi/history
Historique synthétique des coûts pour une région donnée (ou "global"). Le sandbox renvoie actuellement 7 points de démonstration.
Exemple d’appel
GET /v1/ghi/history?region_id=global
Exemple de réponse
{
"version": "1.1",
"timestamp_utc": "2025-12-11T09:21:10.000000Z",
"engine_sandbox_version": "0.4.3-sandbox",
"region_id": "global",
"points": [
{
"date": "2025-12-05",
"currency": "USD",
"min_cost_usd": 38700.0,
"avg_cost_usd": 43000.0,
"max_cost_usd": 47300.0
}
// … autres points …
]
}
7. /v1/ghi/network
Retourne des métriques réseau synthétiques (sandbox) : hashrate, difficulté, frais moyens en USD.
Exemple de réponse
{
"version": "1.1",
"timestamp_utc": "2025-12-11T09:22:00.000000Z",
"engine_sandbox_version": "0.4.3-sandbox",
"hashrate_eh": 554.0,
"difficulty": 89000000000000.0,
"avg_fee_usd": 4.2
}
8. /v1/ghi/forecast
Prévision synthétique du coût moyen global sur un horizon en jours. Le sandbox utilise actuellement une valeur constante (démo).
Exemple d’appel
GET /v1/ghi/forecast?forecast_days=7
Exemple de réponse
{
"version": "1.1",
"timestamp_utc": "2025-12-11T09:22:45.000000Z",
"engine_sandbox_version": "0.4.3-sandbox",
"forecast_days": 7,
"predicted_avg_cost_usd": 62300.0
}
9. Compatibilité & versioning
/metadataest la source officielle pour les versions supportées./snapshotet/historyrestent compatibles v1.0 sur les champs existants.- Les nouveaux endpoints (
/regions,/network,/forecast) sont propres à v1.1. - Toute rupture de contrat déclenchera une future v2.0.