Basisbegrippen

Fouten

Gemlead antwoordt met een HTTP-status en een JSON-fout waarvan type en code nooit veranderen, zodat je code erop kan reageren.

Het foutobject

Elke fout heeft dezelfde vorm. message is voor mensen en kan veranderen, type en code zijn voor je code. Elke response, fout of niet, heeft ook de header Request-Id.

Attributen

  • typestring
    De categorie van de fout, één per HTTP-status.
  • codestring
    Wat er precies misging. Zie de codes hieronder.
  • messagestring
    Een zin die de fout uitlegt.
  • paramstring of null
    De parameter die de fout veroorzaakt, als die er is.
  • request_idstring
    De ID van het request, gelijk aan de header Request-Id. Stuur hem mee als je ons om hulp vraagt.
  • doc_urlstring
    Deze pagina, bij de uitleg van de code.
Response400
{
  "error": {
    "type": "invalid_request_error",
    "code": "parameter_invalid",
    "message": "score_min must be an integer from 0 to 100.",
    "param": "score_min",
    "request_id": "req_7Hq2LmX9pT4vK1sN",
    "doc_url": "https://gemlead.ai/docs/errors#parameter_invalid"
  }
}

HTTP-statuscodes

StatusTypeBetekenis
400invalid_request_errorHet request heeft een ontbrekende, onbekende of ongeldige parameter. Een methode die het pad niet accepteert, krijgt ook dit type, met een 405.
401authentication_errorGeen sleutel, een verkeerde sleutel of een ingetrokken sleutel.
403permission_errorDe sleutel is geldig maar mag dit niet, zoals een read-sleutel die wil schrijven, of een account met het abonnement Free of Starter.
404not_found_errorDit object bestaat niet op het account van de sleutel, of de route bestaat niet.
409idempotency_errorEen Idempotency-Key is hergebruikt voor een ander request, of het eerste request met die sleutel loopt nog.
429rate_limit_errorTe veel requests. Wacht Retry-After seconden.
500api_errorEr ging bij ons iets mis, of 501 voor een endpoint dat nog niet beschikbaar is. Probeer het later opnieuw met dezelfde Idempotency-Key.

Foutcodes

