El cambio de precios de la API de Reddit en 2023 hizo que el acceso masivo a Reddit fuera prohibitivamente costoso para la mayoría de las empresas emergentes. El punto final de Reddit de Scavio representa la capa de datos pública de Reddit sin OAuth ni límites de tarifas por aplicación. Este tutorial recorre los patrones comunes: búsqueda de publicaciones, hilos de comentarios y monitoreo de subreddit.
Requisitos previos
- Python 3.10+
- Una clave API de Scavio
- Un subreddit o destino de consulta
Guia paso a paso
Paso 1: Buscar publicaciones por consulta
Scavio devuelve publicaciones de Reddit clasificadas por relevancia o actualidad.
import requests, os
API_KEY = os.environ['SCAVIO_API_KEY']
def search(query, time='month'):
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'platform': 'reddit', 'query': query, 'time': time})
return r.json().get('posts', [])Paso 2: Extraer comentarios para un hilo
Pase la URL o identificación de la publicación.
def comments(post_url):
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'platform': 'reddit_comments', 'query': post_url})
return r.json().get('comments', [])Paso 3: Monitorear un subreddit
Nuevas publicaciones en r/MachineLearning cada hora.
def watch(subreddit):
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'platform': 'reddit', 'query': f'subreddit:{subreddit}', 'sort': 'new'})
return r.json().get('posts', [])[:25]Paso 4: Filtrar por intención del comprador
Regex para "buscar", "recomendar", "alternativa".
import re
BUYER = re.compile(r'\b(looking for|recommend|alternative to|help me)\b', re.I)
def intent(posts):
return [p for p in posts if BUYER.search(p.get('title', '') + p.get('selftext', ''))]Paso 5: Escribir en un CSV para DEG
Una fila por señal de intención.
import csv
def export(posts):
with open('reddit_intent.csv', 'w') as f:
w = csv.DictWriter(f, fieldnames=['title', 'url', 'subreddit'])
w.writeheader(); w.writerows(posts)Ejemplo en Python
import os, requests
API_KEY = os.environ['SCAVIO_API_KEY']
def reddit(query):
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'platform': 'reddit', 'query': query, 'time': 'week'})
return r.json().get('posts', [])
for p in reddit('looking for serp api')[:10]:
print(p['title'], p['url'])Ejemplo en JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
export async function reddit(query) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ platform: 'reddit', query, time: 'week' })
});
return (await r.json()).posts;
}
const posts = await reddit('looking for serp api');
console.log(posts.slice(0, 10));Salida esperada
25 posts per subreddit watch, filtered to ~3-5 buyer-intent signals. Typical SDR workflow: 10 minutes/day, 5-15 qualified leads per week.