Jamdesk Documentation logo

API de recherche Docs

Recherchez votre documentation Jamdesk par programme. Alimentez chatbots, bots Slack, recherche personnalisée et agents IA avec des réponses à jour.

L'API de recherche Docs vous donne un accès programmatique à votre contenu de documentation via la recherche sémantique. Un seul endpoint (POST /_api/search) accepte une requête en langage naturel et retourne les passages les plus pertinents de votre documentation, classés par pertinence.

Cas d'usage

Chatbots de support

Connectez Intercom Fin, Zendesk AI ou un chatbot personnalisé à votre documentation pour qu'il réponde aux questions avec un contenu précis et cité.

Bots Slack

Créez une commande Slack /docs qui recherche dans votre documentation et publie les meilleurs résultats dans n'importe quel canal.

Recherche personnalisée

Ajoutez une interface de recherche à votre produit, dashboard ou outils internes qui affiche la documentation pertinente en contexte.

Agents IA

Donnez aux agents IA comme Claude ou GPT un outil qui récupère une documentation à jour, et non des données d'entraînement obsolètes.

Démarrage rapide

1
Générer une clé API

Accédez à Paramètres du projet → Clés API dans le dashboard Jamdesk. Cliquez sur Générer une clé, donnez-lui un nom et copiez la clé. Elle commence par jd_live_ suivi de 32 caractères hexadécimaux (40 caractères au total) et n'est affichée qu'une seule fois.

2
Effectuer votre première requête de recherche

Envoyez une requête POST à /_api/search sur le sous-domaine de votre documentation :

curl -X POST https://your-project.jamdesk.app/_api/search \
  -H "Authorization: Bearer jd_live_c83003a54ae0a83123454c3f7ec82f0a" \
  -H "Content-Type: application/json" \
  -d '{"query": "How do I set up a custom domain?", "limit": 5, "language": "en"}'
3
Utiliser les résultats

La réponse retourne un tableau de passages correspondants avec des scores de pertinence et des métadonnées de page :

{
  "query": "How do I set up a custom domain?",
  "language": "en",
  "results": [
    {
      "title": "Custom Domains",
      "section": "Step 4: Deploy",
      "slug": "deploy/custom-domains",
      "content": "To add a custom domain, go to Project Settings and enter your domain. You'll need to add a CNAME record pointing to your Jamdesk subdomain.",
      "url": "https://your-project.jamdesk.app/deploy/custom-domains",
      "score": 0.94
    }
  ],
  "total": 1,
  "durationMs": 85
}

Authentification

Toutes les requêtes nécessitent un token Bearer dans l'en-tête Authorization.

Authorization: Bearer jd_live_c83003a54ae0a83123454c3f7ec82f0a

Générer des clés API

1
Ouvrir les paramètres du projet

Dans le dashboard Jamdesk, naviguez jusqu'à votre projet et cliquez sur Paramètres.

2
Aller aux clés API

Sélectionnez l'onglet Clés API.

3
Créer une clé

Cliquez sur Générer une clé, entrez un nom descriptif (p. ex. « Chatbot Intercom ») et cliquez sur Créer.

4
Copier la clé

Copiez la clé immédiatement. Elle commence par jd_live_ suivi de 32 caractères hexadécimaux et n'est affichée qu'une seule fois. Stockez-la dans votre gestionnaire de secrets ou vos variables d'environnement.

Gestion des clés

Les clés API sont limitées à un seul projet. Une clé pour acme.jamdesk.app ne peut pas interroger la documentation d'un autre projet.

