Aller au contenu

Tape un mot pour chercher dans les pages.

↑↓ Choisir↵ OuvrirÉchap Fermer
Ouvrir IAssistant

Référence

Lire et régler tes assistants depuis ton code, avec une clé d'API. Adresses, authentification, erreurs, pagination et limites.

L’API d’IAssistant donne accès à tes assistants, leurs conversations, les demandes reçues, les sources et les questions sans réponse. Elle sert les mêmes outils que le serveur MCP (voir Brancher un agent IA).

La description complète, au format OpenAPI 3.1, est publique :

https://app.hgdc.ch/iassistant/api/v1/openapi.json

Adresse et authentification

Toutes les routes commencent par https://app.hgdc.ch/iassistant/api/v1. Chaque requête porte une clé d’API :

curl https://app.hgdc.ch/iassistant/api/v1/assistants \
-H "Authorization: Bearer hgdc_iassistant_..."

Une clé se crée dans la console, page API et agents IA, par un admin de l’organisation. Elle ne s’affiche qu’une fois. Elle donne accès à tous les assistants de l’organisation, selon son accès :

AccèsPortéeCe qu’elle permet
Lectureiassistant:readLes routes GET
Lecture et écritureiassistant:writeToutes les routes

Une clé expire après 30 jours, 90 jours, 1 an, ou jamais, selon ton choix. Une clé révoquée ou expirée est refusée tout de suite.

Routes

{assistant_id} vient de GET /assistants. Les autres identifiants viennent des listes.

MéthodeRouteEffetAccès
GET/assistantsListe les assistantsLecture
GET/assistants/{assistant_id}Réglages complets d’un assistantLecture
PATCH/assistants/{assistant_id}Change le nom, le modèle, la consigne, l’apparence ou les limitesÉcriture
POST/assistants/{assistant_id}/enabledActive ou coupe la bulle ({ "enabled": false })Écriture
GET/assistants/{assistant_id}/conversationsConversations, de la plus récente à la plus ancienne (with_request=true : seulement celles avec une demande)Lecture
GET/assistants/{assistant_id}/conversations/{conversation_id}Une conversation et ses messagesLecture
GET/assistants/{assistant_id}/requestsDemandes laissées par les visiteursLecture
DELETE/requests/{request_id}Supprime une demandeÉcriture
GET/assistants/{assistant_id}/sourcesSources et état de leur lectureLecture
POST/assistants/{assistant_id}/faqsAjoute une question et sa réponse (201)Écriture
POST/assistants/{assistant_id}/textsAjoute un texte (201)Écriture
POST/assistants/{assistant_id}/pagesAjoute des pages du site, 50 au plus (202)Écriture
POST/assistants/{assistant_id}/sitemapsImporte un sitemap (202)Écriture
POST/assistants/{assistant_id}/recrawlRelit les pages ; avec source_id, une seule source (202)Écriture
DELETE/sources/{source_id}Supprime une sourceÉcriture
GET/assistants/{assistant_id}/unansweredQuestions sans réponseLecture
POST/unanswered/{question_id}/answerRépond : la réponse devient une question fréquente (201)Écriture
DELETE/unanswered/{question_id}Écarte une questionÉcriture
GET/usageMessages et crédits du moisLecture

Les corps sont en JSON, 256 Kio au plus. Les champs inconnus sont refusés. Les tailles maximales sont celles de la console : voir Limites et valeurs.

Origines du site, actions (destinataires des e-mails, webhook), création et suppression d’un assistant restent dans la console.

Exemple : ajouter une question fréquente

curl -X POST https://app.hgdc.ch/iassistant/api/v1/assistants/ASSISTANT_ID/faqs \
-H "Authorization: Bearer hgdc_iassistant_..." \
-H "Content-Type: application/json" \
-d '{"question":"Livrez-vous en Valais ?","answer":"Oui, sous 48 heures."}'
{ "source_id": "...", "status": "pending" }

Pagination

Les conversations, les demandes et les questions sans réponse arrivent par pages :

{ "data": [ ... ], "next_cursor": "...", "has_more": true }

limit choisit la taille (1 à 100, 20 par défaut). Pour la page suivante, passe cursor=<next_cursor>. Les autres listes renvoient { "data": [ ... ] } en entier.

Erreurs

Les erreurs suivent le format application/problem+json (RFC 9457) :

{ "type": "about:blank", "title": "Not Found", "status": 404, "detail": "Cet assistant n'existe pas." }
CodeQuand
401Clé absente, inconnue, révoquée ou expirée. L’en-tête WWW-Authenticate indique où lire les métadonnées.
403La clé n’a que la lecture (insufficient_scope). Il manque la portée iassistant:write, nommée dans l’en-tête WWW-Authenticate.
404Route ou ressource introuvable. Un identifiant d’une autre organisation répond aussi 404.
405Méthode non prévue sur cette route. L’en-tête Allow liste les bonnes.
413Corps trop gros.
422Corps ou paramètres refusés. errors détaille chaque champ.
429Trop de requêtes. Attends le délai de Retry-After.

Limites de débit

QuoiLimite
Lectures par clé600 par minute, rafale de 120
Écritures par clé120 par minute, rafale de 30
Appels d’outils MCP par clé120 par minute, rafale de 30
Clés refusées, par client20 par tranche de 10 minutes

Chaque réponse porte les en-têtes RateLimit-Policy et RateLimit.