NieuwKoppel elke agent aan UberLLM: één sleutel, elk model, voor de catalogusprijs of minder.
UberLLM

Fouten

UberLLM retourneert foutenveloppen in OpenAI-stijl, zodat bestaande foutafhandeling ongewijzigd werkt:

{
  "error": {
    "code": "insufficient_credits",
    "message": "Your credit balance is too low to serve this request.",
    "type": "insufficient_credits"
  }
}

Inferentie-interface (/v1/*)

HTTP code Betekenis Wat te doen
402 insufficient_credits Je prepaid saldo is onvoldoende om de reservering voor het verzoek te dekken. Waardeer op via Dashboard → Credits.
402 key_spend_cap_exceeded Deze sleutel heeft de geconfigureerde bestedingslimiet bereikt (dagelijks / maandelijks / levenslang). Verhoog of verwijder de limiet van de sleutel, of gebruik een andere sleutel.
400 invalid_request De body van het verzoek kon niet worden geparset, of het model heeft het verzoek afgewezen (het bericht vermeldt de reden). Corrigeer het verzoek; het wordt niet opnieuw geprobeerd.
413 request_too_large De body van het verzoek is groter dan 10 MB (meestal afbeeldingen verzonden als base64). Verzend afbeeldingen als https:// links, of verkort het gesprek. Er zijn geen kosten in rekening gebracht.
404 model_not_found De model id is niet beschikbaar. Een uberllm/ voorvoegsel ervoor is prima: uberllm/deepseek/deepseek-v4.1-flash bereikt deepseek/deepseek-v4.1-flash. Controleer GET /v1/models; corrigeer de id.
400 context_length_exceeded De prompt is langer dan het model aankan, ongeacht de verkoper. Op /v1/chat/completions zonder een models lijst antwoordt het dichtstbijzijnde model dat het aankan (de model van het antwoord noemt het); deze fout treedt op wanneer geen enkel model dit doet, of op /v1/messages. Het bericht geeft beide groottes en noemt modellen die het aankunnen. Verzend minder, of kies een model dat in het bericht wordt genoemd. Er zijn geen kosten in rekening gebracht.
400 tools_not_supported Het verzoek verzendt tools en het model kan deze niet aanroepen, ongeacht de verkoper. Dezelfde vervangingsregel als hierboven. Het bericht noemt modellen die dit wel kunnen. Verzend het zonder tools, of kies een model dat in het bericht wordt genoemd. Er zijn geen kosten in rekening gebracht.
400 max_price_exceeded Niemand verkoopt het model binnen jouw provider.max_price op dit moment (en geen enkel model in models kon het aan). Verhoog max_price, probeer later, of noem andere modellen. Er zijn geen kosten in rekening gebracht.
400 unsupported_routing_option Een provider optie die UberLLM niet kan toepassen (het bericht noemt deze). Laat het weg; zie Modellen & routering.
400 invalid_metadata metadata is geen object van maximaal 16 tekstwaarden. Corrigeer de tags; getallen moeten tussen aanhalingstekens staan.
400 unknown_capability Een best-price: / fastest: alias verwijst naar geen taak. Gebruik een van chat, image, image-edit, text-to-video, image-to-video, music, speech, transcription.
400 wrong_endpoint Het model (of alias) voert een taak uit die deze route niet ondersteunt: een afbeelding-, video-, muziek-, spraak- of transcriptiemodel verzonden naar /v1/chat/completions of /v1/messages, een chatmodel verzonden naar een media-route, of spraak en transcriptie omgewisseld. Het bericht noemt de juiste route. Geweigerd voordat iets wordt uitgevoerd; er worden geen kosten in rekening gebracht, en Activiteit vermeldt het als geweigerd. Verzend het naar de route die het bericht noemt (ook in endpoints op /v1/models/{id}).
503 no_timing_data fastest: werd gevraagd voordat voldoende verzoeken waren getimed om modellen te vergelijken. Gebruik best-price: of noem een model.
429 rate_limited Deze sleutel heeft de per-minuut verzoeklimiet overschreden, of de marketplace bleef rate-limiten na automatische herpogingen. Wacht af en probeer opnieuw met jitter; verhoog de rate limit van de sleutel.
503 no_available_provider Niemand kan dat model op dit moment bedienen, zelfs niet na automatische herpogingen (geen verkoper, elke verkoper faalt of is te traag om te starten, of jouw provider opties lieten niets over om naar te routeren), of een best-price: / fastest: alias vond geen model voor de taak dat nu beschikbaar is. Het bericht noemt het model of de taak. Dit omvat ook een verkoper wiens eigen provideraccount is mislukt: UberLLM probeert andere verkopers, en geeft de fout van die verkoper nooit door alsof jouw sleutel verkeerd was. Probeer het binnenkort opnieuw of kies een ander model. Er zijn geen kosten in rekening gebracht.
503 service_unavailable Een tijdelijk probleem aan de kant van UberLLM. Probeer het over een paar minuten opnieuw.

Afbeelding-, video- en muziekverzoeken voegen enkele eigen codes toe (image_required, invalid_image_url (een link naar een bronafbeelding die niet naar een afbeelding leidt), max_cost_too_low, idempotency_key_reused, artifact_expired); zie Maak een video of afbeelding.

Een geweigerd of mislukt chatverzoek verschijnt in Dashboard → Activiteit met het bericht dat je hebt ontvangen. Chat-, afbeelding-, video-, muziek-, spraak- en transcriptie-antwoorden bevatten een X-Request-Id header met dezelfde id als de bijbehorende Activiteit-rij, inclusief fouten.

Herpogingen vinden voor jou plaats voordat een fout wordt geretourneerd: tot 4 pogingen, alleen vóór de eerste contentbyte. Zie Modellen & routering.

Reserveringen en annuleringen

UberLLM reserveert een geschatte kostprijs voordat het proxy't en verrekent achteraf op basis van het daadwerkelijke gebruik. Als een verzoek fouten bevat, wordt geannuleerd, of als je de verbinding midden in de stream verbreekt, wordt de ongebruikte reservering vrijgegeven — je betaalt alleen voor daadwerkelijk geproduceerde content. Geannuleerde streams worden verrekend op basis van een tokenizer-schatting en gemarkeerd in Dashboard → Activiteit.

Rate limiting

Rate limits per sleutel worden afgedwongen met een vast venster. Voor inferentie-aanvragen fail closed rate-limit controles — als UberLLM uw limiet niet kan verifiëren, wordt de aanvraag geweigerd in plaats van ongemeten te worden verwerkt. Stel de aanvraaglimiet per minuut van een sleutel in (of verhoog deze) in Dashboard → API keys.

Elk geauthenticeerd /v1/* antwoord bevat het huidige venster van de sleutel:

Header Betekenis
X-RateLimit-Limit Aanvragen die deze sleutel per minuut mag versturen
X-RateLimit-Remaining Aanvragen over in de huidige minuut
X-RateLimit-Reset Wanneer het venster opnieuw begint (Unix seconds)
Retry-After Bij een 429 van deze limiet: seconden wachten voordat u het opnieuw probeert

Vertraag wanneer X-RateLimit-Remaining 0 nadert. De headers worden weggelaten wanneer het venster niet kan worden gelezen.

Seller API (/api/v1/seller/*)

Deze gebruiken standaard REST-codes:

HTTP code Betekenis
400 invalid_request Validatie mislukt (bijv. niet-https endpoint_url, ontbrekende prijzen voor absolute, multiplier buiten 0 < m ≤ 1.5). Het bericht benoemt het veld.
400 model_not_in_catalog model_id is geen bekend catalogusmodel.
401 unauthorized Ontbrekende of ongeldige dashboard JWT.
404 seller_not_found Geen verkoper voor uw organisatie — bel eerst POST /api/v1/seller/register.
404 offer_not_found Geen aanbod met die id onder uw verkoper.
409 invalid_status_transition Illegale statuswijziging — bijv. het hervatten van een delisted aanbod (verwijderd is definitief).

Opmerking: een mislukte validatiecontrole is geen foutreactie. Het aanbod wordt succesvol aangemaakt/bijgewerkt en geretourneerd met status: "paused" en een last_probe_error die uitlegt waarom — repareer het endpoint en PATCH het terug naar active om opnieuw te controleren. Zie Sellers.

Authenticatiefouten

HTTP Betekenis
401 Ontbrekende/ongeldige Authorization header. Inference keys zijn Bearer ull_...; dashboard endpoints gebruiken je account JWT.
403 De sleutel is geldig, maar mist de vereiste scope (bijv. een inference-only key die een dashboard endpoint aanroept).