Reddit App API
ES

InicioDocumentación

Diseña la primera solicitud en torno a la pregunta del lector

Usa una clave en el servidor, filtros documentados y paginación acotada para incorporar conversaciones históricas sin exponer credenciales ni exagerar los resultados.

Primer paso

Envía la solicitud desde tu servidor y mantén tu clave API privada.

cURL · Tu servidor
: "${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'

Referencia de la API

↔ Desplaza la tabla horizontalmente

Rutas de la API

MétodoRutaParámetros
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—
Notas adicionales
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

Sitúa tu backend entre la app y el archivo

En la función ilustrativa de senderismo, el cliente móvil o web envía la expresión offline maps a tu propio backend. Este valida la solicitud, aplica los límites de la app y llama al archivo con una clave del servicio guardada. Devuelve solo los campos que necesita la pantalla de lectura. El ejemplo es un punto de partida de diseño, no una afirmación de que esta cuenta de dominio haya obtenido registros de hiking.

Usa GET https://api.redditapp.com/v1/search?q=offline%20maps&subreddit=hiking&limit=3&page=1. Envía desde tu backend X-API-Key: YOUR_SAVED_KEY o Authorization: Bearer YOUR_SAVED_KEY como cabecera. Mantén las credenciales fuera de las URL, los paquetes del cliente y los registros públicos. La cookie de sesión de la página de cuenta no sustituye la autenticación de las solicitudes de recuperación.

Elige filtros que el servicio admita

La búsqueda admite q, subreddit, author, kind, from, to, min_score, limit y page. q aplica una coincidencia AND sobre título y texto; no garantiza coincidencia de frase exacta ni búsqueda semántica. kind admite post o comment. Subreddit y author son filtros de coincidencia exacta del campo. min_score filtra registros; no los ordena.

Usa from y to como fechas YYYY-MM-DD en UTC. La fecha to incluye todo ese día UTC. Por ejemplo, from=2025-01-01 y to=2025-12-31 definen un intervalo sin solicitar orden cronológico. No envíes fechas y horas ISO, DSL de consulta arbitrario, un parámetro sort ni filtros parent_id/link_id. Los parámetros no admitidos se rechazan.

Elige el endpoint adecuado para la tarea

GET /v1/posts y GET /v1/comments restringen el tipo y admiten los filtros de búsqueda; no exigen un id. GET /v1/item?id=RECORD_ID busca un registro disponible por su id. GET /v1/subreddits?prefix=hik&limit=3 devuelve una agregación acotada de subreddits; sus recuentos no garantizan exactitud global.

GET /v1/status es público y no consume créditos. Devuelve una declaración estática del alcance del archivo histórico y muestra que responde el controlador HTTP. No consulta el backend de búsqueda, determina la cobertura del contenido ni mide el estado del archivo. Ninguno de estos endpoints permite publicar, votar, enviar mensajes, guardar marcadores de cuenta ni obtener un árbol completo de conversación.

Lee la paginación antes de añadir Mostrar más

Las respuestas de recuperación contienen data, pagination y credits. Los registros de data son objetos planos de la fuente ascendente; pueden faltar el título, autor, fecha o permalink que hayas elegido mostrar. El archivo usa el orden _doc, no el cronológico ni el de relevancia o puntuación. Ordenar localmente cambia el subconjunto recuperado, pero no lo convierte en el más reciente o mejor clasificado de todo el archivo.

Mantén los mismos filtros y limit al incrementar pagination.page. pagination.has_more usa un registro adicional de comprobación cuando está disponible. Si es false, no ofrezcas una solicitud siguiente automática. pagination.window_exhausted identifica el límite de la última página; alcanzarlo no demuestra que se haya recuperado todo el material coincidente del archivo.

Los límites son 1–100 registros y páginas 1–100. Lee pagination.total junto con pagination.relation: eq indica exactitud según la semántica de recuento de esa respuesta; gte, un límite inferior; y unknown, que no hay un total fiable, que puede ser null. Una página vacía posterior a la primera no demuestra un total. Una página 100 completa con limit 100 no deja espacio para comprobar un registro adicional y representa un límite inferior; has_more es false al alcanzar el límite de páginas. En la agregación de subreddits, el total es desconocido y pagination.truncated señala que se han omitido grupos de la agregación.

Trata la facturación y los fallos de forma explícita

Una recuperación correcta cuesta un crédito, incluso con un array data vacío. Valida la entrada antes de enviarla y no recuperes páginas solo para animar un indicador de carga. HTTP 400 indica entrada inválida; 401, clave del servicio ausente o inválida; 402, créditos insuficientes; y 429, límite de solicitudes. Esas solicitudes rechazadas no reservan un crédito de recuperación.

Un fallo de la fuente ascendente se comunica mediante HTTP 502 y libera el crédito reservado, o indica que la conciliación del reintegro está pendiente. Si la respuesta se pierde entre el servicio y tu app, el resultado es incierto: no supongas que fue gratuito. Conserva la consulta, respeta Retry-After y deja que la persona elija si desea reintentar cuando corresponda. Las credenciales y el saldo son responsabilidad del operador, no de quien está haciendo senderismo.

Convierte la respuesta en una pantalla de lectura clara

Escapa el texto de los registros antes de mostrarlo. Conserva la identidad y el enlace de origen cuando estén disponibles, marca las fechas ausentes como desconocidas y distingue la creación del registro del momento en que tu app lo recuperó. Los identificadores de registros padre y enlaces pueden servir para agrupar localmente cuando existan, pero no proporcionan los antecesores que faltan.

Estados de la interfaz desarrolla los mensajes propuestos de carga, vacío y fallo. Las Notas de campo del Recorrido de la app tratan las tarjetas, las referencias locales y el presupuesto de solicitudes. Clave y créditos reúne la configuración de cuenta y los precios. Revisa y prueba tu implementación; estos ejemplos no demuestran funcionalidad en directo ni ofrecen consejos actuales sobre senderos.