Reddit API Stack

Integração da API de Arquivo Histórico do Reddit com Python e JavaScript

Obter chave API

Fundamentos da Conexão e Autenticação

A integração começa com a chave exibida uma única vez imediatamente após o cadastro, antes do pagamento. Use api.redditapistack.com para as consultas. O navegador guarda identificadores de fatura e usuário em localStorage para retomar o processo correspondente; a sessão autenticada usa um cookie Secure HttpOnly. Esses identificadores locais não substituem a autenticação da conta.

Para as rotas autenticadas, envie Authorization com o esquema Bearer e a chave do domínio. Configure o cabeçalho no cliente Python ou no fetch executado em Node.js. /v1/status é público e não cobra créditos: sua resposta estática descreve o serviço histórico e confirma que a aplicação HTTP responde, sem testar o mecanismo de busca.

As chaves e os saldos pertencem a este domínio e não são compartilhados entre as marcas. A chave original não fica persistida no armazenamento do navegador. Usuários com sessão iniciada podem regenerá-la confirmando a senha; a anterior é invalidada imediatamente. Guarde a credencial no servidor e atualize as aplicações que a utilizavam após a troca.

Estrutura de Respostas e Limites de Busca

As respostas da API retornam registros planos, eliminando árvores de encadeamento montadas pelo servidor. Quando os campos parent_id e link_id estão presentes nos registros retornados, o cliente pode agrupá-los localmente, sem a garantia de ancestralidade completa. Esta estrutura exige que o código Python ou JavaScript implemente a lógica de agrupamento para reconstruir conversas complexas ou sequências de comentários.

A busca utiliza a ordem _doc do arquivo, que não é cronológica, nem baseada em relevância ou pontuação. Filtros como min_score atuam apenas como restrições, nunca como controles de classificação. O limite máximo permite até cem registros por solicitação e cem páginas por consulta, o que implica que iterar paginações não garante a captura de todos os registros disponíveis no arquivo.

Use /v1/search, /v1/posts e /v1/comments para consultas; apenas /v1/item exige id. /v1/subreddits aceita prefix. A busca admite q, subreddit, author, kind, from, to, min_score, limit e page. kind aceita post ou comment; datas seguem YYYY-MM-DD em UTC, com to inclusivo. Nos totais, eq significa exato, gte limite inferior e unknown ausência de total confiável, possivelmente nulo.

Mecanismos de Erro, Pagamento e Limites

O código 400 indica requisição inválida; 401, chave ausente ou inválida; 402, créditos insuficientes; e 429, limite de frequência atingido. Diferencie essas causas e evite repetições sem critério. No JavaScript, confira o status HTTP antes de interpretar a resposta: fetch pode receber um erro HTTP sem rejeitar a promessa. No Python, trate também as exceções do cliente utilizado.

Cada recuperação bem-sucedida custa um crédito, incluindo resultados vazios. Requisições inválidas não debitam saldo; falhas do provedor de busca devolvem a reserva. Uma falha de conexão no cliente pode ocorrer depois de um sucesso cobrado no servidor. Uma repetição bem-sucedida consome outro crédito; limite as tentativas e registre seu motivo sem expor a chave.

Para recarregar, entre na conta e crie uma fatura. Envie seu valor exato ao destinatário indicado, com USDT em TRON TRC20 ou USDC em Ethereum mainnet ERC20. Informe o hash da transferência e solicite verificação. Não há prazo fixo de confirmação ou crédito. A regeneração da chave exige senha e não equivale a redefinição de senha, que não está disponível.

Rotas da API

MétodoRotaParâ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
GET/v1/status—

Parâmetros de consulta

ParâmetroValor / tipo / intervalo
qtext
subredditkeyword
authorkeyword
kindpost | comment
fromISO date
toISO date
min_scoreinteger
limit1–100
page1–100
iditem ID
prefixsubreddit prefix
curl -H "Authorization: Bearer YOUR_API_KEY" 'https://api.redditapistack.com/v1/search?q=research&limit=10'

import json, urllib.request
request = urllib.request.Request('https://api.redditapistack.com/v1/search?q=research&limit=10', headers={"Authorization": "Bearer YOUR_API_KEY"})
with urllib.request.urlopen(request) as response:
    print(json.load(response))

fetch("https://api.redditapistack.com/v1/search?q=research&limit=10", {headers: {Authorization: "Bearer YOUR_API_KEY"}})
  .then(response => response.json()).then(console.log);