Skip to content

API HTTP ​

URL de base : http://127.0.0.1:44555 sur le PC de MyHUD. Depuis un autre appareil, utilise l'adresse affichée dans le panneau et envoie le jeton. Voir Piloter depuis un autre appareil.

Routes ​

Méthode et cheminDescription
POST /api/actions/<commande>Exécute une commande.
GET /api/actionsListe toutes les commandes et leur payload.
GET /api/statePanneaux du HUD, fenêtres, scène actuelle, statut d'OBS.
GET /api/matchMatch actuel. Identique à la commande get_match.
GET /api/vetoVeto manuel en cours. Identique à la commande veto_status.
GET /api/presetsPresets de couleurs du HUD.
GET /healthIndique si le serveur tourne.

Authentification ​

Sur le PC de MyHUD, aucune authentification n'est nécessaire.

Depuis un autre appareil, envoie le jeton dans l'un de ces en-têtes :

Authorization: Bearer <jeton>
X-MyHUD-Token: <jeton>

POST /api/actions/<commande> ​

Envoie le payload de la commande dans un corps JSON, avec Content-Type: application/json. Pour une commande sans payload, n'envoie pas de corps, ou {}.

bash
curl -X POST http://127.0.0.1:44555/api/actions/set_map_result \
  -H 'Content-Type: application/json' \
  -d '{"map":1,"scoreA":13,"scoreB":9,"finished":true}'
powershell
$body = @{ map = 1; scoreA = 13; scoreB = 9; finished = $true } | ConvertTo-Json
Invoke-RestMethod -Method Post http://127.0.0.1:44555/api/actions/set_map_result `
  -ContentType 'application/json' -Body $body
python
import requests

res = requests.post(
    "http://127.0.0.1:44555/api/actions/set_map_result",
    json={"map": 1, "scoreA": 13, "scoreB": 9, "finished": True},
)
print(res.status_code, res.json())
ts
const res = await fetch('http://127.0.0.1:44555/api/actions/set_map_result', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ map: 1, scoreA: 13, scoreB: 9, finished: true }),
});
console.log(res.status, await res.json());

Les nombres et les booléens peuvent aussi être envoyés en texte ("3", "true"). C'est utile avec les outils qui n'envoient que du texte, comme le Stream Deck.

Succès ​

Statut 200 :

json
{ "ok": true, "state": { "revision": 42 }, "result": {} }
  • state : la partie de l'état du HUD que la commande modifie, par exemple { "revision": 42, "vetoVisible": true }.
  • result : les données renvoyées par la commande. Seules certaines commandes renvoient des données. Voir Commandes.

Échec ​

Le statut est 4xx ou 5xx :

json
{ "ok": false, "error": "conflict", "message": "..." }

Voir Erreurs.

GET /api/actions ​

json
{
  "ok": true,
  "actions": [
    {
      "id": "set_event_name",
      "description": "Sets the event name shown by the HUD and the SEN scenes.",
      "needsMainWindow": true,
      "payload": {
        "type": "object",
        "properties": { "name": { "type": "string", "maxLength": 120 } },
        "required": ["name"]
      }
    }
  ]
}
  • needsMainWindow : true si la commande échoue quand la fenêtre principale de MyHUD est fermée.
  • payload : le JSON Schema du payload, ou null si la commande n'en prend pas.
  • description : en anglais.

Utilise cette route pour construire un outil qui correspond toujours à la version de MyHUD installée.

GET /api/state ​

json
{
  "ok": true,
  "state": {
    "revision": 42,
    "scoreboardVisible": false,
    "vetoVisible": true,
    "statsVisible": false,
    "roster": [{ "slot": 1, "name": "ZywOo" }],
    "hudWindowOpen": true,
    "mainWindowOpen": true,
    "senScene": "versus",
    "obs": { "connection": "connected", "replayBufferActive": true }
  }
}
ChampDescription
revisionUn nombre qui augmente à chaque changement de l'état du HUD.
scoreboardVisible, vetoVisible, statsVisiblePanneaux visibles sur le HUD. Absents tant que le HUD ne les a pas transmis.
rosterJoueurs par slot du HUD (1 à 9, puis 0). Utilise le slot avec show_player_stats.
hudWindowOpenLa fenêtre overlay du HUD est ouverte.
mainWindowOpenLa fenêtre principale de MyHUD est ouverte.
senSceneScène affichée dans la fenêtre des scènes, ou null si elle est fermée.
obs.connectionconnected, connecting ou disconnected.

GET /api/presets ​

json
{ "ok": true, "presets": [{ "id": "mon-preset", "name": "Mon preset" }] }

La liste est vide tant que l'overlay du HUD n'a pas été ouvert une fois.

GET /health ​

json
{ "ok": true, "service": "myhud-automation" }

Pages web ​

Par sécurité, une page web ouverte dans un navigateur ne peut pas envoyer de commandes, même sur le PC de MyHUD. MyHUD refuse toute requête qui a un en-tête Origin. Seules GET /health, GET /api/presets et GET /api/actions acceptent les requêtes d'une page web.

Les scripts, le Stream Deck, Companion et les autres programmes n'envoient pas cet en-tête : ils fonctionnent normalement.