KernelHost API

Vad KernelHost API (Reseller API) gör

KernelHost Reseller-API speglar exakt de beställnings- och hanteringsåtgärder som du annars utför i kundportalen. Du automatiserar därmed din återförsäljarverksamhet, integrerar KernelHost-produkter i din egen frontend eller fakturering och behåller full kontroll över behörigheter, hastighetsbegränsningar och IP-vitlista per nyckel.

Varje anrop signeras med HMAC-SHA256, skyddas mot uppspelning, bearbetas idempotent (obligatoriskt vid beställningar) och registreras i en manipuleringssäker granskningslogg. Betalningar dras först från ditt saldo och därefter från ditt sparade kort. Av säkerhetsskäl kan nya kort endast läggas till i kundportalen (3-D Secure 2).

Bas-URL
https://www.kernelhost.com/cp/kernelhost_api/v1

Innehållsförteckning

Vad du kan göra med API:et

  • Hämta produkter och priser (KVM-rotservrar, dedikerade, webbhotell, Minecraft, VPN, obegränsad trafik).
  • Lägga beställningar (Idempotency-Key skyddar mot dubbla debiteringar vid nätverksåterförsök).
  • Lista dina egna tjänster, kontrollera deras status och köra åtgärder: start, stopp, omstart, uppsägning till faktureringsperiodens slut och återkallelse av uppsägningen.
  • Läsa inloggningsuppgifter uteslutande för dina egna tjänster (separat behörighet, granskad, valfri bekräftelse via e-post vid varje åtkomst).
  • Hämta fakturor, kontrollera saldo, ladda ner faktura-PDF:er.
  • Registrera en webhook-URL per nyckel. Leveransen av händelser (för beställningar, tjänster och fakturor) är under förberedelse; fram till dess hämtar du statusen via GET /v1/orders/{id} och GET /v1/services/{id}.

Säkerhet på högsta nivå

API:et är utformat med antagandet att varje enskilt anrop har direkt ekonomisk påverkan och kan ge åtkomst till känsliga serveruppgifter. Säkerhetskraven ligger därför klart över vanlig REST-standard.

  • HMAC-SHA256-signatur över metod, sökväg, tidsstämpel, nonce och body-hash. Jämförelse i konstant tid.
  • Uppspelningsskydd: tidsstämpelfönster +-300s, engångs-nonce cache i 600s.
  • Hemligheter lagras serverside uteslutande som AES-256-GCM-chiffertext. Klartext finns endast tillfälligt i minnet för signaturverifiering. Huvudnyckeln ligger utanför databasen.
  • Granulära behörigheter per nyckel: farliga behörigheter (read:credentials, write:orders) måste aktiveras uttryckligen, standard är endast läsning.
  • Dataisolering på databasnivå: varje fråga filtrerar strikt på ditt konto-ID, åtkomst mellan tenanter är inte möjlig.

Exempel: hämta din egen kontoinformation

Anropet signerar hela förfrågan med din hemlighet. Hemligheten lämnar aldrig klientens minne, endast signaturen överförs.

TS=$(date +%s)
NONCE=$(openssl rand -hex 16)
BODY_SHA256=$(printf '' | openssl dgst -sha256 -hex | awk '{print $2}')
SIG_INPUT=$(printf 'GET\n/v1/me\n%s\n%s\n%s' "$TS" "$NONCE" "$BODY_SHA256")
SIG=$(printf '%s' "$SIG_INPUT" | openssl dgst -sha256 -hmac "$KH_SECRET" -hex | awk '{print $2}')

curl https://www.kernelhost.com/cp/kernelhost_api/v1/me \
  -H "KH-Key: $KH_KEY" \
  -H "KH-Timestamp: $TS" \
  -H "KH-Nonce: $NONCE" \
  -H "KH-Signature: $SIG"

Vanliga frågor

Vem får använda Reseller-API?

Varje befintlig KernelHost-kund kan skapa nycklar i kundportalen via menyalternativet "KernelHost API", var och en med egen etikett, egna behörigheter och egen IP-vitlista. Endast kontoägaren kan skapa, rotera eller återkalla nycklar. Inget separat återförsäljaravtal krävs: alla offentligt listade produkter kan beställas via API:et.

Hur betalas en beställning?

Betalningen sker i denna ordning: först ditt saldo, därefter din sparade betalningsmetod. Om betalningen misslyckas eller om inget kort finns sparat returnerar API:et HTTP 402 "Payment Required" med en exakt orsak (insufficient_credit_and_no_card, card_declined, credit_apply_failed) och avbryter beställningen omedelbart, så att ingen obetald beställning blir kvar.

Kan jag läsa tjänsters lösenord via API:et?

Ja, endast för dina egna tjänster och endast med den uttryckliga behörigheten read:credentials, som måste aktiveras separat när du skapar en nyckel. Svaret innehåller värdnamn, IP-adresser, användarnamn och lösenord. Varje åtkomst skapar en post credentials.read i granskningsloggen och skickar ett bekräftelsemejl till kontots e-postadress, så att dolt missbruk inte går obemärkt förbi.

Vad händer om min hemlighet komprometteras?

Du roterar secret med ett klick i kundpanelen och det gamla secret blir ogiltigt direkt. Misslyckade autentiseringsförsök loggas och begränsas per käll-IP men låser aldrig din nyckel, så ingen kan blockera din integration bara för att hen känner till nyckelns publika ID.

Redo att börja?

Skapa din första API-nyckel i kundportalen under "KernelHost API" och följ snabbstartsguiden.