API reference
Generated from the OpenAPI 3.1 spec that also validates the server (Zod contracts): this page can never drift from the implementation.
Same spec as the running server. If an endpoint drifts, the build fails.
Authentication
Session token issued by Better Auth. Send it as a Bearer token for account-scoped endpoints (analytics, briefings, billing).
Per-server API key, generated when you add a server. Send it as X-Api-Key for plugin ingestion endpoints: it only authorizes ingestion for that one server.
health
get/healthLiveness
No request body.
Responses
200Service vivant
statusstringokrequiredcURL example
curl -X GET "https://api.minealyze.com/health" \
get/health/readyReadiness (vérifie l’accès à la base)
No request body.
Responses
200Service prêt
statusstringreadyrequired503Base de données indisponible
statusCodeintegerrequirederrorstringrequiredmessagestringrequiredcodestringcURL example
curl -X GET "https://api.minealyze.com/health/ready" \
plugin
post/ingestBatch d'events phone-home (idempotent par batchId, max 500 events)
X-Api-Key
Bodyrequired
batchIdstring·uuidrequiredserverIdstringrequiredpluginVersionstringrequiredminecraftVersionstringsentAtstring·date-timerequiredeventsobject[]requiredarray of:
droppedEventsintegerResponses
202Batch accepté + actions en attente pour ce serveur
batchIdstring·uuidrequiredacceptedintegerrequiredrejectedintegerrequiredpendingActionsobject[]array of:
actionIdstring·uuidrequiredkindstringdispatch_commandbroadcastdiscord_webhookrequiredcommandstringmessagestringtargetPlayerUuidstring·uuididempotencyKeystringrequiredexpiresAtstring·date-timerequiredupdatealgstringed25519-v1requiredkeyIdstringrequiredversionstringrequiredfilenamestringrequiredsizeintegerrequiredsha256stringrequiredurlstring·urirequiredsignaturestringrequired400Requête invalide
statusCodeintegerrequirederrorstringrequiredmessagestringrequiredcodestring401Non authentifié
statusCodeintegerrequirederrorstringrequiredmessagestringrequiredcodestringcURL example
curl -X POST "https://api.minealyze.com/ingest" \
-H "X-Api-Key: <api-key>" \
-H "Content-Type: application/json" \
-d '{"batchId":"00000000-0000-4000-8000-000000000000","serverId":"string","pluginVersion":"string","sentAt":"2026-08-20T21:57:29.673Z","events":[null]}'post/ingest/action-resultsAccusés d'exécution des actions livrées dans l'ACK (idempotent : un accusé répété est ignoré)
X-Api-Key
Bodyrequired
array of:
actionIdstring·uuidrequiredstatusstringexecutedexpiredfailedrejectedrequiredexecutedAtstring·date-timeerrorMessagestringResponses
200Résultats journalisés (audit) / ignorés (déjà accusés ou hors tenant)
recordedintegerrequiredignoredintegerrequired400Requête invalide
statusCodeintegerrequirederrorstringrequiredmessagestringrequiredcodestring401Non authentifié
statusCodeintegerrequirederrorstringrequiredmessagestringrequiredcodestringcURL example
curl -X POST "https://api.minealyze.com/ingest/action-results" \
-H "X-Api-Key: <api-key>" \
-H "Content-Type: application/json" \
-d '[{"actionId":"00000000-0000-4000-8000-000000000000","status":"executed"}]'