Indicizza un sito web
index_url visita un sito pagina per pagina, ne legge il contenuto come farebbe un lettore reale e costruisce un indice interrogabile per significato. Serve per aggiungere una ricerca interna intelligente a un sito che non ce l'ha, o per indicizzare la documentazione pubblicata da un'altra azienda.
Esegui online
Esegui questo sui nostri server con il tuo account. Gli strumenti gratuiti girano nel tuo browser; questo viene addebitato sul tuo saldo KIT al prezzo indicato sopra.
Come naviga il sito
Il motore apre le pagine con un browser vero, quindi legge anche i contenuti caricati via JavaScript, non solo l'HTML statico. Segui i link a partire da un indirizzo iniziale fino al limite di pagine impostato, ed estrae il testo utile scartando menu e pubblicità ripetute. Il risultato è un indice dove ogni voce sa da quale URL proviene, pronto per la ricerca semantica o per le risposte con fonti.
Quando ha senso rispetto a index_document
Se il contenuto vive già come pagine web — un blog aziendale, la documentazione tecnica, il catalogo online — index_url evita di scaricare e caricare ogni pagina a mano: basta l'indirizzo di partenza e il resto lo fa il motore da solo. Per PDF o file già caricati sul tuo computer resta più adatto index_document, pensato apposta per documenti isolati, non per siti interi.
Prezzo e limiti
Il costo è $0.040 a richiesta più $0.0025 a pagina visitata, in dollari; ogni indicizzazione accetta fino a 10.000 blocchi e 20.000 token complessivi in totale, senza costi nascosti. Un sito di piccole dimensioni, tipo il blog di uno studio professionale con poche decine di pagine, resta entro pochi dollari totali; per portali molto grandi conviene indicizzare per sezioni separate.
Uso pratico
Lo lanci dalla pagina del KIT indicando semplicemente l'indirizzo del sito, oppure via API se vuoi rifare l'indicizzazione a ogni pubblicazione di un nuovo articolo sul blog aziendale. L'indice ottenuto si interroga poi con gli strumenti di ricerca semantica o con rag.answer per ottenere risposte dirette e complete, invece di restituire solo un elenco di pagine da aprire una per una a mano.
Casi d'uso
Il blog tecnico di Tecnoedil Verona
Tecnoedil Verona S.n.c. indicizza il proprio blog di cantiere per aggiungere una ricerca interna che capisce “come si posa un cappotto termico” anche se l'articolo usa un titolo diverso.
Il catalogo online di Rossi & Figli
Rossi & Figli S.r.l. indicizza le pagine prodotto del proprio e-commerce per collegare la ricerca del sito a un motore semantico, invece del solito filtro per parola esatta nel nome articolo.
La documentazione di un fornitore software
Un'azienda di Padova indicizza il manuale online di un fornitore per rispondere subito alle domande del proprio team di supporto, senza sfogliare pagine e pagine di guida.
Domande frequenti
Serve accesso al codice del sito per indicizzarlo?
No: basta l'indirizzo pubblico. Il motore visita le pagine come un visitatore normale, senza bisogno di credenziali né di modifiche al sito.
Legge anche i contenuti caricati con JavaScript?
Sì, la navigazione avviene con un browser vero, quindi vede lo stesso contenuto che vedrebbe una persona, non solo l'HTML grezzo della pagina.
Quante pagine posso indicizzare in un'esecuzione?
Il limite pratico è di 10.000 blocchi e 20.000 token complessivi; per un sito grande conviene dividere l'indicizzazione per sezioni o per sitemap.
Posso aggiornare l'indice quando pubblico contenuti nuovi?
Sì, via API puoi rilanciare l'indicizzazione a ogni pubblicazione, così l'indice resta allineato al sito senza intervento manuale.
Il prezzo dipende dal numero di pagine o dalla loro lunghezza?
Principalmente dal numero di pagine visitate: $0.0025 a pagina più $0.040 a richiesta, in dollari. Una pagina lunga costa quanto una breve.
Funziona con siti in italiano con caratteri accentati?
Sì, senza problemi: il modello gestisce l'italiano con accenti e termini tecnici come qualsiasi altra lingua supportata.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/search/index-url \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/search/index-url", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/search/index-url",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/search/index-url", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/search/index-url", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"input": "…"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "search.index_url",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_chunks | 10000 |
max_tokens | 20000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
413 | input_too_large | Il file o il testo inviato supera il limite di questo strumento. |
422 | task_failed | L'attività non è andata a buon fine: non ti viene addebitato nulla. |