Autenticación y rutas de lectura
Las rutas de recuperación utilizan GET en https://api.redditdatasets.com. Puedes autenticarte con X-API-Key: <clave> o Authorization: Bearer <clave>. Ambas cabeceras están admitidas. Guarda el secreto en tu servidor. La cookie Secure HttpOnly mantiene la sesión del panel de cuenta y no sustituye la cabecera necesaria para consultar datos desde tu aplicación.
/v1/search busca publicaciones y comentarios; /v1/posts restringe la búsqueda a publicaciones y /v1/comments a comentarios. Estas rutas no reciben id como filtro. Para consultar un registro identificado utiliza /v1/item?id=...: requiere ese identificador y no devuelve automáticamente sus respuestas, sus descendientes o todos los mensajes de la misma conversación.
/v1/subreddits admite prefix y limit para descubrir comunidades. El prefijo no es un filtro de las consultas de contenido. Sus recuentos no deben tratarse como un censo global exacto. /v1/status es público y no consume créditos: describe estáticamente el servicio y confirma que responde la aplicación HTTP, sin comprobar el buscador ni la disponibilidad de registros.
Filtros y forma de la respuesta
En search, posts y comments los parámetros admitidos son q, subreddit, author, kind, from, to, min_score, limit y page. kind acepta post o comment, conservando esos valores literales. q realiza una búsqueda textual, no ejecuta un lenguaje arbitrario de consultas ni clasifica sentimientos. Combina filtros deliberadamente para no excluir mensajes que después necesites como contexto.
Las fechas from y to usan YYYY-MM-DD en UTC y se aplican a created_utc. El día to se incluye completo; no es un instante de exclusión a medianoche. Estos parámetros no expresan horas ni segundos. min_score es un umbral numérico de puntuación, no un selector de respuestas correctas ni un criterio de ordenación.
El protocolo de respuesta contiene registros planos que no se ensamblan en árboles de hilos de conversación nativos por parte del servidor. Cuando los campos parent_id y link_id están presentes en los registros devueltos, los clientes pueden agruparlos localmente para reconstruir conversaciones. Esta agrupación es opcional y nunca garantiza una jerarquía completa, ni ofrece una promesa de completitud sobre la ascendencia de los comentarios originales. Los campos pueden faltar o apuntar a registros no recibidos. La respuesta contiene data, pagination y credits. parent_id y link_id no son filtros de búsqueda. Guarda las etiquetas de tu equipo separadas del texto recibido.
Paginación, errores y cobro
En /v1/search, /v1/posts y /v1/comments, limit y page admiten valores de 1 a 100, con una página por solicitud. La entrega sigue _doc, un orden interno, no cronología, relevancia o puntuación ni un muestreo aleatorio garantizado. /v1/subreddits solo admite prefix y limit, sin page. Ordenar localmente o dividir fechas no prueba cobertura exhaustiva, unicidad o estabilidad entre consultas.
Interpreta pagination.total junto con relation: eq expresa un total exacto de la consulta, gte una cota inferior y unknown un total no fiable, que puede ser null. Un total exacto tampoco prueba haber descargado todos los registros ni que el archivo contenga toda la historia. Conserva los indicadores has_more y window_exhausted para documentar los límites de la respuesta.
HTTP 400 indica parámetros inválidos, 401 una clave ausente o inválida, 402 saldo insuficiente y 429 un límite de frecuencia. Una recuperación exitosa, incluso vacía, consume un crédito. Las solicitudes inválidas no descuentan saldo; los fallos del origen devuelven la reserva. Una desconexión del cliente puede ocultar un éxito cobrado y una repetición exitosa se cobra de nuevo. Guarda las respuestas antes de actualizar el progreso local.