Jamdesk Documentation logo

API de recherche de la documentation

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

L'API de recherche de la documentation vous donne un accès programmatique au contenu de votre documentation via une recherche sémantique. Un seul endpoint (POST /_api/search) prend une requête en langage naturel et renvoie 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 sur n'importe quel canal.

Recherche personnalisée

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

Agents IA

Donnez aux agents IA comme Claude ou GPT un outil qui récupère votre documentation actuelle au lieu de se fier à leurs données d'entraînement.

Démarrage rapide

1
Générer une clé API

Allez dans Project Settings → API Keys dans le dashboard Jamdesk. Cliquez sur Generate Key, 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 votre sous-domaine de 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 renvoie 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 jeton Bearer dans l'en-tête Authorization.

Authorization: Bearer jd_live_c83003a54ae0a83123454c3f7ec82f0a

Générer des clés API

1
Ouvrir Project Settings

Dans le dashboard Jamdesk, accédez à votre projet et cliquez sur Settings.

2
Aller dans API Keys

Sélectionnez l'onglet API Keys.

3
Créer une clé

Cliquez sur Generate Key, saisissez un nom descriptif (par ex. « Intercom chatbot ») et cliquez sur Create.

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 (aucun accès aux autres projets)
RotationRévoquez et régénérez à tout moment depuis Project Settings
StockageStockez dans des variables d'environnement ou un gestionnaire de secrets ; ne jamais commiter dans le contrôle de source

Révocation des clés

Pour révoquer une clé, allez dans Project Settings → API Keys, trouvez la clé par son nom et cliquez sur Revoke. 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 limitées en débit par clé API.

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

Lorsque vous dépassez la limite, l'API renvoie 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 à renvoyer. 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 renvoyé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 renvoie un code 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 (par 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 mal formées renvoient 400 avec {"error": "Invalid language code"}.
Tags à 3 segmentsNon pris en charge actuellement. Des codes comme zh-Hant-HK et sr-Latn-RS renvoient 400. Contactez le support si vous en avez besoin.
Projets multilinguesLe filtre est strict : seuls les segments marqués avec la langue demandée sont renvoyés. Une requête pour de sur un projet ne disposant que de l'anglais et du français renvoie un ensemble de résultats vide, pas une erreur 400.
Projets monolinguesLe filtre est ignoré ; vous obtenez toujours l'ensemble complet des résultats. Envoyer language est sans conséquence, pas une erreur.
Renvoyé 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 valeur par défaut en).

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

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 français et espagnol, appeler l'endpoint sans champ language filtrera pour en et renverra un ensemble de résultats vide. Passez toujours un language explicite depuis les sites qui ne sont pas uniquement en anglais.

Gestion des erreurs

Toutes les réponses d'erreur incluent un champ error lisible par machine sur lequel vous pouvez faire un branchement programmatique.

StatutValeur errorSignificationAction
400Missing or empty "query" fieldLe corps de la requête est manquant ou n'a 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/blanches et les tags à 3 segments ne le sont pas)Utilisez un code à 1 ou 2 segments valide comme en, es, fr ou pt-BR
401invalid_key_formatL'en-tête Authorization est manquant 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é qui correspond 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 injoignableRéessayez après un court délai

401 et 403 sont des échecs permanents. Réessayer avec la même clé n'aidera pas. 429, 502 et 503 sont transitoires ; réessayez avec un backoff exponentiel.

CORS

CORS est activé sur tous les endpoints. Les clients basés sur 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 actuellement aucun SDK officiel par langage. Utilisez l'API REST directement via fetch, requests, curl ou tout autre client HTTP. La collection Postman ci-dessous fournit des exemples prêts à forker.

Versioning

L'API est actuellement en v1.0.0. Les changements incompatibles (renommage de champs, endpoints supprimés, authentification modifiée) seront annoncés via le blog Jamdesk et un avis 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 au format YAML. Importez-la dans votre outil de génération de code, votre client API ou votre pipeline de tests de contrat.

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

Consultez le code source de la spécification, signalez des problèmes ou suivez les changements.

Collection Postman

Nous publions un espace de travail Postman officiel avec la spécification OpenAPI complète et une collection prête à forker afin que vous puissiez tester des requêtes dans l'interface Postman sans écrire de code.

Espace de travail Jamdesk Docs API

Forkez la collection et exécutez des requêtes dans Postman. Comprend un dossier « Getting Started » et des exemples fonctionnels.

Toutes les API Jamdesk

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

Après avoir forké la collection, vous devez mettre à jour deux variables de collection avant qu'une requête ne 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 domaine personnalisé utilisent leur propre hôte. Les clients servant leur documentation sous un sous-chemin incluent le chemin complet (par ex. https://example.com/docs).
  • apiKey : remplacez le placeholder par une vraie clé générée dans Dashboard → Project Settings → API Keys.

Étapes suivantes

Endpoint de recherche

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

Guides d'intégration

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