Autenticación y rutas de lectura
Las rutas de recuperación utilizan GET en https://api.redditdatastream.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.
Las respuestas de la API contienen registros planos que reflejan la estructura básica de los objetos de Reddit sin ensamblar árboles de hilos completos en el servidor. Cuando los campos parent_id y link_id están presentes, los clientes pueden agruparlos localmente para reconstruir conversaciones, aunque esto es opcional y no garantiza una jerarquía completa de ancestros en todos los casos de uso. Los campos pueden faltar y las referencias pueden apuntar a registros no recibidos. La respuesta contiene data, pagination y credits. parent_id y link_id no son filtros de búsqueda. JSONL es una transformación local, no el formato de descarga de esta ruta.
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.