Come raccogliere dati da Reddit nel 2026: Endpoint JSON e il limite di 1.000
Da quando l'API di Reddit è diventata a pagamento, la miniera d'oro è diventata più difficile da raggiungere — ma l'endpoint pubblico .json funziona ancora. Ecco come paginarlo, superare il limite di 1.000 elementi e raccogliere su larga scala senza essere limitati nel ritmo.
Reddit è uno dei dataset di opinioni più ricchi sul web — persone reali che discutono di prodotti, strumenti, marchi e notizie in comunità ricercabili. Da quando Reddit ha spostato la sua API ufficiale a un prezzo a pagamento nel 2023 (ampiamente riportato a $0,24 per 1.000 chiamate, che ha chiuso app di terze parti come Apollo), raccogliere quei dati su larga scala è diventato più complicato. Ma c'è una via che il cambiamento di prezzo non ha chiuso: l'endpoint pubblico .json che supporta ogni pagina di Reddit. Questa guida copre come paginarlo, come superare il limite di 1.000 elementi e come raccogliere senza incappare nel limite di ritmo.
Aggiungi .json a qualsiasi URL di Reddit
Quasi ogni URL di Reddit restituisce JSON strutturato se aggiungi .json. Nessun OAuth, nessun client secret — solo un HTTP GET. Un elenco di subreddit, un post con il suo albero di commenti, la cronologia di un utente: tutto quanto. Inizia da qui:
import requests
headers = {"User-Agent": "research-script/1.0 by u/yourname"}
proxies = {"http": "http://USER:PASS@gate.quantumproxies.io:8000",
"https": "http://USER:PASS@gate.quantumproxies.io:8000"}
url = "https://www.reddit.com/r/webscraping/new.json?limit=100"
r = requests.get(url, headers=headers, proxies=proxies, timeout=20)
data = r.json()
for child in data["data"]["children"]:
post = child["data"]
print(post["title"], post["ups"], post["num_comments"])
Imposta un User-Agent descrittivo — Reddit è più severo con quelli generici. Il JSON ti fornisce titolo, punteggio (ups), rapporto di upvote, conteggio dei commenti, autore e timestamp direttamente, quindi non c'è nulla da estrarre dall'HTML.
Paginazione con il token after
Pagina di elenchi con un cursore, non numeri di pagina. Ogni risposta include un token after (il fullname dell'ultimo elemento, come t3_abc123); restituiscilo per ottenere il prossimo lotto. Continua fino a quando after non torna nullo:
def fetch_listing(subreddit, sort="new", pages=10):
after, out = None, []
for _ in range(pages):
url = f"https://www.reddit.com/r/{subreddit}/{sort}.json?limit=100"
if after:
url += f"&after={after}"
data = requests.get(url, headers=headers, proxies=proxies, timeout=20).json()
out += [c["data"] for c in data["data"]["children"]]
after = data["data"].get("after")
if not after:
break
return out

Il limite di 1.000 elementi (e come superarlo)
Ecco il limite che sorprende le persone: qualsiasi elenco di Reddit si ferma a circa 1.000 elementi. Pagina il feed new di un subreddit e dopo circa 1.000 post il token after si esaurisce, indipendentemente da quanti altri post esistano. Questo è un comportamento a livello di piattaforma, non un bug del raccoglitore. Non si applica non ai commenti all'interno di un singolo post — puoi estrarne migliaia. Per raccogliere più di 1.000 post da una comunità, moltiplica le tue visualizzazioni di essa:
- Combina ordinamenti. Raccogli
new, poitop,hotecontroversial. Ognuno è una finestra di 1.000 elementi diversa nello stesso subreddit, e la sovrapposizione è parziale — insieme fanno emergere molti più post unici. - Aggiungi filtri temporali. Su
top, itera?t=hour,day,week,month,year,allper rivelare diverse sezioni. - Usa la ricerca. Le ricerche per parola chiave fanno emergere post più vecchi che sono completamente scomparsi dalle liste principali.
- Esegui in modo incrementale. Interroga
newsu un programma e deduplica per id post, così catturi tutto prima che invecchi oltre la finestra di 1.000 elementi.
# combine sorts to break past the 1,000-item cap
seen, posts = set(), []
for sort in ("new", "top", "hot", "controversial"):
for post in fetch_listing("webscraping", sort=sort, pages=10):
if post["id"] not in seen:
seen.add(post["id"])
posts.append(post)
print(f"{len(posts)} unique posts across four sorts")
Limiti di ritmo e rimanere sbloccati
Un IP che interroga duramente gli endpoint JSON viene limitato rapidamente — Reddit restituisce 429 e alla fine blocca. Due cose mantengono un lavoro di raccolta sano: ritmare (un breve ritardo tra le richieste batte un'esplosione che attiva il limitatore) e distribuirlo tra gli IP in modo che nessun singolo indirizzo porti tutto il carico. Instradare attraverso proxy residenziali fa sembrare una ricerca come molti lettori ordinari piuttosto che un singolo client aggressivo, e un Scraper API gestisce quella rotazione e ritmo per te. Se stai colpendo costantemente 429, la nostra guida su limiti di ritmo e backoff copre i calcoli del ritmo.
Cosa farne: ascoltare su larga scala
Il motivo per raccogliere dati da Reddit è ascoltare. Traccia le menzioni del tuo marchio o di un concorrente attraverso le comunità, esegui analisi del sentiment sugli alberi dei commenti, osserva un subreddit di nicchia per problemi ricorrenti che vale la pena costruire attorno, o individua una tendenza prima che raggiunga il mainstream. Per qualsiasi cosa oltre il semplice abbinamento di parole chiave, alimentare il testo grezzo attraverso un passaggio di estrazione LLM trasforma thread disordinati in segnali strutturati — temi, lamentele, richieste di funzionalità. I dati pubblici di Reddit sono un gioco leale da raccogliere, ma sono post delle persone; se intendi elaborare nomi utente o dettagli personali, la nostra panoramica sulla legalità del web scraping nel 2026 merita una lettura (informativa, non consulenza legale).

Raccogli dati da Reddit su IP residenziali puliti
Domande frequenti
Puoi ancora raccogliere dati da Reddit dopo i cambiamenti dell'API?
Sì. L'API ufficiale è ora a pagamento, ma l'endpoint pubblico .json dietro ogni pagina di Reddit restituisce ancora dati strutturati tramite un semplice HTTP GET senza OAuth. È limitato nel ritmo, quindi ritma le richieste e distribuiscile tra gli IP, ma per la raccolta su scala di ricerca rimane la via più pratica. old.reddit.com e i feed RSS sono fonti aggiuntive leggere.
Perché Reddit si ferma a 1.000 post?
Reddit limita qualsiasi elenco singolo — un ordinamento di subreddit, la cronologia di un utente, una ricerca — a circa 1.000 elementi a livello di piattaforma; il cursore di paginazione semplicemente si ferma. Non è il tuo raccoglitore. Superalo combinando ordinamenti (new, top, hot, controversial), applicando filtri temporali, usando la ricerca ed eseguendo lavori incrementali che catturano i post prima che invecchino fuori dalla finestra.
Ho bisogno di proxy per raccogliere dati da Reddit?
Per una manciata di richieste, no. Per una raccolta sostenuta sì: un singolo IP che martella gli endpoint JSON viene limitato a 429 e poi bloccato. I proxy residenziali distribuiscono il carico in modo che il traffico sembri molti lettori ordinari, e il ritmo tra le richieste ti mantiene sotto il limitatore. Insieme permettono a una ricerca di funzionare continuamente senza attivare le difese.
È legale raccogliere dati da Reddit?
Raccogliere pagine pubblicamente visibili è ampiamente difendibile, ma i termini di Reddit limitano l'accesso automatizzato e i dati includono contenuti generati dagli utenti e nomi utente. Attieniti ai dati pubblici, rispetta i limiti di ritmo e fai attenzione a qualsiasi cosa che identifichi individui. Questa è informazione generale, non consulenza legale — controlla i termini attuali di Reddit e la tua giurisdizione prima di un progetto di grandi dimensioni.
L'API a pagamento non ha chiuso la porta — ha solo spostato la maniglia. L'endpoint .json, la paginazione del cursore e una strategia per il limite di 1.000 elementi ti forniscono i dati; gli IP residenziali e un ritmo educato mantengono la raccolta in funzione. Da lì è un problema di ascolto, e Reddit è uno dei migliori segnali su cui puoi puntare. Se vuoi anche la storia dei prezzi API sulle altre piattaforme, il nostro post su dati X/Twitter senza l'API mappa lo stesso terreno.