Define una ventana de consulta, no una suscripción
Utiliza from y to para definir períodos en las rutas de contenido, en lugar de esperar eventos por una conexión persistente. Reddit Stream API es un archivo histórico independiente, no un servicio oficial en directo, SSE o WebSocket. Cada ejecución de tu tarea envía solicitudes separadas. Programar consultas periódicas no crea una garantía de actualidad ni demuestra que todos los datos nuevos hayan aparecido entre ejecuciones.
Las fechas usan YYYY-MM-DD, se aplican a created_utc en UTC e incluyen todo el día indicado en to. No son fechas de incorporación al archivo ni permiten precisión por horas. Si eliges ventanas diarias contiguas, diferencia sus días de inicio y fin para no introducir solapamientos por el extremo inclusivo. Esa organización local no garantiza ventanas completas o resultados idénticos cuando vuelvas a consultarlas.
Empieza con https://api.redditstreamapi.com/v1/posts?subreddit=datasets&limit=3&page=2, el ejemplo de la página de inicio. Solicita hasta tres publicaciones de datasets en la segunda página, no un punto cronológico de continuación. Elige X-API-Key: <clave> o Authorization: Bearer <clave> y guarda el secreto en tu servidor. La sesión del panel de cuenta es independiente de estas cabeceras; consulta Obtener clave API para preparar el acceso.
Guarda una página antes de avanzar el progreso local
Define un tamaño de página entre 1 y 100 según lo que pueda procesar tu aplicación. El máximo no es una promesa de rendimiento óptimo ni de un número mínimo de registros. page también va de 1 a 100 y cada solicitud recupera una página. Comprueba primero el estado HTTP y valida data como lista antes de transformar los campos disponibles. Una lista vacía exitosa es un resultado válido.
Conserva respuesta, parámetros y número de página recibidos antes de actualizar tu punto de control local. Ese punto pertenece a tu aplicación, no es un cursor estable emitido por el archivo. Reprocesar una copia local no requiere otra recuperación; pedir de nuevo la misma página sí puede generar un cargo nuevo. La segunda respuesta no tiene garantizados los mismos registros, campos u orden que la primera.
Lee total junto con relation: eq expresa un total exacto de la consulta, gte una cota inferior y unknown la ausencia de un total fiable, posiblemente null. No conviertas desconocido en cero. Guarda has_more y window_exhausted para describir los límites encontrados. Al alcanzar la página 100, registra el límite en tu trabajo; una cola terminada o un total exacto no certifica descarga completa.
Distingue límites, fallos y coste
Los registros siguen _doc, un orden interno, no cronología, relevancia o puntuación. min_score filtra sin ordenar. Puedes ordenar o eliminar duplicados de lo recibido localmente, pero eso no demuestra una extracción exhaustiva ni una secuencia de eventos sin huecos. parent_id o link_id presentes permiten asociaciones locales, sin una conversación completa garantizada. La documentación describe los filtros reales y distingue contenido, consulta por id y catálogo de comunidades.
HTTP 400 exige corregir parámetros, 401 revisar clave y cabecera, 402 consultar saldo en el panel y 429 limitar y espaciar nuevos intentos. Puedes fijar pausas crecientes y un máximo de repeticiones sin garantizar recuperación posterior. /v1/status es público y gratuito, pero solo devuelve una declaración estática y confirma que responde la aplicación HTTP. No valida claves, ni muestra saldo, ni comprueba el buscador.
Cada recuperación exitosa cuesta un crédito, incluso vacía o repetida. Las solicitudes inválidas no descuentan saldo y un fallo del origen devuelve la reserva. Un tiempo de espera agotado en el cliente puede ocultar un éxito cobrado; otro intento exitoso cuesta otro crédito. Un fallo local posterior tampoco anula la recuperación remota. Consulta los precios para presupuestar páginas y pruebas: $1 por 1000 éxitos y recarga pagada mínima de $50, sin suscripciones ni caducidad de créditos comprados.