Jamdesk Documentation logo

Docs-Such-API

Durchsuche deine Jamdesk-Dokumentation programmgesteuert und versorge Chatbots, Slack-Bots und KI-Agenten mit aktuellen Antworten.

Die Docs-Such-API ermöglicht dir über die semantische Suche programmgesteuerten Zugriff auf deine Dokumentationsinhalte. Ein Endpoint (POST /_api/search) nimmt eine Anfrage in natürlicher Sprache entgegen und gibt die relevantesten Passagen deiner Dokumentation nach Relevanz sortiert zurück.

Anwendungsfälle

Support-Chatbots

Verbinde Intercom Fin, Zendesk AI oder einen benutzerdefinierten Chatbot mit deiner Dokumentation, damit Fragen mit präzisen, zitierten Inhalten beantwortet werden.

Slack-Bots

Erstelle einen /docs-Slack-Befehl, der deine Dokumentation durchsucht und die besten Ergebnisse in jedem Channel veröffentlicht.

Benutzerdefinierte Suche

Füge deinem Produkt, Dashboard oder deinen internen Tools eine Suchoberfläche hinzu, die relevante Dokumentation im passenden Kontext anzeigt.

KI-Agenten

Gib KI-Agenten wie Claude oder GPT ein Tool, das deine aktuelle Dokumentation abruft, statt sich auf ihre Trainingsdaten zu verlassen.

Schnellstart

1
API-Schlüssel generieren

Gehe im Jamdesk-Dashboard zu Project Settings → API Keys. Klicke auf Generate Key, gib dem Schlüssel einen Namen und kopiere ihn. Er beginnt mit jd_live_, gefolgt von 32 Hexadezimalzeichen (insgesamt 40 Zeichen), und wird nur einmal angezeigt.

2
Deine erste Suchanfrage senden

Sende eine POST-Anfrage an /_api/search auf deiner Docs-Subdomain:

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
Ergebnisse verwenden

Die Antwort gibt ein Array übereinstimmender Passagen mit Relevanzwerten und Seitenmetadaten zurück:

{
  "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
}

Authentifizierung

Alle Anfragen benötigen ein Bearer-Token im Authorization-Header.

Authorization: Bearer jd_live_c83003a54ae0a83123454c3f7ec82f0a

API-Schlüssel generieren

1
Project Settings öffnen

Navigiere im Jamdesk-Dashboard zu deinem Projekt und klicke auf Settings.

2
Zu API Keys wechseln

Wähle den Tab API Keys aus.

3
Schlüssel erstellen

Klicke auf Generate Key, gib einen aussagekräftigen Namen ein (z. B. "Intercom chatbot") und klicke auf Create.

4
Schlüssel kopieren

Kopiere den Schlüssel sofort. Er beginnt mit jd_live_, gefolgt von 32 Hexadezimalzeichen, und wird nur einmal angezeigt. Speichere ihn in deinem Secrets-Manager oder in Umgebungsvariablen.

Schlüsselverwaltung

API-Schlüssel sind auf ein einzelnes Projekt beschränkt. Ein Schlüssel für acme.jamdesk.app kann nicht die Dokumentation eines anderen Projekts abfragen.

RegelDetails
Formatjd_live_<32 hex chars> (insgesamt 40 Zeichen, läuft nie ab)
GültigkeitsbereichEin Schlüssel pro Projekt (kein Zugriff auf andere Projekte)
RotationJederzeit über Project Settings widerrufen und neu generieren
SpeicherungIn Umgebungsvariablen oder einem Secrets-Manager speichern, niemals in die Quellcodeverwaltung übernehmen

Schlüssel widerrufen

Um einen Schlüssel zu widerrufen, gehe zu Project Settings → API Keys, suche den Schlüssel anhand seines Namens und klicke auf Revoke. Widerrufene Schlüssel funktionieren sofort nicht mehr. Generiere einen neuen Schlüssel als Ersatz.

Rate-Limits

Anfragen werden pro API-Schlüssel mit einem Rate-Limit versehen.

PlanLimit
Pro60 Anfragen / Minute
EnterpriseBenutzerdefiniert; kontaktiere den Support

