Jamdesk Documentation logo

API ricerca documentazione

Cerca la documentazione Jamdesk in modo programmatico e alimenta chatbot, bot Slack, ricerche personalizzate e agenti AI con risposte aggiornate.

L'API di ricerca della documentazione consente di accedere programmaticamente ai contenuti della documentazione tramite la ricerca semantica. Un endpoint (POST /_api/search) accetta una query in linguaggio naturale e restituisce i passaggi più pertinenti della documentazione, ordinati per rilevanza.

Casi d'uso

Chatbot di supporto

Collega Intercom Fin, Zendesk AI o un chatbot personalizzato alla documentazione, così potrà rispondere alle domande con contenuti accurati e corredati di citazioni.

Bot Slack

Crea un comando Slack /docs che cerca nella documentazione e pubblica i risultati principali in qualsiasi canale.

Ricerca personalizzata

Aggiungi un'interfaccia di ricerca al prodotto, al dashboard o agli strumenti interni per visualizzare la documentazione pertinente nel relativo contesto.

Agenti AI

Fornisci ad agenti AI come Claude o GPT uno strumento che recuperi la documentazione aggiornata invece di basarsi sui dati di addestramento.

Avvio rapido

1
Generare una chiave API

Vai a Project Settings → API Keys nel dashboard Jamdesk. Fai clic su Generate Key, assegna un nome alla chiave e copiala. Inizia con jd_live_, seguito da 32 caratteri esadecimali (40 caratteri in totale), e viene mostrata una sola volta.

2
Inviare la prima richiesta di ricerca

Invia una richiesta POST a /_api/search nel sottodominio della documentazione:

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
Usare i risultati

La risposta restituisce un array di passaggi corrispondenti con punteggi di rilevanza e metadati della pagina:

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

Autenticazione

Tutte le richieste richiedono un token Bearer nell'header Authorization.

Authorization: Bearer jd_live_c83003a54ae0a83123454c3f7ec82f0a

Generare chiavi API

1
Aprire Project Settings

Nel dashboard Jamdesk, vai al progetto e fai clic su Settings.

2
Andare a API Keys

Seleziona la scheda API Keys.

3
Creare una chiave

Fai clic su Generate Key, inserisci un nome descrittivo (ad esempio "Intercom chatbot") e fai clic su Create.

4
Copiare la chiave

Copia immediatamente la chiave. Inizia con jd_live_, seguito da 32 caratteri esadecimali, e viene mostrata solo una volta. Conservala nel gestore dei segreti o nelle variabili d'ambiente.

Gestione delle chiavi

Le chiavi API sono associate a un singolo progetto. Una chiave per acme.jamdesk.app non può interrogare la documentazione di un altro progetto.

RegolaDettaglio
Formatojd_live_<32 hex chars> (40 caratteri in totale, non scade mai)
AmbitoUna chiave per progetto (non può accedere ad altri progetti)
RotazioneRevoca e rigenera la chiave in qualsiasi momento da Project Settings
ArchiviazioneConservala nelle variabili d'ambiente o in un gestore dei segreti; non eseguire mai il commit nel controllo del codice sorgente

Revocare le chiavi

Per revocare una chiave, vai a Project Settings → API Keys, trova la chiave tramite il nome e fai clic su Revoke. Le chiavi revocate smettono immediatamente di funzionare. Genera una nuova chiave per sostituirla.

Limiti di frequenza

Le richieste sono soggette a limiti per chiave API.

PianoLimite
Pro60 richieste / minuto
EnterprisePersonalizzato; contatta l'assistenza

Quando superi il limite, l'API restituisce 429 Too Many Requests con un header Retry-After: 60 e {"error": "Rate limit exceeded"} nel corpo della risposta.

Se hai bisogno di limiti di frequenza più elevati per un'integrazione in produzione, contattaci per discutere delle opzioni Enterprise.

Limiti delle query

Ogni richiesta accetta un parametro limit che controlla quanti risultati restituire. Il massimo è 20, il valore predefinito è 5 e il minimo è 1. Non è prevista la paginazione: tutti i risultati corrispondenti vengono restituiti in un'unica risposta. Se ti serve più contesto, prova a usare una query più specifica invece di aumentare il limite.

Una query senza corrispondenze restituisce HTTP 200 con un array di risultati vuoto:

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

Filtrare per lingua

Se il sito della documentazione supporta più lingue, l'API filtra i risultati per una singola lingua per richiesta. Invia language nel corpo della richiesta con un codice BCP-47 (ad esempio 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"}'
RegolaDettaglio
Predefinitoen (inglese). Ometti il campo o passa null per usare il valore predefinito.
FormatoBCP-47 (^[a-zA-Z]{2,3}([-_][a-zA-Z]{2,4})?$). Esempi: en, es, fr, pt-BR, zh-Hans.
ConvalidaI valori non validi restituiscono 400 con {"error": "Invalid language code"}.
Tag a 3 segmentiAttualmente non supportati. Codici come zh-Hant-HK e sr-Latn-RS restituiscono 400. Contatta l'assistenza se ti servono.
Progetti multilingueIl filtro è rigido: vengono restituiti solo i chunk associati alla lingua richiesta. Una richiesta per de verso un progetto che contiene solo inglese e francese restituisce un set di risultati vuoto, non 400.
Progetti in una sola linguaIl filtro viene ignorato; ottieni sempre l'intero set di risultati. Inviare language non causa problemi né errori.
Ripetuto nella rispostaOgni risposta corretta include un campo language con il valore risolto dal server (il valore della richiesta o il valore predefinito en).

