RagWeb expose une API REST pour intégrer le moteur de recherche IA dans vos propres outils :
- Bots et assistants — Slack, Discord, Teams, chatbots internes
- Applications métier — CRM, helpdesk, portails clients, intranets
- Workflows automatisés — n8n, Make, Zapier, scripts Python
- Assistants IA — Claude Desktop, ChatGPT, OpenAI Codex, Cursor, Kiro (via MCP)
- Sites et apps — recherche embarquée sans le widget visuel (headless)
Clés API
Créer une clé

- Connectez-vous au tableau de bord RagWeb
- Allez dans l’onglet Clés API
- Entrez un nom descriptif (ex : « Mon site », « Bot Discord »)
- Cliquez Créer
- Copiez immédiatement la clé — elle ne sera plus affichée ensuite
Attention
Copiez votre clé immédiatement. Par sécurité, la clé complète n’est affichée qu’une seule fois à la création. Si vous la perdez, révoquez-la et créez-en une nouvelle.
Format de la clé
rw_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
Les clés commencent par rw_ et sont composées de caractères alphanumériques.
Limites par plan
| Plan | Clés API max |
|---|---|
| Free | 1 |
| Starter | 1 |
| Pro | 2 |
| Business | 5 |
Révoquer une clé
Dans l’onglet Clés API, cliquez Révoquer sur la clé concernée. L’action est irréversible — les requêtes utilisant cette clé seront immédiatement rejetées.
Endpoint Search
Requête
POST https://api.ragweb.fr/search
Headers :
Content-Type: application/json
X-API-Key: rw_VOTRE_CLE
Body :
{
"query": "Comment fonctionne votre service ?",
"messages": []
}
| Champ | Type | Requis | Description |
|---|---|---|---|
query |
string | Oui | La question de l’utilisateur |
messages |
array | Non | Historique de conversation pour le multi-turn |
Réponse
{
"answer": "Notre service fonctionne en trois étapes...",
"sources": [
{
"title": "Comment ça marche",
"url": "https://monsite.fr/comment-ca-marche",
"snippet": "Extrait pertinent de la page..."
}
]
}
Multi-turn (conversation)
Pour les questions de suivi, envoyez l’historique dans messages :
{
"query": "Et pour le plan Pro ?",
"messages": [
{ "role": "user", "content": "Quels sont vos tarifs ?" },
{ "role": "assistant", "content": "Nous proposons 4 plans..." }
]
}
Le maximum est de 6 messages d’historique.
Codes d’erreur
| Code HTTP | Signification |
|---|---|
| 200 | Succès |
| 400 | Requête invalide (query manquante, trop longue) |
| 401 | Clé API invalide ou manquante |
| 429 | Quota quotidien atteint |
| 500 | Erreur serveur temporaire |
CORS
L’endpoint /ragweb/search accepte les requêtes cross-origin (Access-Control-Allow-Origin: *). Le widget peut être utilisé depuis n’importe quel domaine.
Streaming SSE
Pour une expérience temps réel (réponse progressive), utilisez l’endpoint de streaming :
POST {stream-url}
L’URL de streaming est une Lambda Function URL. Elle est configurée automatiquement dans le widget via data-stream-url.
Headers :
Content-Type: application/json
X-API-Key: rw_VOTRE_CLE
Body : identique à l’endpoint search.
Réponse : flux Server-Sent Events (SSE) :
data: {"type":"token","content":"Notre "}
data: {"type":"token","content":"service "}
data: {"type":"token","content":"fonctionne..."}
data: {"type":"sources","sources":[...]}
data: {"type":"done"}
Intégration JavaScript
async function searchStream(query, apiKey, streamUrl) {
const response = await fetch(streamUrl, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': apiKey
},
body: JSON.stringify({ query, messages: [] })
});
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const chunk = decoder.decode(value);
const lines = chunk.split('\n').filter(l => l.startsWith('data: '));
for (const line of lines) {
const data = JSON.parse(line.slice(6));
if (data.type === 'token') {
// Afficher progressivement
console.log(data.content);
} else if (data.type === 'sources') {
// Sources de la réponse
console.log('Sources:', data.sources);
}
}
}
}
Endpoint MCP (Pro / Business)
RagWeb expose un endpoint Model Context Protocol compatible avec les assistants IA qui supportent MCP :
- Claude Desktop — assistant de bureau Anthropic
- ChatGPT (Apps/Connectors) — via Developer Mode → Connectors
- OpenAI Codex — agent de code CLI et IDE
- Cursor, Windsurf, Kiro — IDE avec support MCP
- Agents custom — tout client MCP (OpenAI Agents SDK, LangChain, etc.)
Cas d’usage
Vous partagez la configuration MCP avec vos propres clients, équipes ou utilisateurs. Ils l’ajoutent dans leur assistant IA et peuvent interroger votre base de connaissances sans passer par votre site web.
Exemples :
- Un éditeur SaaS partage le MCP de sa documentation technique à ses développeurs
- Un cabinet de conseil donne accès à ses livrables via Claude Desktop
- Un organisme de formation met sa base de connaissances à disposition des apprenants
- Une équipe interne connecte son intranet indexé à ses outils IA quotidiens
Configuration pour Claude Desktop
Depuis l’onglet Clés API du dashboard, copiez la configuration MCP :
{
"mcpServers": {
"ragweb": {
"url": "https://45xicyewg4zqjvpqi6dd7w2tza0kegxp.lambda-url.eu-west-1.on.aws/",
"headers": {
"X-API-Key": "rw_VOTRE_CLE_API"
}
}
}
}
Collez dans : Settings → MCP Servers → Add Server.
Configuration pour ChatGPT
- Activez le Developer Mode dans les paramètres ChatGPT
- Allez dans Plugins / Apps → Ajouter un connecteur
- URL du serveur MCP :
https://45xicyewg4zqjvpqi6dd7w2tza0kegxp.lambda-url.eu-west-1.on.aws/ - Authentification : Header
X-API-Keyavec votre clé RagWeb
Configuration pour OpenAI Codex
Ajoutez dans votre fichier de configuration MCP (partagé entre CLI et IDE) :
{
"mcpServers": {
"ragweb": {
"url": "https://45xicyewg4zqjvpqi6dd7w2tza0kegxp.lambda-url.eu-west-1.on.aws/",
"headers": {
"X-API-Key": "rw_VOTRE_CLE_API"
}
}
}
}
Outil exposé
Le serveur MCP expose un seul outil :
| Outil | Description |
|---|---|
search |
Recherche dans la base de connaissances du site. Paramètre : query (string) |
Quota
Les requêtes MCP consomment le même quota quotidien que le widget (10 à 3 000 selon le plan).
Quotas et rate limiting
| Plan | Requêtes / jour |
|---|---|
| Free | 10 |
| Starter | 200 |
| Pro | 1 000 |
| Business | 3 000 |
Le compteur est réinitialisé à minuit UTC. Une fois le quota atteint, les requêtes retournent un code 429.
Exemples d’intégration
cURL
curl -X POST https://api.ragweb.fr/search \
-H "Content-Type: application/json" \
-H "X-API-Key: rw_VOTRE_CLE" \
-d '{"query": "Comment contacter le support ?"}'
Python
import requests
response = requests.post(
"https://api.ragweb.fr/search",
headers={
"Content-Type": "application/json",
"X-API-Key": "rw_VOTRE_CLE"
},
json={"query": "Quels sont vos horaires ?"}
)
data = response.json()
print(data["answer"])
for source in data["sources"]:
print(f" - {source['title']}: {source['url']}")
Node.js
const response = await fetch('https://api.ragweb.fr/search', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': 'rw_VOTRE_CLE'
},
body: JSON.stringify({ query: 'Comment fonctionne la livraison ?' })
});
const { answer, sources } = await response.json();
console.log(answer);
sources.forEach(s => console.log(` ${s.title}: ${s.url}`));