Wenn du das Limit überschreitest, gibt die API 429 Too Many Requests mit einem Retry-After: 60-Header und {"error": "Rate limit exceeded"} im Body zurück.

Wenn du für eine produktive Integration höhere Rate-Limits benötigst, kontaktiere uns, um Enterprise-Optionen zu besprechen.

Abfragelimits

Jede Anfrage akzeptiert einen limit-Parameter, der steuert, wie viele Ergebnisse zurückgegeben werden. Das Maximum ist 20, der Standardwert ist 5 und das Minimum ist 1. Es gibt keine Paginierung; alle übereinstimmenden Ergebnisse werden in einer einzigen Antwort zurückgegeben. Wenn du mehr Kontext benötigst, versuche eine spezifischere Anfrage, statt das Limit zu erhöhen.

Eine Anfrage ohne Treffer gibt HTTP 200 mit einem leeren Ergebnis-Array zurück:

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

Nach Sprache filtern

Wenn deine Docs-Site mehrere Sprachen unterstützt, filtert die API die Ergebnisse pro Anfrage auf eine einzelne Sprache. Übergebe language im Anfragetext mit einem BCP-47-Code (z. B. 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"}'
RegelDetails
Standarden (Englisch). Lass das Feld weg oder übergebe null, um den Standardwert zu verwenden.
FormatBCP-47 (^[a-zA-Z]{2,3}([-_][a-zA-Z]{2,4})?$). Beispiele: en, es, fr, pt-BR, zh-Hans.
ValidierungFehlerhafte Werte geben 400 mit {"error": "Invalid language code"} zurück.
Tags mit 3 SegmentenDerzeit nicht unterstützt. Codes wie zh-Hant-HK und sr-Latn-RS geben 400 zurück. Kontaktiere den Support, wenn du sie benötigst.
Mehrsprachige ProjekteDer Filter ist strikt: Nur Chunks mit der angeforderten Sprache werden zurückgegeben. Eine Anfrage für de an ein Projekt, das nur Englisch und Französisch enthält, gibt eine leere Ergebnismenge und nicht 400 zurück.
Einsprachige ProjekteDer Filter wird ignoriert; du erhältst immer die vollständige Ergebnismenge. Das Senden von language ist unproblematisch und kein Fehler.
In der Antwort enthaltenJede erfolgreiche Antwort enthält ein language-Feld mit dem vom Server aufgelösten Wert (Anfragewert oder Standardwert en).

Ein Projekt ist mehrsprachig, wenn docs.json ein navigation.languages-Array mit mindestens zwei Einträgen enthält. Um zu prüfen, ob deine Site mehrsprachig ist, öffne den Tab Settings → Languages im Dashboard oder öffne docs.json direkt.

Der Standardwert en gilt auch für Projekte, die keine englische Version haben. Wenn dein mehrsprachiges Projekt beispielsweise nur Französisch und Spanisch enthält, filtert ein Aufruf des Endpoints ohne language-Feld nach en und gibt eine leere Ergebnismenge zurück. Übergib von nicht ausschließlich englischsprachigen Sites immer einen expliziten language-Wert.

Fehlerbehandlung

Alle Fehlerantworten enthalten ein maschinenlesbares error-Feld, anhand dessen du programmgesteuert verzweigen kannst.

Statuserror-WertBedeutungAktion
400Missing or empty "query" fieldIm Anfragetext fehlt query oder das Feld ist leerFüge einen nicht leeren query-String hinzu
400Invalid language codeDas Feld language ist kein String oder entspricht nicht dem BCP-47-Muster (null ist zulässig; leere Strings, Strings aus Leerzeichen und Tags mit 3 Segmenten sind nicht zulässig)Verwende einen gültigen Code mit 1 oder 2 Segmenten wie en, es, fr oder pt-BR
401invalid_key_formatDer Authorization-Header fehlt oder der Schlüssel entspricht nicht jd_live_<32 hex>Prüfe das Header-Format; es muss Bearer jd_live_... lauten
401invalid_keyDer Schlüssel wird nicht erkannt oder wurde widerrufenGeneriere im Dashboard einen neuen Schlüssel
403wrong_projectDer Schlüssel ist gültig, wurde aber für ein anderes Projekt generiertVerwende einen Schlüssel, der zum Projektslug in der URL passt
429Rate limit exceeded60 Anfragen pro Minute wurden überschrittenWarte die im Retry-After-Header angegebene Anzahl von Sekunden
502Search temporarily unavailableDas Backend der Vektorsuche ist nicht verfügbarWiederhole die Anfrage nach einer kurzen Wartezeit
503lookup_failed oder redis_unavailableDas Backend zur Schlüsselüberprüfung ist nicht erreichbarWiederhole die Anfrage nach einer kurzen Wartezeit

401 und 403 sind dauerhafte Fehler. Ein erneuter Versuch mit demselben Schlüssel hilft nicht. 429, 502 und 503 sind vorübergehende Fehler; wiederhole die Anfrage mit exponentiellem Backoff.

CORS

CORS ist für alle Endpoints aktiviert. Browserbasierte Clients (Single-Page-Apps, Browsererweiterungen, statische Sites) können /_api/search direkt ohne Backend-Proxy aufrufen. Alle Origins sind zulässig.

SDKs

Derzeit gibt es keine offiziellen SDKs für Programmiersprachen. Verwende die REST-API direkt über fetch, requests, curl oder einen beliebigen HTTP-Client. Die Postman-Sammlung unten bietet sofort verwendbare Beispiele, die du forken kannst.

Versionierung

Die API befindet sich derzeit bei v1.0.0. Breaking Changes (Umbenennungen von Feldern, entfernte Endpoints, geänderte Authentifizierung) werden mindestens 90 Tage vor ihrer Entfernung über den Jamdesk-Blog und einen Hinweis zur Einstellung im X-Deprecation-Antwortheader angekündigt.

OpenAPI-Spezifikation

Die vollständige OpenAPI-3.1-Spezifikation ist als YAML verfügbar. Importiere sie in dein Codegen-Tool, deinen API-Client oder deine Pipeline für Vertragstests.

OpenAPI-YAML herunterladen

docs-search-api.yaml (OpenAPI 3.1, immer synchron mit der neuesten veröffentlichten Version).

Auf GitHub durchsuchen

Lies die Quelle der Spezifikation, melde Probleme oder beobachte Änderungen.

Postman-Sammlung

Wir veröffentlichen einen offiziellen Postman-Arbeitsbereich mit der vollständigen OpenAPI-Spezifikation und einer Sammlung, die du forken kannst, um Anfragen in der Postman-Oberfläche ohne eigenen Code zu testen.

Jamdesk Docs API-Arbeitsbereich

Forke die Sammlung und führe Anfragen in Postman aus. Enthält einen Getting Started-Ordner und funktionierende Beispiele.

Alle Jamdesk-APIs

Durchsuche jeden öffentlichen Jamdesk-API-Arbeitsbereich und bleibe auf dem neuesten Stand, wenn neue APIs veröffentlicht werden.

Nach dem Forken der Sammlung musst du vor der ersten funktionierenden Anfrage zwei Sammlungsvariablen aktualisieren:

  • baseUrl: Setze den Wert auf deine eigene Jamdesk-Docs-Site. Für die meisten Kunden ist dies https://your-project.jamdesk.app (ersetze your-project durch deinen Projektslug). Kunden mit eigener Domain verwenden ihren eigenen Host. Kunden, die ihre Dokumentation unter einem Unterpfad bereitstellen, müssen den vollständigen Pfad angeben (z. B. https://example.com/docs).
  • apiKey: Ersetze den Platzhalter durch einen echten Schlüssel, der unter Dashboard → Project Settings → API Keys generiert wurde.

Nächste Schritte

Search Endpoint

Vollständige Referenz mit Anfrage-/Antwortschemas und interaktivem Playground

Integrationsleitfäden

Schritt-für-Schritt-Anleitungen für Intercom, Zendesk, Slack-Bots und benutzerdefinierte Chatbots