EN
Copied
API

Vue d'ensemble API

Conventions partagées par tous les endpoints de l'API Outsend — URL de base, authentification, types de contenu, versioning, erreurs.

Vue d'ensemble API

L'API Outsend expose la même surface que l'application web. Le tableau de bord et l'API partagent un backend, un schéma d'authentification et un ensemble d'objets uniques.

URL de base

https://outsend.xyz

Les endpoints sous /api/ renvoient du JSON ou diffusent des événements. L'URL de base est stable durant l'alpha.

Authentification

Les sessions utilisent un cookie nommé outsend_session. Pour l'obtenir, envoyer les identifiants :

POST /api/auth/login
Content-Type: application/json

{ "email": "nom@example.com", "password": "..." }

La réponse pose outsend_session en HttpOnly, Secure, SameSite=Lax. Les requêtes suivantes doivent l'inclure. Les sessions restent valides jusqu'à la déconnexion (POST /api/auth/logout) ou expiration. Les requêtes sans cookie valide reçoivent 401 sur les routes protégées.

Des jetons API scopés par workspace sont prévus à la feuille de route ; les sessions par cookie sont actuellement le seul mécanisme supporté.

Types de contenu

Surface Type de contenu Notes
Endpoints lecture/écriture application/json UTF-8, champs en snake_case
Flux d'événements text/event-stream Server-Sent Events
Téléchargements application/octet-stream et apparentés Endpoints terminant par /download
Exports tabulaires text/csv, application/json, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Sélectionné via ?format=csv|json|xlsx

Les endpoints acceptant format retournent du JSON par défaut.

Versioning

L'API est en alpha. Aucun préfixe /v1/, aucun header de version — la surface évolue sur place. Les ruptures sont annoncées à l'avance via le changelog et, le cas échéant, par bannières in-app. Les ajouts (nouveaux champs, endpoints, paramètres optionnels) sont livrés sans préavis. Un préfixe versionné sera introduit avant la disponibilité générale.

Limites de débit

Les endpoints sensibles (authentification, contact, création de jobs) sont protégés par des quotas par route. Le dépassement renvoie 429 avec un en-tête Retry-After. Voir /docs/fr/concepts/limits.

Erreurs

Les échecs renvoient un corps JSON et un code HTTP conventionnel :

{
  "detail": "Message lisible",
  "errors": [
    { "field": "email", "message": "Format invalide" }
  ]
}

Le tableau errors n'est présent que lorsque l'échec concerne des champs spécifiques.

Code Signification
400 Requête malformée, violation de règle métier
401 Pas de session, ou session expirée
403 Authentifié mais non autorisé ; également pour comptes désactivés
404 Ressource inexistante, ou non visible par l'appelant
422 Requête bien formée mais échec de validation
429 Limite de débit atteinte ; réessayer après la valeur du header
5xx Défaillance côté serveur ; les retries avec backoff sont sûrs

Considérer tout 5xx comme transitoire et appliquer un backoff exponentiel.

Groupes d'endpoints

Groupe Chemin Rôle
Authentification /docs/fr/api/auth Login, logout, inscription, reset mot de passe, vérification email
Jobs /docs/fr/api/jobs Créer, lister, inspecter, contrôler et exporter des jobs
Pipelines /docs/fr/api/pipelines Composer des workflows multi-étapes et les exécuter
Veille /docs/fr/api/veille Monitoring continu de requêtes et de sources
Feedback /docs/fr/api/feedback Soumettre du feedback produit et des rapports de bug
Registre /docs/fr/api/registry Découvrir les types de jobs disponibles et leurs paramètres

Protocole SSE

Les opérations longues exposent leur progression via Server-Sent Events. Noms d'événements, forme de payload et machine à états sont documentés sur /docs/fr/concepts/states-and-events.