RègleDétail
Formatjd_live_<32 caractères hex> (40 caractères au total, n'expire jamais)
PortéeUne clé par projet (ne peut pas accéder à d'autres projets)
RotationRévoquez et régénérez à tout moment depuis les paramètres du projet
StockageStockez dans des variables d'environnement ou un gestionnaire de secrets ; ne commitez jamais dans le contrôle de source

Révoquer des clés

Pour révoquer une clé, accédez à Paramètres du projet → Clés API, trouvez la clé par son nom et cliquez sur Révoquer. Les clés révoquées cessent de fonctionner immédiatement. Générez une nouvelle clé pour la remplacer.

Limites de débit

Les requêtes sont soumises à une limite de débit par clé API.

PlanLimite
Pro60 requêtes / minute
EnterprisePersonnalisée ; contactez le support

Lorsque vous dépassez la limite, l'API retourne 429 Too Many Requests avec un en-tête Retry-After: 60 et {"error": "Rate limit exceeded"} dans le corps.

Si vous avez besoin de limites de débit plus élevées pour une intégration en production, contactez-nous pour discuter des options Enterprise.

Limites de requête

Chaque requête accepte un paramètre limit contrôlant le nombre de résultats à retourner. Le maximum est 20, la valeur par défaut est 5 et le minimum est 1. Il n'y a pas de pagination ; tous les résultats correspondants sont retournés dans une seule réponse. Si vous avez besoin de plus de contexte, essayez une requête plus spécifique plutôt que d'augmenter la limite.

Une requête sans correspondance retourne HTTP 200 avec un tableau de résultats vide :

{"query": "quantum entanglement", "results": [], "total": 0, "durationMs": 48}

Filtrage par langue

Si votre site de documentation prend en charge plusieurs langues, l'API filtre les résultats sur une seule langue par requête. Passez language dans le corps de la requête avec un code BCP-47 (p. ex. en, es, fr, pt-BR, zh-Hans).

curl -X POST https://your-project.jamdesk.app/_api/search \
  -H "Authorization: Bearer jd_live_c83003a54ae0a83123454c3f7ec82f0a" \
  -H "Content-Type: application/json" \
  -d '{"query": "¿Cómo configuro un dominio personalizado?", "language": "es"}'
RègleDétail
Par défauten (anglais). Omettez le champ, ou passez null, pour utiliser la valeur par défaut.
FormatBCP-47 (^[a-zA-Z]{2,3}([-_][a-zA-Z]{2,4})?$). Exemples : en, es, fr, pt-BR, zh-Hans.
ValidationLes valeurs malformées retournent 400 avec {"error": "Invalid language code"}.
Tags à 3 segmentsNon pris en charge actuellement. Les codes comme zh-Hant-HK et sr-Latn-RS retournent 400. Contactez le support si vous en avez besoin.
Projets multilinguesLe filtre est strict — seuls les fragments tagués avec la langue demandée sont retournés. Une requête pour de sur un projet qui n'a que l'anglais et le français retourne un ensemble de résultats vide, pas un 400.
Projets monolinguesLe filtre est ignoré ; vous obtenez toujours l'ensemble complet des résultats. Envoyer language est sans effet — ce n'est pas une erreur.
Retourné dans la réponseChaque réponse réussie inclut un champ language avec la valeur résolue par le serveur (valeur de la requête, ou en par défaut).

Un projet est multilingue lorsque son docs.json possède un tableau navigation.languages avec deux entrées ou plus. Pour vérifier si votre site est multilingue, ouvrez l'onglet Paramètres → Langues dans le dashboard, ou ouvrez docs.json directement.

La valeur par défaut en s'applique même sur les projets qui n'ont pas de version anglaise. Si votre projet multilingue est, par exemple, uniquement en français et espagnol, appeler l'endpoint sans champ language filtrera pour en et retournera un ensemble de résultats vide. Passez toujours un language explicite pour les sites non exclusivement anglophones.

Gestion des erreurs

Toutes les réponses d'erreur incluent un champ error lisible par machine sur lequel vous pouvez vous brancher de manière programmatique.

StatutValeur errorSignificationAction
400Missing or empty "query" fieldLe corps de la requête est absent ou ne contient pas de queryAjoutez une chaîne query non vide
400Invalid language codeLe champ language n'est pas une chaîne ou ne correspond pas au format BCP-47 (null est accepté ; les chaînes vides/espaces et les tags à 3 segments ne le sont pas)Utilisez un code valide à 1 ou 2 segments comme en, es, fr ou pt-BR
401invalid_key_formatL'en-tête Authorization est absent ou la clé ne correspond pas à jd_live_<32 hex>Vérifiez le format de l'en-tête ; il doit être Bearer jd_live_...
401invalid_keyLa clé n'est pas reconnue ou a été révoquéeGénérez une nouvelle clé dans le dashboard
403wrong_projectLa clé est valide mais a été générée pour un autre projetUtilisez une clé correspondant au slug du projet dans l'URL
429Rate limit exceededDépassement de 60 requêtes par minuteAttendez le nombre de secondes indiqué dans l'en-tête Retry-After
502Search temporarily unavailableLe backend de recherche vectorielle est indisponibleRéessayez après un court délai
503lookup_failed ou redis_unavailableLe backend de vérification des clés est inaccessibleRéessayez après un court délai

Les codes 401 et 403 sont des échecs permanents. Réessayer avec la même clé ne servira à rien. Les codes 429, 502 et 503 sont transitoires ; réessayez avec un backoff exponentiel.

CORS

Le CORS est activé sur tous les endpoints. Les clients basés sur le navigateur (applications monopage, extensions de navigateur, sites statiques) peuvent appeler /_api/search directement sans proxy backend. Toutes les origines sont autorisées.

SDKs

Il n'existe pas de SDKs officiels pour les différents langages à ce stade. Utilisez l'API REST directement via fetch, requests, curl ou tout client HTTP. La collection Postman ci-dessous fournit des exemples prêts à être dupliqués.

Versionnement

L'API est actuellement à la version v1.0.0. Les changements incompatibles (renommages de champs, endpoints supprimés, authentification modifiée) seront annoncés via le blog Jamdesk et une notice de dépréciation dans l'en-tête de réponse X-Deprecation au moins 90 jours avant leur suppression.

Spécification OpenAPI

La spécification OpenAPI 3.1 complète est disponible en YAML. Importez-la dans votre outil de génération de code, client API ou pipeline de test contractuel.

Télécharger le YAML OpenAPI

docs-search-api.yaml — OpenAPI 3.1, toujours synchronisé avec la dernière version publiée.

Parcourir sur GitHub

Lisez la source de la spécification, signalez des problèmes ou surveillez les modifications.

Collection Postman

Nous publions un espace de travail Postman officiel avec la spécification OpenAPI complète et une collection prête à être dupliquée pour tester les requêtes dans l'interface Postman sans écrire de code.

Espace de travail Jamdesk Docs API

Dupliquez la collection et exécutez des requêtes dans Postman. Inclut un dossier de démarrage et des exemples fonctionnels.

Toutes les API Jamdesk

Parcourez tous les espaces de travail API Jamdesk publics et restez informé à mesure que de nouvelles API sont publiées.

Après avoir dupliqué la collection, vous devez mettre à jour deux variables de collection avant qu'une requête fonctionne :

  • baseUrl : définissez-la sur votre propre site de documentation Jamdesk. Pour la plupart des clients, il s'agit de https://your-project.jamdesk.app (remplacez your-project par le slug de votre projet). Les clients avec un domaine personnalisé utilisent leur propre hôte. Les clients servant la documentation sous un sous-chemin incluent le chemin complet (p. ex. https://example.com/docs).
  • apiKey : remplacez le placeholder par une vraie clé générée dans Dashboard → Paramètres du projet → Clés API.

Étapes suivantes

Endpoint de recherche

Référence complète avec les schémas de requête/réponse et le playground interactif

Guides d'intégration

Guides étape par étape pour Intercom, Zendesk, les bots Slack et les chatbots personnalisés