CodeStatusBetekenis
api_key_missing401Het request heeft geen header Authorization of X-Api-Key.
api_key_invalid401Er komt geen sleutel overeen. Controleer of je hem helemaal hebt gekopieerd, inclusief gl_live_.
api_key_revoked401De sleutel is in de app ingetrokken. Maak een nieuwe aan.
token_expired401Een OAuth-toegangstoken van een AI-assistent is verlopen. De assistent vernieuwt het zelf.
insufficient_scope403De sleutel heeft de scope read en het request wijzigt gegevens. Gebruik een sleutel met write.
plan_required403De eigenaar van het account heeft het abonnement Free of Starter. De API werkt met Business en Enterprise, proefperiode inbegrepen, en dezelfde sleutel werkt weer zodra het account een van beide heeft.
forbidden403De gebruiker van de sleutel mag dit niet op dit X-account, zoals een teamlid dat het team wijzigt zonder admin te zijn, of dat een persona deelt.
parameter_missing400Er ontbreekt een verplichte parameter. param geeft aan welke.
parameter_invalid400Een parameter heeft een waarde die de API niet accepteert, zoals een score boven 100 of een datum die niet in ISO 8601 staat. param geeft aan welke.
parameter_unknown400De query of de body bevat een parameter die dit endpoint niet accepteert. param geeft aan welke.
body_invalid400De body is geen geldige JSON, of geen JSON-object.
cursor_invalid400De cursor komt niet van de API, of is gemaakt voor andere filters.
idempotency_key_invalid400De Idempotency-Key is langer dan 255 tekens.
method_not_allowed405Dit pad accepteert deze methode niet. De header Allow noemt de methodes die het wel accepteert.
url_invalid400Een webhook-URL is geen HTTPS, bevat inloggegevens, resolvet niet of wijst naar een privéadres.
webhook_endpoint_limit_reached400Het account heeft al 10 webhook-endpoints. Verwijder er eerst een.
resource_already_exists400Het bestaat al, zoals een bron die de persona al heeft met deze methode, of een zoekopdracht die er al in staat.
limit_reached400Een limiet is bereikt, zoals 100 persona's op een account, 500 zoekopdrachten op een persona of 50 kolommen op het bord.
seed_source_refused400Een startbron van een nieuwe persona wordt geweigerd, zoals een investeerder, een accelerator of een media-account. Die leveren geen kopers op.
x_profile_not_found400X heeft geen leesbaar profiel onder deze gebruikersnaam.
lead_without_x_id400De lead heeft nog geen X-account-ID, dus je kunt hem nog niet volgen.
lead_not_convertible400De lead hoort bij geen enkele persona, dus hij kan geen bron worden.
campaign_archived400De campagne is gearchiveerd. Dupliceer hem om hem opnieuw te laten draaien.
campaign_not_started400De campagne is een concept, dus er valt niets te pauzeren.
campaign_flow_empty400De flow van de campagne heeft nog geen stap. Voeg er een toe voordat je hem start.
column_protected400Deze kolom hoort bij het bord, zoals Inbox of een personakolom, en kan niet worden verwijderd.
shared_account_has_campaigns400Een X-account dat je uit een gedeelde persona haalt, heeft er nog campagnes op lopen. Verwijder die en probeer het opnieuw.
owner_cannot_leave400De eigenaar van een X-account kan het team niet verlaten. Verwijder in plaats daarvan de leden.
translation_off400De vertaling van het gesprek staat uit. Zet hem aan, of vertaal de berichten één voor één.
recipient_not_messageable400X heeft de DM geweigerd. De lead heeft zijn DM's dichtgezet of het account geblokkeerd.
media_kind_unsupported400Dit gesprek accepteert dit soort bestand niet. Een spraakbericht kan alleen in een X Chat-gesprek.
x_session_expired409De sessie van het X-account is verlopen. Koppel het opnieuw in de app en probeer het dan nog eens.
assistant_busy409Julien AI is nog bezig met een bericht in deze chat, of met 3 berichten van dit X-account. Wacht op dat antwoord en stuur je bericht daarna opnieuw.
conversation_unavailable409Het gesprek heeft nog geen X-gebruiker om naar te schrijven.
resource_missing404Geen object met deze ID op het account van de sleutel. Een ID van een ander account geeft hetzelfde antwoord.
route_not_found404Geen endpoint op dit pad.
idempotency_key_reused409Deze Idempotency-Key is de afgelopen 24 uur gebruikt voor een andere methode, een ander pad of een andere body.
idempotency_key_in_use409Het eerste request met deze Idempotency-Key loopt nog. Probeer het over een seconde opnieuw.
rate_limit_exceeded429Meer dan 120 requests in een minuut met deze sleutel. Wacht Retry-After seconden.
export_rate_limit_exceeded429Meer dan 10 exports in een uur op dit account.
dm_paused429X beperkt de DM's van het account tijdelijk. Retry-After geeft aan wanneer ze weer kunnen.
dm_rate_limited429Meer dan 10 DM's in een minuut vanaf dit account.
dm_daily_limit429Vandaag, in UTC, al 300 DM's vanaf dit account, of het eigen dagquotum dat X voor dit account hanteert.
assistant_rate_limited429Meer dan 6 berichten aan Julien AI in een minuut vanaf dit X-account, of 150 in een uur voor de eigenaar, de chat in de app meegerekend.
assistant_daily_limit429Vandaag, in UTC, al 100 berichten aan Julien AI vanaf dit X-account.
passcode_rate_limited429Meer dan 5 pogingen met de X Chat-code in een uur op dit account. X telt elke poging.
internal_error500Een onverwachte fout bij ons. Met de request_id vinden we hem terug.
request_timeout500Het request duurde te lang. Probeer het opnieuw, met dezelfde Idempotency-Key als het gegevens wijzigt.
not_implemented501Dit endpoint is nog niet beschikbaar.
upstream_unavailable502X of een dienst van Gemlead reageerde niet. Er is niets veranderd, probeer het over een minuut opnieuw.

Fouten afhandelen

  • 400, 401, 403 en 404 slagen nooit zolang je niets verandert. Pas het request aan voordat je het opnieuw verstuurt.
  • 409 met idempotency_key_in_use slaagt een seconde later wel. Probeer het opnieuw met dezelfde Idempotency-Key.
  • 429 slaagt wel na Retry-After seconden. Zie Rate limits.
  • 500 kun je na een korte pauze opnieuw proberen. Stuur dezelfde Idempotency-Key mee bij requests die gegevens wijzigen, zodat niets twee keer gebeurt.
  • Log de request_id van elke fout. Daarmee vinden we het request binnen enkele seconden terug.