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