Configuration et Authentification
Reddit API Stack donne accès à des archives historiques indépendantes, sans données en temps réel ni affiliation officielle avec Reddit. Créez un compte avec une adresse électronique et un mot de passe de 12 à 72 octets. La clé est affichée une seule fois immédiatement après l’inscription, avant paiement ; conservez-la pour configurer votre serveur Python ou Node.js.
Adressez les appels à api.redditapistack.com et utilisez Authorization avec le schéma Bearer pour les récupérations authentifiées. La route /v1/status reste publique et gratuite. Une clé absente ou invalide entraîne 401 ; la clé appartient au compte de ce domaine, pas à une session de navigateur ni à l’ensemble des marques du réseau.
Le panneau de compte de la page des clés permet à une personne connectée de régénérer la clé après confirmation du mot de passe. L’ancienne devient immédiatement invalide : mettez à jour les services qui l’utilisent. Cette opération ne réinitialise pas le mot de passe. Il n’y a ni fonction de réinitialisation de mot de passe ni envoi automatique de clé par courriel.
Architecture des Données et Requêtes
Les réponses sont des enregistrements plats, sans arbre de discussion assemblé par le serveur. Lorsque parent_id ou link_id sont présents, le client peut regrouper localement les éléments reçus. Ces champs ne sont pas des filtres disponibles et ne garantissent pas une ascendance complète. Conservez la distinction entre le texte source et les relations déduites par votre application.
La recherche accepte q, subreddit, author, kind, from, to, min_score, limit et page. kind prend post ou comment. Les dates sont en YYYY-MM-DD en UTC, avec to inclusif. min_score filtre sans trier ; l’ordre interne _doc n’est ni chronologique ni fondé sur le score ou la pertinence. /v1/posts et /v1/comments ne nécessitent pas id ; /v1/item l’exige.
limit autorise de 1 à 100 enregistrements par requête et page de 1 à 100 pages par recherche. /v1/subreddits accepte prefix. Dans les totaux, eq indique une valeur exacte, gte une borne inférieure et unknown l’absence de total fiable, éventuellement nul. Ces indications ne prouvent pas que toutes les correspondances ont été récupérées ni que les archives sont complètes.
Codes d'Erreur et Limites de Consommation
400 indique une requête invalide, 401 une clé absente ou invalide, 402 un solde insuffisant et 429 une limite de fréquence atteinte. Corrigez la cause avant de répéter l’appel. Dans JavaScript, vérifiez le statut HTTP avant de lire le corps comme une réussite : fetch peut recevoir une réponse d’erreur sans rejeter la promesse.
Une récupération réussie coûte un crédit, même vide. Les requêtes invalides ne débitent pas le solde ; les erreurs du fournisseur de recherche restituent la réserve. Une interruption du client peut survenir après une réussite facturée sur le serveur, et une nouvelle tentative réussie est payante. /v1/status indique seulement le périmètre statique et une réponse HTTP, sans tester la recherche.
Le tarif est de $1 pour 1000 récupérations réussies ; le minimum de $50 apporte 50000 crédits achetés, sans expiration ni abonnement. Pour payer, connectez-vous, créez une facture et respectez son destinataire et son montant exacts. Après le transfert, demandez la vérification avec son hash. Aucun délai de confirmation ou de crédit n’est garanti.
Routes de l’API
| Méthode | Route | Paramètres |
|---|---|---|
GET | /v1/search | q, subreddit, author, kind, from, to, min_score, limit, page |
GET | /v1/posts | q, subreddit, author, kind, from, to, min_score, limit, page |
GET | /v1/comments | q, subreddit, author, kind, from, to, min_score, limit, page |
GET | /v1/item | id |
GET | /v1/subreddits | prefix |
GET | /v1/status | — |
Paramètres de requête
| Paramètre | Valeur / type / plage |
|---|---|
q | text |
subreddit | keyword |
author | keyword |
kind | post | comment |
from | ISO date |
to | ISO date |
min_score | integer |
limit | 1–100 |
page | 1–100 |
id | item ID |
prefix | subreddit 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);