# URL to Markdown API quick start: la tua prima pagina in due minuti

> URL to Markdown API: ottieni una chiave, leggi la prima pagina con curl, Python o Node.js e controlla i crediti. Da 0,07 USD/1K pagine, senza KYC.

- URL: https://webreaderapi.com/it/docs/
- Ultimo aggiornamento: 2026-10-22
- Editore: WebReaderAPI (https://webreaderapi.com)

Un endpoint, un parametro: invia un URL a `/read` e ricevi il contenuto principale della pagina come Markdown. Questa pagina ti porta da un saldo vuoto a una chiamata funzionante, poi ti indica tutto il resto.

**Risposta rapida — Come converto un URL in Markdown con un'API?**

Invia l'URL a `GET https://webreaderapi.com/api/v1/read` con la tua chiave API nell'header `Authorization`. **WebReaderAPI** recupera la pagina, mantiene il contenuto principale e lo restituisce come Markdown con titolo, autore, data e conteggio delle parole. Una pagina costa un credito (due se richiede un browser), da 0,07 USD/1K pagine a ottobre 2026. Senza KYC; paghi in criptovalute.

## L'API in una tabella

| Attributo | Valore |
| --- | --- |
| Base URL | `https://webreaderapi.com/api/v1` |
| Leggi una pagina | `GET` o `POST https://webreaderapi.com/api/v1/read` |
| Più URL o un sito | `POST https://webreaderapi.com/api/v1/batch` e `POST https://webreaderapi.com/api/v1/crawl`, risultati a partire da `GET https://webreaderapi.com/api/v1/jobs/{job_id}` |
| Crediti rimanenti | `GET https://webreaderapi.com/api/v1/credits` (gratuito) |
| Autenticazione | Invia la tua chiave API nell'header Authorization come Bearer token, oppure nel parametro query api_key |
| Fatturazione | 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 |
| Il nostro crawler | `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)`, token robots.txt `WebReaderAPI` |
| Pack più piccolo | 10.000 pagine per 3,75 USD; i crediti non scadono mai |

## Come ottengo una chiave API?

Tre passaggi, nessun modulo da compilare. Il più lento è la conferma sulla blockchain della tua ricarica.

1. **Ricarica in criptovalute** — Invia almeno 25 USD in BTC, USDT, USDC, ETH, SOL, LTC. Accesso con numero di account; email facoltativa.
2. **Acquista un pack di crediti** — 10.000 pagine per 3,75 USD bastano per provare ogni opzione sui tuoi URL.
3. **Copia la tua chiave** — La tua chiave API è pronta nella dashboard quando la tua ricarica in criptovalute è confermata e hai acquistato un pack. Salvala in una variabile d'ambiente chiamata WEBREADER_API_KEY.

## Come è fatta la prima richiesta?

È una semplice GET HTTPS con l'indirizzo della pagina nel parametro `url`. Codifica l'indirizzo, perché contiene i suoi caratteri `:` e `/`; curl lo fa per te con `--data-urlencode`. Le impostazioni predefinite vanno già bene per la maggior parte di articoli e pagine di documentazione: output in Markdown, solo il contenuto principale e un browser solo quando la pagina ne ha bisogno.

*curl: leggere una pagina*

```bash
curl -sG "https://webreaderapi.com/api/v1/read" \
  -H "Authorization: Bearer $WEBREADER_API_KEY" \
  --data-urlencode "url=https://example.com/blog/first-post"
```

*Python: leggere una pagina e salvarla*

```python
import os

import requests

resp = requests.get(
    "https://webreaderapi.com/api/v1/read",
    headers={"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]},
    params={"url": "https://example.com/blog/first-post"},
    timeout=70,
)
resp.raise_for_status()
page = resp.json()
print(page["title"], "-", page["word_count"], "words,", page["credits_used"], "credit(s)")
with open("first-post.md", "w", encoding="utf-8") as f:
    f.write(page["markdown"])

```

*Node.js 18+: leggere una pagina*

```javascript
const params = new URLSearchParams({ url: 'https://example.com/blog/first-post' });
const res = await fetch(`https://webreaderapi.com/api/v1/read?${params}`, {
  headers: { Authorization: `Bearer ${process.env.WEBREADER_API_KEY}` },
});
const page = await res.json();
if (!res.ok) throw new Error(`${page.error.code}: ${page.error.message}`);
console.log(page.title, page.word_count, 'words');
console.log(page.markdown.slice(0, 500));

