SubReply

Endpoints

Publier un commentaire

Poste un commentaire sur Reddit depuis un compte du parc SubReply, derrière un proxy résidentiel.

POST/api/v1/publish50 crédits

Cette route publie réellement sur Reddit

Il n'y a pas de mode bac à sable. Testez d'abord sur r/testingground4bots, vérifiez le permalien retourné, puis seulement branchez la route en production.

Paramètres

Corps de la requête (application/json)

ParamètreTypeRequisDescription
post_urlstringRequisURL complète du post Reddit sous lequel commenter. Doit commencer par https://www.reddit.com/ ou https://reddit.com/.
commentstringRequisTexte du commentaire, de 10 à 2 000 caractères. En dessous de 10, ce n'est pas un commentaire — et un « ok » abîme la crédibilité du compte qui le poste.

Exemple

cURL
curl -s -X POST https://subreply.io/api/v1/publish \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sr_live_VOTRE_CLE_API" \
  -d '{
    "post_url": "https://www.reddit.com/r/startupfrance/comments/1abc23/...",
    "comment": "J'\''ai monté mon cabinet il y a deux ans avec exactement le même problème..."
  }'

202 : ne retentez pas

Un 202signifie que la demande est partie mais que la publication n'est pas confirmée. Rien n'est débité — et surtout, ne rejouez pas l'appel : le commentaire est peut-être déjà en ligne, vous en posteriez un second. Vérifiez le post avant toute nouvelle tentative.

Comment ça fonctionne

1

Sélection d'un compte du parc

SubReply choisit un compte Reddit actif, à session valide, et le moins sollicité du parc — pour que le trafic d'API ne repose jamais sur un seul compte.

Aucun compte publiable ? La route répond 503 et ne débite rien.
2

Proxy résidentiel

La session part derrière une IP résidentielle collante, associée au compte. Un même compte garde son IP d'un post à l'autre, comme un vrai utilisateur.

Un compte qui saute d'IP en IP est le motif de ban le plus banal.
3

Publication par navigateur

Un vrai Chrome ouvre le post et écrit le commentaire, avec des délais et un rythme de frappe humains. Aucune API Reddit officielle n'est utilisée.

C'est ce qui rend l'appel lent (jusqu'à 2 min) — et ce qui le rend crédible.

Anti-shadowban

  • Comptes aged: de vrais comptes avec de l'historique et du karma, pas des comptes créés à la demande.
  • Comportement humain simulé : navigation réelle, délais variables, frappe progressive.
  • Rotation des comptes : le moins sollicité publie en premier, et le parc absorbe le volume au lieu de le concentrer.

Facturation

Les 50 crédits sont débités après confirmationde la publication, jamais à l'envoi. Concrètement :

  • 200 avec un permalien → débité.
  • 202, 422, 503 → aucun débit.
  • Rejeu sur la même post_url credits_used: 0, le débit est idempotent par post. Attention : cela protège d'un double débit, pas d'un double commentaire sur Reddit.

Erreurs spécifiques à cette route

CodeCauseQue faire
503Service de publication indisponible : aucun compte publiable, ou le service ne répond pas.Réessayer dans 60 s. Rien n'a été débité et, si le commentaire était parti, le débit idempotent protège du double paiement.
422Refus fonctionnel : post verrouillé, archivé, supprimé, subreddit en lecture seule, ou compte Reddit momentanément indisponible.Ne pas retenter à l'identique — corriger. Le message d'erreur reprend le motif exact renvoyé par le service.

La liste complète est sur la page codes d'erreur.

Timeout côté client

Un appel peut prendre jusqu'à deux minutes. Réglez le timeout de votre client HTTP à 180 secondes au moins : un timeout court côté client coupe la connexion sans annuler la publication, et vous perdez le permalien d'un commentaire pourtant en ligne.

Node.js
const response = await fetch("https://subreply.io/api/v1/publish", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    Authorization: `Bearer ${process.env.SUBREPLY_API_KEY}`,
  },
  body: JSON.stringify({ post_url: postUrl, comment }),
  // 3 minutes : la publication passe par un vrai navigateur.
  signal: AbortSignal.timeout(180_000),
});