Laddro DocsLaddro Docs

Kody Bledow

Kody Bledow

Wszystkie bledy API zwracaja spojny format JSON:

{
  "error": "Not Found",
  "message": "Resume not found",
  "statusCode": 404
}

Kody Statusu HTTP

KodNazwaOpis
200OKZapytanie zakonczone sukcesem
201CreatedZasob utworzony pomyslnie
400Bad RequestNieprawidlowe cialo zapytania lub parametry
401UnauthorizedBrakujacy lub nieprawidlowy klucz API
402Payment RequiredBrak kredytow. Kup wiecej lub poczekaj na miesieczny reset
403ForbiddenAkcja niedozwolona (np. BYOK bez subskrypcji)
404Not FoundZasob nie istnieje
413Payload Too LargePrzeslany plik przekracza limit 10MB
422Unprocessable EntityPoprawny JSON, ale semantycznie nieprawidlowy (np. opis stanowiska za krotki)
429Too Many RequestsLimit czestotliwosci przekroczony. Ponow probe po wartosci naglowka Retry-After
500Internal Server ErrorCos poszlo nie tak po naszej stronie

Typowe Scenariusze Bledow

Brakujacy Klucz API

{
  "error": "Unauthorized",
  "message": "Missing x-api-key header",
  "statusCode": 401
}

Rozwiazanie: Dodaj swoj klucz API do naglowka x-api-key.

Nieprawidlowy Klucz API

{
  "error": "Unauthorized",
  "message": "Invalid API key",
  "statusCode": 401
}

Rozwiazanie: Sprawdz swoj klucz na console.laddro.com. Klucze mogly zostac uniewaznione.

Brak Kredytow

{
  "error": "Payment Required",
  "message": "No credits remaining. Purchase credits at console.laddro.com",
  "statusCode": 402
}

Rozwiazanie: Kup pakiet kredytow lub poczekaj na miesieczny reset darmowego planu.

BYOK Bez Aktywnej Subskrypcji

{
  "error": "Forbidden",
  "message": "BYOK requires an active recurring Laddro subscription",
  "statusCode": 403
}

Rozwiazanie: Subskrybuj na laddro.com z planem cyklicznym.

Nieprawidlowy Klucz Dostawcy

{
  "error": "Unprocessable Entity",
  "message": "API key validation failed for provider 'anthropic': invalid_api_key",
  "statusCode": 422
}

Rozwiazanie: Sprawdz ponownie klucz API dostawcy. API waliduje klucze wywolaniem testowym przed zapisaniem.

Strategia Ponawiania

Dla bledow 429 i 5xx zaimplementuj wykladniczy backoff:

async function withRetry(fn: () => Promise<Response>, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    try {
      const response = await fn()
      if (response.status === 429) {
        const retryAfter = parseInt(response.headers.get('Retry-After') || '1')
        await new Promise(r => setTimeout(r, retryAfter * 1000))
        continue
      }
      return response
    } catch (error) {
      if (i === maxRetries - 1) throw error
      await new Promise(r => setTimeout(r, Math.pow(2, i) * 1000))
    }
  }
}

On this page