SubReply

Primeros pasos

Autenticación

Todos los endpoints de la API de SubReply se autentican igual: una clave API personal, enviada como Bearer token.

No hay OAuth, ni cookie de sesión, ni firma de la petición. Una clave identifica a una sola cuenta de SubReply: es esa cuenta la que se cobra y cuyo saldo se comprueba.

Cabecera
Authorization: Bearer sr_live_VOTRE_CLE_API

Generar una clave

  • Abre la página Claves API de tu panel.
  • Ponle a la clave el nombre de la herramienta que va a usarla («n8n prod», «script de scraping»…). Ese nombre es lo que te permitirá revocar la correcta.
  • Copia el token que se muestra de inmediato: no volverá a ser legible nunca.

Formato de la clave

Una clave es el prefijo sr_live_ seguido de 64 caracteres hexadecimales — 72 caracteres en total, es decir 256 bits de entropía.

Formato
sr_live_3f9c1d7e08b64a25c1e0a7d4f6b93e28d5c40a1b8e73f602d9a45c8e1b027f3a
└──┬───┘└───────────────────── 64 caracteres hex ──────────────────────┘
 prefijo

A partir de ahí el panel solo muestra sr_live_ y los 8 primeros caracteres: suficiente para reconocer una clave en una lista, muy lejos de lo necesario para reconstruirla. Solo guardamos su huella SHA-256, así que ni siquiera nosotros podemos devolvértela.

Usar la clave

cURL
curl -X POST https://subreply.io/api/v1/scrape \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sr_live_VOTRE_CLE_API" \
  -d '{"subreddits": ["r/entrepreneur"], "keywords": ["leads"]}'

En Node.js o en un nodo HTTP Request (n8n, Make) es la misma cabecera:

Node.js
const response = await fetch("https://subreply.io/api/v1/scrape", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    Authorization: `Bearer ${process.env.SUBREPLY_API_KEY}`,
  },
  body: JSON.stringify({
    subreddits: ["r/entrepreneur"],
    keywords: ["leads"],
  }),
});

const data = await response.json();

Seguridad

  • Nunca en el cliente. Una clave en JavaScript de navegador, en una app móvil o en un repositorio público es una clave comprometida: cualquiera puede quemar tus créditos y publicar con tu cuenta.
  • Siempre en una variable de entorno (SUBREPLY_API_KEY), o en el gestor de credenciales de tu herramienta de automatización. Nunca escrita en el código ni en una URL — las URL acaban en los logs.
  • Una clave por uso. Así un flujo de n8n comprometido se revoca sin romper tus scripts.
  • Ante la duda, revoca. La revocación es inmediata y generar una clave nueva son dos clics. Una clave perdida no se recupera, se sustituye.

La clave da acceso a tus créditos

Permite generar y publicar, o sea gastar. Trátala como un medio de pago, no como un identificador.

Errores de autenticación

CódigoSignificadoCausaSolución
401UnauthorizedCabecera ausente o mal formada, clave desconocida o revocada.Comprueba la cabecera Authorization: Bearer sr_live_…, sin espacios de más ni saltos de línea.
402Payment RequiredLa clave es válida pero el saldo de créditos es nulo o insuficiente para la acción pedida.Recarga en subreply.io/billing.

La comprobación se hace en dos tiempos: primero la clave (401), después el saldo (402). Un 402 es por tanto siempre la prueba de que tu clave sí es correcta.