Naturaleza del Archivo y Retorno de Datos Plano
La API funciona como un archivo histórico independiente y no como una fuente oficial en vivo de Reddit. Las respuestas contienen registros planos donde las respuestas anidadas no se agrupan automáticamente en árboles de hilos del servidor. El orden de los documentos sigue el índice _doc del archivo sin garantizar una secuencia cronológica.
Cuando parent_id o link_id están presentes, el cliente puede agrupar los registros recibidos localmente, sin garantía de conversación o ascendencia completa. No existen filtros expuestos por esos dos campos. Distingue una relación ausente de un error de tu transformación y evita rellenar vínculos que no se observan en la respuesta.
Antes de fijar un esquema de destino, comprueba las claves y los tipos observados en una muestra. Un atributo ausente no es necesariamente equivalente a un valor nulo o a una cadena vacía. Mantén las respuestas originales separadas de las columnas normalizadas para poder revisar decisiones de conversión sin otra petición cobrada al archivo.
Validación de JSON en Python
Para probar la estructura, solicita /v1/posts?subreddit=python&limit=3 desde un cliente Python. Con urllib.request puedes configurar el encabezado y con json interpretar el cuerpo, después de comprobar el estado HTTP. Verifica que data sea una lista antes de recorrerla y que cada elemento sea un objeto antes de inspeccionar sus claves. Son comprobaciones de tu aplicación, no una promesa de esquema inmutable.
Separa el contenedor de respuesta de los registros que cargarás. pagination describe la página y credits el consumo; no son columnas de cada publicación. Guarda la respuesta original, registra las conversiones fallidas y carga una tabla de preparación antes de actualizar tablas analíticas. eq indica un total exacto, gte un límite inferior y unknown un total no fiable, posiblemente nulo.
Filtros, Límites y Parámetros de Consulta
Utiliza /v1/search para consultas generales, /v1/posts para publicaciones y /v1/comments para comentarios. Solo /v1/item exige id; /v1/subreddits acepta prefix. Los filtros de búsqueda son q, subreddit, author, kind, from, to, min_score, limit y page. kind admite post o comment; from y to son YYYY-MM-DD en UTC, con to inclusivo.
El parámetro min_score actúa exclusivamente como un filtro de umbral y nunca controla el orden de clasificación. Los datos se devuelven en el orden del índice _doc del archivo, que es distinto del orden cronológico, de relevancia o de puntuación. Esta distinción es crítica para los ingenieros que requieren secuencias precisas.
Los puntos de conexión de publicaciones y comentarios no requieren un parámetro id para la enumeración general. Solo el punto de conexión específico de ítem exige un id único. La iteración acotada mediante páginas no garantiza una cobertura total del archivo, ni una ingestión exhaustiva de todos los registros coincidentes.
Autenticación, Facturación y Códigos de Error
Envía peticiones GET a api.redditdataapi.com. Las rutas autenticadas aceptan Authorization: Bearer <clave> y, como alternativa, X-API-Key: <clave>. 400 indica una petición inválida, 401 una clave ausente o inválida, 402 saldo insuficiente y 429 límite de frecuencia. La cookie Secure HttpOnly del panel de cuenta no sustituye estos encabezados de recuperación.
Cada recuperación correcta consume un crédito, incluso vacía. Las peticiones inválidas no descuentan saldo y los fallos del proveedor de búsqueda devuelven la reserva. Una interrupción del cliente puede ocurrir después de una recuperación cobrada en el servidor; otro intento correcto consume otro crédito. /v1/status es público y no se cobra, pero no prueba la búsqueda.
El panel de cuenta está en la página de claves. Para pagar, inicia sesión, crea una factura y utiliza su importe y destinatario exactos con USDT en TRON TRC20 o USDC en Ethereum mainnet ERC20. Solicita verificación con el hash. La recarga mínima de $50 compra 50000 créditos; las claves y saldos no se comparten entre dominios.