Skip to main content

Documentation Index

Fetch the complete documentation index at: https://doc.fluximmo.io/llms.txt

Use this file to discover all available pages before exploring further.

L’API Fluximmo renvoie deux familles de codes : les codes HTTP standards (statut transport) et les codes applicatifs Fluximmo (raison métier précise).

Format de réponse erreur

Toutes les erreurs métier suivent la même enveloppe JSON :
{
  "error": {
    "message": "Description lisible de l'erreur",
    "code": 10002
  }
}
Le champ error.code est un entier stable. Codez votre logique de retry/alerting sur ce code, pas sur le message (qui peut évoluer).

Codes applicatifs Fluximmo

CodeSensCause typiqueComment corriger
10001Auth invalid / missingHeader x-api-key absent, mal orthographié, ou clé révoquée / expiréeVérifier le header (casse exacte) et la validité de la clé sur my.fluximmo.io
10002Request invalid / malformedBody JSON invalide, champ obligatoire manquant, type incorrectValider le payload contre le DTO. Voir /llms-context pour copier le schéma à votre LLM
10003Proto syntax errorStructure du payload non conforme (ex : array au lieu d’objet, search mal wrappé)Vérifier le wrapper (search.filterProperty, search.filterAd…) et la profondeur des objets nested

Codes HTTP standards

HTTPSensAction conseillée
200OKTraiter la réponse
400Bad RequestErreur côté appelant — voir error.code pour le détail. Ne pas retry
401UnauthorizedClé manquante ou invalide (souvent associé à 10001). Ne pas retry
403ForbiddenEndpoint non activé sur votre clé. Voir capabilities sur demande
404Not FoundRessource (flxId, alerte) inexistante ou supprimée
429Too Many RequestsRate limit. Respecter Retry-After si présent, sinon backoff exponentiel + jitter
5xxServer ErrorErreur serveur. Retry avec backoff exponentiel (max 3-5 tentatives)

Exemple de gestion d’erreur

import requests
import time

def call_fluximmo(url, payload, api_key, max_retries=3):
    for attempt in range(max_retries):
        r = requests.post(url, json=payload, headers={"x-api-key": api_key})

        if r.status_code == 200:
            return r.json()

        # Erreurs métier — pas de retry
        if r.status_code in (400, 401, 403, 404):
            err = r.json().get("error", {})
            raise ValueError(f"Fluximmo error {err.get('code')}: {err.get('message')}")

        # Rate limit — respecter Retry-After
        if r.status_code == 429:
            wait = int(r.headers.get("Retry-After", 2 ** attempt))
            time.sleep(wait)
            continue

        # 5xx — backoff exponentiel
        if r.status_code >= 500:
            time.sleep(2 ** attempt)
            continue

    r.raise_for_status()
Voir aussi Bonnes pratiques pour les patterns de retry recommandés.