Armox
    Armox Academy 📚
    API-ReferenzEinfĂŒhrung in die API-ReferenzFehler und Ratenlimits

    Fehler & Rate Limits

    Die öffentliche Armox-API verwendet standardmĂ€ĂŸige HTTP-Statuscodes und ein einheitliches JSON-Fehlerformat.

    Fehlerantwort-Format

    { "error": "Human-readable message" }
    

    Beispiele:

    { "error": "Invalid API key" }
    
    { "error": "Insufficient credits. Required 1000, available 200" }
    

    Fehlercodes

    CodeBedeutungTypische Ursache
    400Bad RequestUngĂŒltiger Payload, fehlendes Pflichtfeld, ungĂŒltiges Modell
    401UnauthorizedFehlender oder ungĂŒltiger Bearer-API-SchlĂŒssel
    402Payment RequiredUnzureichende Credits
    403ForbiddenPlan-/ZugangsbeschrÀnkungen
    404Not FoundRessource/Job/App nicht gefunden
    409ConflictJob kann im aktuellen Status nicht storniert werden
    429Too Many RequestsSchlĂŒsselbasiertes Rate Limit ĂŒberschritten
    500Internal Server ErrorUnerwarteter Backend-Fehler

    Rate Limits

    Rate Limiting wird pro API-SchlĂŒssel mit einem rollierenden 60-Sekunden-Fenster durchgesetzt.

    Jede erfolgreiche authentifizierte Antwort enthÀlt:

    • X-RateLimit-Limit
    • X-RateLimit-Remaining
    • X-RateLimit-Reset

    Wenn das Limit ĂŒberschritten wird, gibt die API zurĂŒck:

    • Status 429
    • Fehler-Body { "error": "Rate limit exceeded" }
    • Retry-After: 60-Header

    Umgang mit 429-Antworten

    Empfohlene Strategie:

    1. Retry-After-Header auslesen
    2. Vor dem erneuten Versuch warten
    3. Exponentielles Backoff mit Jitter bei wiederholten 429-Antworten verwenden
    4. Synchronisierte Wiederholungsversuche ĂŒber Worker hinweg vermeiden

    JavaScript Retry-Beispiel

    async function requestWithRetry(url, options, retries = 3) {
      for (let attempt = 0; attempt <= retries; attempt += 1) {
        const response = await fetch(url, options);
        if (response.status !== 429) return response;
    
        const retryAfter = Number(response.headers.get("Retry-After") || 2);
        await new Promise((resolve) => setTimeout(resolve, retryAfter * 1000));
      }
    
      throw new Error("Exceeded retry attempts");
    }
    

    Credits und Abrechnungsverhalten

    • Credits werden bei Annahme einer AusfĂŒhrung belastet
    • Fehlgeschlagene Jobs werden durch den AusfĂŒhrungsablauf erstattet
    • Nutzung ĂŒberwachen ĂŒber GET /api/v1/account

    HĂ€ufige Produktionsfehler

    • Invalid API key: falscher/abgelaufener/widerrufener SchlĂŒssel
    • Public API access requires ...: Abonnement nicht berechtigt
    • Insufficient credits ...: Credits aufladen oder AusfĂŒhrungskosten reduzieren
    • Rate limit exceeded: Backoff + Warteschlange hinzufĂŒgen

    Debugging-Checkliste

    • ÜberprĂŒfen, ob Authorization: Bearer ... vorhanden ist
    • Endpunkt-Pfad und Methode ĂŒberprĂŒfen
    • Request-IDs/Job-IDs in Ihrer App protokollieren
    • Response-Header fĂŒr Rate-Limit-Beobachtbarkeit erfassen
    • Fehlgeschlagene Payloads fĂŒr erneute Verarbeitung speichern

    Verwandte Seiten

    Bereit, deinen kreativen Workflow zu transformieren?

    Keine Kreditkarte erforderlich1000 kostenlose Credits