Un progetto è multilingue quando il relativo docs.json contiene un array navigation.languages con almeno due voci. Per verificare se il sito è multilingue, apri la scheda Settings → Languages nel dashboard oppure apri direttamente docs.json.

Il valore predefinito en viene applicato anche ai progetti che non dispongono di una versione inglese. Se il progetto multilingue contiene, ad esempio, solo francese e spagnolo, chiamare l'endpoint senza il campo language applicherà il filtro en e restituirà un set di risultati vuoto. Nei siti che non sono solo in inglese, invia sempre un valore language esplicito.

Gestione degli errori

Tutte le risposte di errore includono un campo error leggibile dalle macchine, su cui puoi diramare la logica programmaticamente.

StatoValore errorSignificatoAzione
400Missing or empty "query" fieldIl corpo della richiesta non contiene il campo query oppure il campo è vuotoAggiungi una stringa query non vuota
400Invalid language codeIl campo language non è una stringa o non corrisponde al pattern BCP-47 (null è valido; le stringhe vuote o composte solo da spazi e i tag a 3 segmenti non lo sono)Usa un codice valido a 1 o 2 segmenti, come en, es, fr o pt-BR
401invalid_key_formatL'header Authorization manca oppure la chiave non corrisponde a jd_live_<32 hex>Controlla il formato dell'header: deve essere Bearer jd_live_...
401invalid_keyLa chiave non è riconosciuta o è stata revocataGenera una nuova chiave nel dashboard
403wrong_projectLa chiave è valida, ma è stata generata per un altro progettoUsa una chiave che corrisponda allo slug del progetto nell'URL
429Rate limit exceededSono state superate 60 richieste al minutoAttendi il numero di secondi indicato nell'header Retry-After
502Search temporarily unavailableIl backend della ricerca vettoriale non è disponibileRiprova dopo una breve attesa
503lookup_failed o redis_unavailableIl backend per la verifica della chiave non è raggiungibileRiprova dopo una breve attesa

Gli errori 401 e 403 sono permanenti. Riprovare con la stessa chiave non sarà utile. Gli errori 429, 502 e 503 sono transitori: riprova aumentando progressivamente l'intervallo tra i tentativi.

CORS

CORS è abilitato su tutti gli endpoint. I client basati su browser (app a pagina singola, estensioni del browser e siti statici) possono chiamare direttamente /_api/search senza un proxy backend. Sono consentite tutte le origini.

SDK

Al momento non esistono SDK ufficiali per linguaggi. Usa direttamente la REST API tramite fetch, requests, curl o qualsiasi client HTTP. La raccolta Postman riportata di seguito fornisce esempi pronti da duplicare.

Controllo delle versioni

L'API è attualmente alla versione v1.0.0. Le modifiche incompatibili (rinomina dei campi, rimozione di endpoint o modifiche all'autenticazione) saranno annunciate tramite il blog di Jamdesk e una notifica di deprecazione nell'header di risposta X-Deprecation almeno 90 giorni prima della rimozione.

Specifica OpenAPI

La specifica OpenAPI 3.1 completa è disponibile in formato YAML. Importala nello strumento di generazione del codice, nel client API o nella pipeline di test dei contratti.

Scaricare YAML OpenAPI

docs-search-api.yaml (OpenAPI 3.1, sempre sincronizzato con l'ultima versione pubblicata).

Esplorare su GitHub

Leggi il codice sorgente della specifica, segnala problemi o resta aggiornato sulle modifiche.

Raccolta Postman

Pubblichiamo un workspace Postman ufficiale con la specifica OpenAPI completa e una raccolta pronta da duplicare, così puoi testare le richieste nell'interfaccia di Postman senza scrivere codice.

Workspace API Docs Jamdesk

Duplica la raccolta ed esegui le richieste in Postman. Include una cartella Getting Started ed esempi funzionanti.

Tutte le API Jamdesk

Esplora tutti i workspace API pubblici di Jamdesk e resta aggiornato quando vengono pubblicate nuove API.

Dopo aver duplicato la raccolta, devi aggiornare due variabili della raccolta prima che qualsiasi richiesta funzioni:

  • baseUrl: impostalo sul tuo sito della documentazione Jamdesk. Per la maggior parte dei clienti è https://your-project.jamdesk.app (sostituisci your-project con lo slug del progetto). I clienti con un dominio personalizzato usano il proprio host. I clienti che pubblicano la documentazione in un sottopercorso devono includere il percorso completo (ad esempio https://example.com/docs).
  • apiKey: sostituisci il segnaposto con una chiave reale generata in Dashboard → Project Settings → API Keys.

Passaggi successivi

Endpoint di ricerca

Riferimento completo con schemi di richiesta/risposta e playground interattivo

Guide alle integrazioni

Guide dettagliate per Intercom, Zendesk, bot Slack e chatbot personalizzati