Risposta rapida
Come faccio a convertire una pagina web in Markdown dalla riga di comando?
Esegui curl -sG https://webreaderapi.com/api/v1/read --data-urlencode "url=…" con la tua chiave in un header Authorization: Bearer, poi passa la risposta a jq -r .markdown. WebReaderAPI restituisce il contenuto principale della pagina come Markdown con i suoi metadati. Una pagina semplice usa 1 credito, da 0,07 USD/1K pagine a ottobre 2026. Senza KYC; paghi in criptovalute.
Come configuro il terminale?
Installa curl e jq, che la maggior parte dei sistemi Linux e macOS ha già, ed esporta la tua chiave una volta per sessione. Ogni ricetta qui sotto la legge da $WEBREADER_API_KEY, così la chiave non compare mai nella cronologia della shell come parte di un comando.
Usa -G con --data-urlencode per le richieste GET: curl codifica l'indirizzo della pagina per te, cosa che conta perché gli indirizzi contengono ?, & e = propri.
export WEBREADER_API_KEY="your-key"
curl -sG "https://webreaderapi.com/api/v1/read" \
-H "Authorization: Bearer $WEBREADER_API_KEY" \
--data-urlencode "url=https://example.com/guides/compost" \
| jq -r '.markdown' > compost.mdCome vedo cosa ha restituito una chiamata e quanto è costata?
Chiedi a jq i metadati invece del contenuto. final_url mostra dove hanno portato i redirect, rendered ti dice se è stato usato un browser, e credits_used è quanto è costata la chiamata. Se la risposta è un errore, lo stesso filtro stampa i campi null; stampa .error per leggere il codice e il messaggio.
curl -sG "https://webreaderapi.com/api/v1/read" \
-H "Authorization: Bearer $WEBREADER_API_KEY" \
--data-urlencode "url=https://example.com/guides/compost" \
| jq '.error // {title, final_url, rendered, credits_used, word_count}'Come elenco i link di una pagina?
Aggiungi include_links=true e trasforma la lista links in righe separate da tabulazione. Ottieni così una mappa rapida dei link in uscita di una pagina, che puoi ordinare, filtrare con grep o passare a un job in batch.
curl -sG "https://webreaderapi.com/api/v1/read" \
-H "Authorization: Bearer $WEBREADER_API_KEY" \
--data-urlencode "url=https://example.com/docs/" \
-d include_links=true \
| jq -r '.links[] | "\(.text)\t\(.url)"' | sort -uCome leggo una pagina JavaScript o un PDF?
Aggiungi -d render=true per una pagina che costruisce il suo contenuto con JavaScript; costa quindi 2 crediti. Un PDF non richiede nulla di speciale: invia il suo URL e il testo torna in markdown. I file PDF fino a 20 MB e 100 pagine vengono convertiti in Markdown, a 1 credito per ogni blocco di 10 pagine iniziato.
curl -sG "https://webreaderapi.com/api/v1/read" -H "Authorization: Bearer $WEBREADER_API_KEY" \
--data-urlencode "url=https://example.com/app/changelog" -d render=true \
| jq -r '.markdown' > changelog.md
curl -sG "https://webreaderapi.com/api/v1/read" -H "Authorization: Bearer $WEBREADER_API_KEY" \
--data-urlencode "url=https://example.com/files/annual-report.pdf" \
| jq -r '.markdown' > annual-report.mdCome eseguo un job in batch dalla shell?
Invia un body JSON con i tuoi URL a /batch, conserva il job_id, poi leggi il job. Un piccolo loop attende finché il job è done e stampa il titolo o il codice di errore di ogni pagina. Per i job lunghi, segui next_cursor come mostrato nella pagina batch e crawl.
JOB=$(curl -s "https://webreaderapi.com/api/v1/batch" \
-H "Authorization: Bearer $WEBREADER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"urls": ["https://example.com/a", "https://example.com/b", "https://example.com/c"]}' \
| jq -r '.job_id')
until [ "$(curl -s "https://webreaderapi.com/api/v1/jobs/$JOB" -H "Authorization: Bearer $WEBREADER_API_KEY" | jq -r '.status')" = "done" ]; do
sleep 5
done
curl -s "https://webreaderapi.com/api/v1/jobs/$JOB" -H "Authorization: Bearer $WEBREADER_API_KEY" \
| jq -r '.results[] | "\(.url)\t\(.title // .error.code)"'Come controllo i miei crediti?
Chiama /credits; è gratuito. Restituisce credits_remaining, credits_used_today e il tuo concurrency_limit. I crediti prepagati non scadono mai: le pagine non utilizzate restano sul tuo account finché non le usi.
curl -s "https://webreaderapi.com/api/v1/credits" -H "Authorization: Bearer $WEBREADER_API_KEY" | jq '.credits_remaining'Qual è la versione PowerShell su Windows?
Invoke-RestMethod analizza il JSON per te, quindi jq non serve. Costruisci la query con [uri]::EscapeDataString per codificare l'indirizzo della pagina, e passa la chiave in una tabella headers.
$headers = @{ Authorization = "Bearer $env:WEBREADER_API_KEY" }
$target = [uri]::EscapeDataString('https://example.com/guides/compost')
$page = Invoke-RestMethod -Uri "https://webreaderapi.com/api/v1/read?url=$target" -Headers $headers
$page.markdown | Out-File -Encoding utf8 compost.md
"$($page.title): $($page.word_count) words, $($page.credits_used) credit(s)"curl: domande frequenti
Perché il mio URL con & fallisce?
Perché la shell o curl lo dividono. Metti tra virgolette l'intero argomento url=… e passalo con --data-urlencode, come nelle ricette sopra; curl poi codifica &, ? e = dentro l'indirizzo della pagina.
Come vedo lo stato HTTP di un errore?
Aggiungi -w '\n%{http_code}\n' per stamparlo dopo il body, oppure -i per vedere tutti gli header. Il error.code del body è il valore stabile da testare negli script.
Una chiamata fallita viene fatturata?
No. 1 credito = 1 pagina letta senza browser; 2 crediti quando la pagina richiede un browser per eseguire JavaScript. Una richiesta che fallisce, o che il robots.txt di un sito rifiuta, non viene addebitata.