```

## Cosa arriva indietro?

Un oggetto JSON con il Markdown nel campo `markdown` e i metadati della pagina accanto: `title`, `description`, `author`, `published_at`, `language`, `site_name` e `word_count`. Due campi ti aiutano a capire cosa è successo: `final_url` è l'indirizzo dopo i redirect e `rendered` ti dice se è servito un browser.

`credits_used` mostra quanto è costata la chiamata: 1 per una pagina semplice, 2 quando `rendered` è `true`, uno in più se hai scelto un `country`. La pagina del [formato della risposta](https://webreaderapi.com/it/docs/response/) elenca ogni campo con un esempio.

## Quali opzioni userò di più?

Cinque parametri coprono la maggior parte delle esigenze. Sono tutti facoltativi.

| Parametro | Usalo per |
|---|---|
| `format` | Ottenere `text` o `html` ripulito invece di `markdown` |
| `main_content` | Impostare `false` per convertire l'intera pagina, menu compresi |
| `render` | Forzare (`true`) o vietare (`false`) il browser; `auto` decide |
| `include_links` | Ottenere i link della pagina come elenco separato |
| `max_chars` | Tagliare le pagine lunghe per stare nel budget di contesto di un modello |

Il [riferimento di read](https://webreaderapi.com/it/docs/read/) descrive ogni parametro, inclusi `country`, `include_images` e `timeout`.

## Come controllo i crediti che mi restano?

Chiama `GET https://webreaderapi.com/api/v1/credits` con la stessa chiave. Restituisce `credits_remaining`, `credits_used_today` e il tuo `concurrency_limit`, e non costa nulla. Eseguilo all'inizio di un job lungo, così il job si ferma in modo pulito invece di fallire a metà per `402 insufficient_credits`.

I crediti prepagati non scadono mai: le pagine non utilizzate restano sul tuo account finché non le usi, quindi un pack acquistato per un progetto mantiene il suo valore per il successivo.

## Cosa succede se un sito non consente i robot?

Non leggiamo la pagina e non ti viene addebitato nulla. Il nostro crawler si presenta come `WebReaderAPI/1.0 (+https://webreaderapi.com/bot/)` e rispetta il robots.txt del sito. Una pagina non consentita restituisce `403 blocked_by_robots`; un sito che rifiuta la richiesta in un altro modo restituisce `502 target_refused` con il codice di stato del sito stesso.

Se un sito rifiuta la nostra richiesta, restituiamo la sua risposta: non risolviamo mai CAPTCHA, non accediamo agli account e non tentiamo di aggirare un blocco o un paywall. La [pagina degli errori](https://webreaderapi.com/it/docs/errors/) spiega quali errori vale la pena riprovare e quali sono definitivi.

## Dove vado adesso?

- [Leggi il riferimento degli endpoint](https://webreaderapi.com/it/docs/read/) — Ogni parametro di /read, con esempi
- [Batch e crawling](https://webreaderapi.com/it/docs/crawl/) — Fino a 100 URL per batch, o un intero sito
- [Formato della risposta](https://webreaderapi.com/it/docs/response/) — Ogni campo della risposta
- [Errori e robots.txt](https://webreaderapi.com/it/docs/errors/) — Codici, cause e regole di retry
- [Python](https://webreaderapi.com/it/docs/python/) — requests, httpx async, chunking per RAG
- [Node.js](https://webreaderapi.com/it/docs/node/) — fetch, un piccolo pool, polling del crawl
- [curl e jq](https://webreaderapi.com/it/docs/curl/) — Ricette per il terminale
- [server MCP](https://webreaderapi.com/it/docs/mcp/) — Un tool read_url per Claude e Cursor
- [LangChain e LlamaIndex](https://webreaderapi.com/it/docs/langchain/) — Loader e tool per il RAG
- [OpenAI function calling](https://webreaderapi.com/it/docs/openai/) — Uno schema e un loop per il tool read_url
- [n8n](https://webreaderapi.com/it/docs/n8n/) — Tool HTTP Request per un AI Agent
- [OpenClaw](https://webreaderapi.com/it/docs/openclaw/) — Aggiungi il server MCP accanto a web_fetch

## Quick start: domande frequenti

### C'è un SDK da installare?

No. WebReaderAPI è una semplice API HTTPS, quindi qualsiasi client HTTP funziona. La documentazione offre codice da copiare e incollare per Python, Node.js e curl, e definizioni di tool per MCP, LangChain, LlamaIndex e OpenAI function calling. Nulla è pubblicato come pacchetto.

### Posso inviare la chiave nell'URL invece che in un header?

Sì, come parametro di query `api_key`. L'header `Authorization: Bearer` è più sicuro, perché gli URL finiscono spesso nei log e nella cronologia del browser. Crea più chiavi API, ad esempio una per agente o per progetto, e revoca quelle che vuoi dalla tua dashboard.

### Una pagina fallita consuma un credito?

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. Viene addebitata solo una pagina che torna con del contenuto.

### Posso provarlo prima di acquistarlo?

Non c'è un piano gratuito. Non c'è un piano gratuito: il pack più piccolo è il modo per testare, pagato dalla ricarica minima, e l'importo aggiunto solo per raggiungere quel minimo può essere restituito su richiesta entro 30 giorni, in USDT o USDC, se non speso.

---

WebReaderAPI: WebReaderAPI è un'API web reader per agenti AI che converte qualsiasi pagina web pubblica in Markdown pulito, con pagamento in criptovalute e senza caricare documenti d'identità. I crediti prepagati da 0,07 USD/1K pagine non scadono mai e robots.txt viene rispettato. Senza KYC — niente documento, niente selfie, niente documenti. Paga in criptovalute.
