Jamdesk Documentation logo

API di ricerca Docs

Cerca nella documentazione Jamdesk in modo programmatico. Alimenta chatbot, bot Slack, ricerche personalizzate e agenti AI con risposte sempre aggiornate.

L'API di ricerca Docs ti offre accesso programmatico ai contenuti della documentazione tramite ricerca semantica. Un solo endpoint (POST /_api/search) accetta una query in linguaggio naturale e restituisce i passaggi più pertinenti della tua documentazione, ordinati per rilevanza.

Casi d'uso

Chatbot di supporto

Collega Intercom Fin, Zendesk AI o un chatbot personalizzato alla tua documentazione. Il bot risponde alle domande con contenuti citati.

Bot Slack

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

Ricerca personalizzata

Aggiungi un'interfaccia di ricerca al tuo prodotto, alla dashboard o agli strumenti interni, per mostrare i documenti pertinenti nel contesto.

Agenti AI

Dai ad agenti AI come Claude o GPT uno strumento che recupera la documentazione aggiornata invece di affidarsi ai dati di addestramento.

Avvio rapido

1
Genera una chiave API

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

2
Esegui la prima richiesta di ricerca

Invia una richiesta POST a /_api/search sul sottodominio della tua 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
Usa 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'intestazione Authorization.

Authorization: Bearer jd_live_c83003a54ae0a83123454c3f7ec82f0a

L'API di ricerca funziona sui siti con autenticazione tramite password o JWT. Controlla la tua chiave API, non il login di un visitatore. Non è necessario aggiungere /_api/search a auth.jwt.public. I risultati possono includere pagine protette dal login. Chiama l'API dal tuo server e non inserire mai la chiave nel codice del browser. I risultati seguono le stesse regole della ricerca del sito: le pagine con restrizioni di gruppo non vengono mai restituite. Le pagine nascoste e quelle con search: false sono escluse, a meno che tu non le abbia rese ricercabili.

La stessa chiave apre anche il server MCP, gli URL delle pagine .md e llms.txt e llms-full.txt su questi siti.

Generare chiavi API

1
Apri Project Settings

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

2
Vai su API Keys

Seleziona la scheda API Keys.

3
Crea una chiave

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

4
Copia la chiave

Copia subito la chiave. Inizia con jd_live_ seguito da 32 caratteri esadecimali. Viene mostrata una sola volta. Conservala nel tuo gestore di segreti o nelle variabili d'ambiente.

Gestione delle chiavi

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

RegolaDettaglio
Formatojd_live_<32 caratteri esadecimali> (40 caratteri in totale, non scade mai)
AmbitoUna chiave per progetto (non può accedere ad altri progetti)
RotazioneRevoca e rigenera in qualsiasi momento da Project Settings
ArchiviazioneConserva nelle variabili d'ambiente o in un gestore di segreti; non committarla mai nel controllo di versione

Revocare le chiavi

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

Limiti di frequenza

Le richieste sono limitate per chiave API.

PianoLimite
Pro60 richieste / minuto
EnterprisePersonalizzato; contatta il supporto

Sui siti protetti da login, le richieste MCP, .md e llms.txt effettuate con la stessa chiave condividono un limite separato di 120 richieste al minuto. Non contano sul limite dell'API di ricerca, e le richieste all'API di ricerca non contano sul loro.

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

Contattaci per le opzioni Enterprise con limiti di frequenza più alti per un'integrazione in produzione.

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 c'è paginazione: tutti i risultati corrispondenti tornano in un'unica risposta. Per più contesto, prova una query più specifica invece di un limite più alto.

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

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

Filtrare per lingua

Su un sito multilingue, l'API filtra i risultati per una sola lingua per richiesta. Passa language nel corpo della richiesta con un codice BCP-47 (ad es. 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.
ValidazioneI valori non validi restituiscono 400 con {"error": "Invalid language code"}.
Tag a 3 segmentiNon sono attualmente supportati. Codici come zh-Hant-HK e sr-Latn-RS restituiscono 400. Contatta il supporto se ti servono.
Progetti multilingueIl filtro è rigoroso: vengono restituiti solo i blocchi etichettati con la lingua richiesta. Una richiesta per de su un progetto con solo inglese e francese restituisce un set di risultati vuoto, non un 400.
Progetti monolingueIl filtro viene ignorato. Ottieni sempre l'intero set di risultati. Inviare language non causa errori.
Riportato nella rispostaOgni risposta riuscita include un campo language con il valore risolto dal server (valore della richiesta, o il predefinito en).

Un progetto è multilingue quando il suo docs.json contiene un array navigation.languages con due o più voci. Controlla la scheda Settings → Languages nella dashboard, o docs.json, per verificare se il sito è multilingue.

Il valore predefinito en si applica anche ai progetti che non hanno una versione inglese. Un progetto in francese e spagnolo chiamato senza un campo language filtra per en e restituisce un set di risultati vuoto. Passa sempre un language esplicito per i siti senza inglese.

Gestione degli errori

Tutte le risposte di errore includono un campo error leggibile dalla macchina su cui puoi basare la logica del programma.

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

401 e 403 sono errori permanenti. Riprovare con la stessa chiave non servirà a nulla. 429, 502 e 503 sono transitori. Riprovale con backoff esponenziale.

CORS

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

SDK

Al momento non esistono SDK ufficiali per i linguaggi. Usa direttamente l'API REST tramite fetch, requests, curl o qualsiasi client HTTP. La collezione Postman qui sotto fornisce esempi pronti da usare.

Controllo delle versioni

L'API è attualmente alla versione v1.0.0. Le modifiche incompatibili (rinomina di campi, endpoint rimossi, autenticazione modificata) saranno annunciate sul blog Jamdesk e tramite un avviso di deprecazione nell'intestazione di risposta X-Deprecation, almeno 90 giorni prima della rimozione.

Specifica OpenAPI

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

Scarica OpenAPI YAML

docs-search-api.yaml (OpenAPI 3.1, sempre allineato all'ultima versione pubblicata).

Sfoglia su GitHub

Leggi il sorgente della specifica, apri issue o segui le modifiche.

Raccolta Postman

Pubblichiamo un workspace Postman ufficiale con la specifica OpenAPI completa e una collezione pronta da forkare. Testa le richieste nell'interfaccia Postman senza scrivere codice.

Workspace API Jamdesk Docs

Forka la collezione ed esegui le richieste in Postman. Include una cartella Getting Started ed esempi funzionanti.

Tutte le API Jamdesk

Sfoglia tutti i workspace API pubblici di Jamdesk e resta aggiornato sulle nuove API.

Aggiorna due variabili della collezione dopo averla forkata. Nessuna richiesta funziona finché non lo fai:

  • baseUrl: imposta il tuo sito di documentazione Jamdesk. Di solito è https://your-project.jamdesk.app (sostituisci your-project con lo slug del tuo progetto). Con un dominio personalizzato, usa il tuo host. Per la documentazione sotto un sotto-percorso, includi il percorso completo (ad es. 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 all'integrazione

Guide passo-passo per Intercom, Zendesk, bot Slack e chatbot personalizzati