HUGOSMP API Dokumentation
Verstaendliche Uebersicht fuer Endpunkte, Auth und Beispiel-Requests.
1) Basis URL
https://datenfresse.limbach.dev
Healthcheck ohne Auth:
GET /health
2) Auth
Client Auth (Mod -> API)
Pflicht-Header:
x-client-uuid: <uuid>
x-client-ts: <unix-ms>
x-client-signature: <hmac-hex>
Canonical:
<uuid>.<ts>.<METHOD>.<PATH>.<sha256(body-or-empty)>
Signatur-Key:
uuid_allowed.api_key (pro UUID)
Admin Auth (Website/Tools -> API)
Authorization: Bearer <ADMIN_API_KEY>
3) GET Endpunkte
GET/health
Public. Antwort: {"ok":true,"db":true}
GET/v1/permissions
Client Auth. Liefert Rechte fuer die UUID.
GET/v1/recommendation?item=<itemId>&stackCount=64&stackSpecified=true&userTotalPrice=120000&excludeSeller=Name
Client Auth. Preis-Empfehlung.
GET/v1/trend?item=<itemId>&points=28&excludeSeller=Name
Client Auth. Trendwerte als Array.
4) POST Endpunkte
POST/v1/prices
Client Auth + Tracking-Recht. Speichert Preiszeile.
Body Beispiel (/v1/prices):
{
"item": "minecraft:diamond",
"amount": 64,
"price": 120000,
"seller": "PlayerName",
"variant": "..."
}
POST/v1/admin/uuid
Admin Auth. Rechte fuer UUID setzen.
Body Beispiel (/v1/admin/uuid):
{
"uuid": "00000000-0000-0000-0000-000000000000",
"zugriff": 1,
"perm_tracking": 1,
"perm_automode": 0,
"perm_autoprice": 0,
"adminrecht": 1
}
POST/v1/admin/uuid/newkey
Admin Auth. Generiert neuen API-Key fuer eine UUID.
Body:
{
"uuid": "00000000-0000-0000-0000-000000000000"
}
5) cURL Beispiele
# Health
curl -s https://datenfresse.limbach.dev/health
# Admin: Rechte setzen
curl -s -X POST "https://datenfresse.limbach.dev/v1/admin/uuid" \
-H "Authorization: Bearer <ADMIN_API_KEY>" \
-H "Content-Type: application/json" \
-d '{"uuid":"...","zugriff":1,"perm_tracking":1,"perm_automode":0,"perm_autoprice":0,"adminrecht":0}'
# Admin: User Key generieren
curl -s -X POST "https://datenfresse.limbach.dev/v1/admin/uuid/newkey" \
-H "Authorization: Bearer <ADMIN_API_KEY>" \
-H "Content-Type: application/json" \
-d '{"uuid":"..."}'
6) Fehlercodes
401 = Auth fehlt/falsch
403 = Rechte fehlen (zugriff/perm)
400 = Request/Parameter ungueltig
500 = Server/DB Fehler