Reddit API Stack

Integrazione API Reddit Stack per Python e JavaScript

Ottieni una chiave API

Configurazione e Autenticazione

La chiave appare una sola volta immediatamente dopo la registrazione, prima del pagamento. Conservala sul server e usa api.redditapistack.com per i recuperi. Se occorre sostituirla, accedi al pannello nella pagina Get API key e conferma la password per rigenerarla: la chiave precedente viene invalidata immediatamente. Non esiste una funzione di reimpostazione della password.

Per le richieste autenticate, invia Authorization con lo schema Bearer e la chiave del dominio. Configura l’intestazione nel client Python o nel fetch eseguito su Node.js. Le sessioni del pannello account usano invece un cookie Secure HttpOnly. La chiave originale non viene conservata nell’archiviazione del browser; questa informazione non è una garanzia assoluta di sicurezza.

Account, chiave e saldo sono specifici di questo dominio e non si condividono tra i siti della rete. Non è stabilito un periodo fisso di conservazione dei dati dell’account: ciò non garantisce continuità del servizio né permanenza dei record Reddit. Tieni separati i dati di autenticazione e i contenuti recuperati nella struttura della tua applicazione.

Struttura delle Risposte e Filtri

Le risposte sono record piatti, senza alberi di conversazione assemblati dal server. Se compaiono parent_id o link_id, puoi raggruppare localmente i record, senza garantire tutti gli antenati di una discussione. Quei campi non sono filtri di query esposti. /v1/search ricerca record, /v1/posts seleziona pubblicazioni e /v1/comments commenti; /v1/subreddits ammette prefix per esplorare community.

La ricerca accetta q, subreddit, author, kind, from, to, min_score, limit e page. kind usa post o comment. Le date sono YYYY-MM-DD in UTC, con to inclusivo. min_score applica una soglia numerica e non ordina. Solo /v1/item richiede id; /v1/posts e /v1/comments non lo richiedono. Codifica i parametri con gli strumenti URL del linguaggio.

L’ordine _doc è documentale interno, non cronologico, per rilevanza o per punteggio. Sono disponibili fino a 100 record per richiesta e 100 pagine per query. Nei totali, eq indica un valore esatto per la query, gte un limite inferiore e unknown l’assenza di un totale affidabile, eventualmente nullo. Nessuna relazione dimostra copertura completa o recupero esaustivo.

Gestione Errori e Costi

400 indica una richiesta non valida, 401 una chiave assente o non valida, 402 crediti insufficienti e 429 il raggiungimento del limite di frequenza. Controlla lo stato HTTP prima di trattare il corpo come un risultato corretto. fetch può ricevere una risposta HTTP di errore senza rifiutare la promessa; urllib.request può sollevare HTTPError.

Ogni recupero riuscito costa un credito, anche se vuoto. Le richieste non valide non addebitano saldo e gli errori del fornitore di ricerca restituiscono la riserva. Un’interruzione del client può verificarsi dopo un recupero già addebitato sul server; una ripetizione riuscita consuma un altro credito. Limita i tentativi e registra le cause senza esporre la chiave.

Il prezzo è di $1 per 1000 recuperi riusciti; la ricarica minima di $50 compra 50000 crediti, senza abbonamento o scadenza dei crediti acquistati. /v1/status è pubblico e non addebitato: offre una dichiarazione statica sull’ambito storico e indica che l’applicazione HTTP risponde. Non controlla il motore di ricerca o la disponibilità dei record.

Percorsi API

MetodoPercorsoParametri
GET/v1/searchq, subreddit, author, kind, from, to, min_score, limit, page
GET/v1/postsq, subreddit, author, kind, from, to, min_score, limit, page
GET/v1/commentsq, subreddit, author, kind, from, to, min_score, limit, page
GET/v1/itemid
GET/v1/subredditsprefix
GET/v1/status—

Parametri di ricerca

ParametroValore / tipo / intervallo
qtext
subredditkeyword
authorkeyword
kindpost | comment
fromISO date
toISO date
min_scoreinteger
limit1–100
page1–100
iditem ID
prefixsubreddit prefix
curl -H "Authorization: Bearer YOUR_API_KEY" 'https://api.redditapistack.com/v1/search?q=research&limit=10'

import json, urllib.request
request = urllib.request.Request('https://api.redditapistack.com/v1/search?q=research&limit=10', headers={"Authorization": "Bearer YOUR_API_KEY"})
with urllib.request.urlopen(request) as response:
    print(json.load(response))

fetch("https://api.redditapistack.com/v1/search?q=research&limit=10", {headers: {Authorization: "Bearer YOUR_API_KEY"}})
  .then(response => response.json()).then(console.log);