Defina o trabalho executado pelo seu agendador
A ingestão em lote consiste em recuperar conjuntos discretos de dados para processamento posterior em pipelines ETL. Utilizamos rotas dedicadas como pesquisa e posts para capturar registros históricos de forma eficiente. Isso permite que você obtenha volumes significativos de informações sem a sobrecarga de chamadas individuais para cada item.
A Reddit Data Stream é um arquivo histórico independente, sem afiliação ao Reddit ou atualizações ao vivo. Chamadas periódicas não transformam a API em fluxo de eventos, SSE, WebSocket ou canal de alterações. Não há promessa de novidades entre execuções nem de ordem temporal para detectar tudo que foi adicionado. A periodicidade e a execução do trabalho são decisões da sua infraestrutura, não serviços de agendamento fornecidos pela API.
Defina o destino da resposta original e do JSONL derivado, além de um máximo local de chamadas por execução. Guarde rota, filtros, limit e page com seu identificador de lote. Esse registro pertence ao ETL, não é cursor emitido pelo arquivo. Diferencie resposta guardada, transformação pendente e arquivo terminado. Não use o último created_utc como marca de nova ingestão: from e to filtram criação em YYYY-MM-DD UTC, incluindo o último dia inteiro, não chegada ou alteração no arquivo.
Guarde a página antes de gravar JSONL
O exemplo inicial é GET https://api.redditdatastream.com/v1/posts?subreddit=apacheairflow&limit=3&page=3. Pede posts dessa comunidade, até três registros da página três; não busca os posts mais recentes. Para comentários use comments, ou search com os filtros documentados. Autentique no servidor com X-API-Key: <chave> ou Authorization: Bearer <chave>. A página Obter chave API explica o acesso antes do pagamento; exclua segredos dos arquivos e registros.
Confira o status HTTP e guarde a resposta recebida antes de normalizar campos. Depois valide data e grave cada registro escolhido como um objeto JSON em uma linha com seu próprio código. Se o texto contiver quebras de linha, serialize como JSON para escapá-las dentro do objeto. Guarde pagination e credits como metadados separados. O endpoint retorna JSON, não um arquivo JSONL, uma exportação em massa ou um destino de armazenamento gerenciado.
Campos opcionais podem faltar e referências podem apontar para dados não recebidos. parent_id e link_id presentes permitem relações locais, sem árvores completas ou filtros por esses identificadores. Defina como a transformação tratará registros que não puder aceitar e guarde os motivos de rejeição. Se já salvou a resposta, reprocesse essa cópia para reparar o arquivo; isso não chama a API nem devolve o crédito do sucesso original.
Encerre lotes e separe os custos
Nas rotas de conteúdo, limit e page vão de 1 a 100, com uma chamada por página. _doc não ordena por tempo, relevância ou pontuação; min_score é só um limite numérico. Leia total com relation: eq é exato para a consulta, gte é limite inferior e unknown indica total não confiável, possivelmente null. Guarde has_more e window_exhausted, respeite o limite e registre onde o trabalho parou. Não prometa cobertura completa ou registros únicos.
Uma resposta vazia bem-sucedida não gera linhas de data, mas exige registro do lote e custa um crédito. Corrija parâmetros com 400, confira chave e domínio com 401, saldo com 402 e use esperas e tentativas limitadas para 429. /v1/status é público e não cobra, mas só declara o escopo e confirma a resposta HTTP; não testa a busca nem o estado dos seus arquivos ou tarefas. Uma página persistida não garante retomada remota estável.
Cada recuperação bem-sucedida custa um crédito, inclusive vazia ou repetida: $1 por 1000 solicitações. A recarga mínima é $50 por 50000 créditos comprados e os 100 de teste são condicionais. Pedidos inválidos não debitam; falhas na origem devolvem a reserva. Uma desconexão pode ocultar um sucesso cobrado, e outra recuperação bem-sucedida custa outro crédito. Uma falha local não o reembolsa. Consulte preços e documentação para orçar páginas, testes e novas consultas separadamente do processamento local. Partir datas ou remover duplicatas não prova exaustividade.