Reddit App API
IT

HomeDocumentazione

Costruisci la prima richiesta attorno alla domanda del lettore

Aggiungi alla tua app la lettura di discussioni storiche usando una chiave lato server, filtri documentati e paginazione limitata, senza esporre credenziali o sopravvalutare i risultati.

Prima richiesta

Invia la richiesta dal tuo server e mantieni privata la chiave API.

cURL · Il tuo server
: "${REDDITAPP_API_KEY:?Set REDDITAPP_API_KEY on your server}"
curl --get --fail-with-body 'https://api.redditapp.com/v1/search' \
  -H "Authorization: Bearer ${REDDITAPP_API_KEY}" \
  --data-urlencode 'q=offline maps' \
  --data-urlencode 'subreddit=hiking' \
  --data-urlencode 'limit=3'

Riferimento API

↔ Scorri la tabella in orizzontale

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, limit
GET/v1/status—
Altre note
API
GET/v1/search · /v1/posts · /v1/comments · /v1/item · /v1/subreddits · /v1/status
q · subreddit · author · kindkind: post | comment
from · toYYYY-MM-DD
min_scorescore ≥ min_score
limit · page1…100 · 1…100
/v1/itemid
/v1/subredditsprefix · limit
_doc≠ date · ≠ relevance · ≠ score
pagination.relationeq · gte · unknown
paginationhas_more · window_exhausted · truncated
1 credit$0.001
$11000 credits
$5050000 credits
400 · 401 · 402 · 429 · 502HTTP

Mettere il backend tra app e archivio

Nella funzione escursionistica illustrativa, il client web o mobile invia la frase offline maps al tuo backend. Questo valida la richiesta, applica i limiti dell’app e chiama l’archivio con una chiave del servizio salvata. Restituisci solo i campi necessari alla schermata di lettura. L’esempio è un punto di partenza progettuale, non la prova che questo tenant abbia ricevuto record sull’escursionismo.

Usa GET https://api.redditapp.com/v1/search?q=offline%20maps&subreddit=hiking&limit=3&page=1. Invia dal backend l’header X-API-Key: YOUR_SAVED_KEY oppure Authorization: Bearer YOUR_SAVED_KEY. Evita credenziali in URL, bundle del client e log pubblici. Il cookie di sessione della pagina account non sostituisce l’autenticazione per il recupero.

Scegliere filtri realmente accettati dal servizio

La ricerca accetta q, subreddit, author, kind, from, to, min_score, limit e page. q applica una corrispondenza AND nei campi title e text; non promette una ricerca per frase esatta o semantica. kind accetta post o comment. Subreddit e autore sono filtri sul valore esatto del campo. min_score filtra i record, non li ordina.

Usa from e to come date YYYY-MM-DD in UTC. La data to include l’intera giornata UTC. Per esempio, from=2025-01-01 e to=2025-12-31 definiscono un intervallo senza richiedere un ordinamento per data. Non inviare stringhe datetime ISO, query DSL arbitrarie, un parametro sort o filtri parent_id/link_id. I parametri non supportati vengono rifiutati.

Scegliere l’endpoint in base al compito

GET /v1/posts e GET /v1/comments limitano il tipo di record e accettano i filtri di ricerca; non richiedono un id. GET /v1/item?id=RECORD_ID cerca un record disponibile tramite il suo id. GET /v1/subreddits?prefix=hik&limit=3 restituisce un’aggregazione limitata di subreddit; i relativi conteggi non garantiscono esattezza globale.

GET /v1/status è pubblico e gratuito. Restituisce una dichiarazione statica sull’archivio storico e mostra che il gestore HTTP risponde. Non interroga il backend di ricerca, non dimostra la copertura dei contenuti e non misura lo stato dell’archivio. Nessuno di questi endpoint offre pubblicazione, voti, messaggi, segnalibri dell’account o un albero completo della conversazione.

Leggere i campi di paginazione prima di aggiungere Mostra altro

Le risposte di recupero contengono data, pagination e credits. I record in data sono oggetti sorgente piatti provenienti dal sistema a monte; titolo, autore, data o permalink scelti possono mancare. L’archivio usa l’ordine _doc, non quello cronologico, di rilevanza o punteggio. Un ordinamento locale può riorganizzare il sottoinsieme caricato, ma non renderlo il sottoinsieme globalmente più recente o meglio classificato.

Mantieni invariati filtri e limit quando incrementi pagination.page. pagination.has_more usa un record aggiuntivo di controllo quando disponibile. Se è false, non offrire una richiesta successiva automatica. pagination.window_exhausted identifica il caso limite della pagina finale; raggiungerlo non dimostra che tutto il materiale pertinente nell’archivio sia stato recuperato.

I limiti sono 1–100 record e pagine 1–100. Leggi pagination.total insieme a pagination.relation: eq è esatto secondo la semantica di conteggio della risposta, gte è un limite inferiore e unknown non fornisce un totale affidabile, che può essere null. Una pagina vuota oltre la prima non dimostra un totale. Una pagina 100 piena con limit 100 non lascia spazio a un record aggiuntivo di controllo e indica un limite inferiore; has_more è false al limite delle pagine. Nell’aggregazione dei subreddit il totale è sconosciuto e pagination.truncated segnala gruppi di aggregazione omessi.

Gestire esplicitamente addebiti e problemi

Un recupero riuscito costa un credito, anche con un array data vuoto. Valida l’input prima dell’invio e non scaricare pagine solo per animare un indicatore di caricamento. HTTP 400 indica input non valido; 401 una chiave del servizio assente o non valida; 402 crediti insufficienti; 429 un limite di frequenza. Queste richieste rifiutate non riservano un credito di recupero.

Una richiesta a monte fallita viene segnalata con HTTP 502 e libera il credito riservato, oppure segnala una riconciliazione del rimborso ancora in sospeso. Una risposta persa al confine dell’app lascia l’esito incerto; non presumere che la richiesta sia stata gratuita. Conserva lo stato della query, rispetta Retry-After e, quando opportuno, lascia scegliere se riprovare. Credenziali e saldo competono al gestore, non all’escursionista.

Tradurre la risposta in una schermata di lettura corretta

Esegui l’escape del testo dei record prima di mostrarlo. Conserva l’identità della fonte e il link, quando disponibile, segnala le date mancanti come sconosciute e distingui l’ora di creazione del record da quella del recupero nell’app. Gli identificatori padre e di collegamento possono aiutare a raggruppare localmente i record presenti, ma non forniscono gli antenati mancanti.

Stati dell’interfaccia sviluppa i messaggi proposti per caricamento, vuoto ed errori. Le Note pratiche nella Guida all’app trattano schede, riferimenti salvati localmente e budget delle richieste. Chiave e crediti contiene configurazione dell’account e prezzi. Rivedi e verifica la tua implementazione: questi esempi non dimostrano una funzione attiva né consigli aggiornati sui sentieri.