Reddit Data API
Reddit Data API
Choix de la langue

Interroger les archives et valider les réponses JSON

Routes, deux méthodes d’authentification, filtres et validation Python pour préparer une ingestion dans un entrepôt de données.

Obtenir une clé API

Routes de l’API

MéthodeRouteParamètres
GET/v1/searchq, subreddit, author, kind, from, to, min_score, limit, page
GET/v1/postsq, subreddit, author, kind, from, to, min_score, limit, page
GET/v1/commentsq, subreddit, author, kind, from, to, min_score, limit, page
GET/v1/itemid
GET/v1/subredditsprefix, limit
GET/v1/status—

Paramètres de requête

ParamètreValeur / type / plage
qtext
subredditkeyword
authorkeyword
kindpost | comment
fromISO date
toISO date
min_scoreinteger
limit1–100
page1–100
iditem ID
prefixsubreddit prefix

Architecture des données et filtres

Les filtres de recherche sont q, subreddit, author, kind, from, to, min_score, limit et page. kind accepte post ou comment ; les dates sont au format YYYY-MM-DD en UTC, avec to inclusif. limit autorise de 1 à 100 enregistrements et page de 1 à 100 pages par recherche. Ces bornes ne prouvent pas une extraction complète.

Les réponses contiennent des enregistrements plats, sans arbre de discussion assemblé par le serveur. Si parent_id ou link_id sont présents, le client peut regrouper les éléments reçus. Ces champs ne sont pas des filtres de recherche exposés. Les relations manquantes doivent rester identifiables : le regroupement local ne garantit ni conversation complète ni ascendance intégrale.

min_score est uniquement un filtre de seuil et ne change pas le tri. Les résultats suivent l’ordre documentaire interne _doc, ni chronologique ni fondé sur la pertinence ou le score. Un tri local ne porte que sur les éléments récupérés ; ne présentez pas cette sélection comme la liste complète des publications les plus récentes ou les mieux notées.

Échantillonnage et validation dans Python

Essayez /v1/posts?subreddit=python&limit=3 avec urllib.request pour envoyer l’en-tête et json pour interpréter le corps. Traitez HTTPError et les erreurs de connexion séparément. Vérifiez que data est une liste et chaque enregistrement un objet avant d’examiner les clés. pagination et credits décrivent le conteneur de réponse ; ce ne sont pas des colonnes propres à chaque publication.

Conservez une réponse originale avant de convertir les valeurs. Distinguez champ absent, valeur nulle et chaîne vide ; consignez les conversions rejetées. Chargez une table de préparation avant de modifier les tables analytiques. La liste de champs observée sur trois publications n’est ni un contrat de schéma permanent ni une preuve que tous les types possibles ont été rencontrés.

Limitations et gestion des erreurs

Une récupération réussie coûte un crédit, même vide. Les requêtes invalides ne débitent pas le solde et les défaillances du fournisseur de recherche restituent la réserve. Une interruption du client peut suivre une réussite déjà facturée côté serveur ; une nouvelle tentative réussie coûte un autre crédit. /v1/status est public et n’est pas facturé.

400 indique une requête invalide, 401 une clé absente ou invalide, 402 des crédits insuffisants et 429 une limite de fréquence. Vérifiez le statut HTTP avant de lire le corps comme des données. Distinguez une erreur reçue du serveur d’une rupture de connexion et limitez les nouvelles tentatives, sans copier la clé dans les journaux.

L'ordre des documents dans l'archive n'est pas chronologique. L'itération des pages bornées ne garantit pas une ingestion complète ou exhaustive de toutes les entrées correspondantes. Le serveur fournit des totaux liés à la pagination avec des relations d'égalité, de borne inférieure ou inconnue. Il est crucial de comprendre que cela n'implique pas la possession de l'intégralité des données disponibles.

Authentification et routage des endpoints

Envoyez des requêtes GET à api.redditdataapi.com avec Authorization: Bearer <clé> ou X-API-Key: <clé>. Utilisez /v1/search, /v1/posts et /v1/comments pour les listes. Seul /v1/item exige id ; /v1/subreddits accepte prefix. La session du panneau de compte utilise un cookie Secure HttpOnly, distinct de l’authentification des récupérations par clé.

Dans la pagination, eq signifie un total exact pour la recherche, gte une borne inférieure et unknown l’absence de total fiable, éventuellement nul. Une borne inférieure n’est pas une estimation approximative. Aucun de ces états ne prouve la couverture des archives. Les agrégations de communautés ne garantissent pas non plus des comptes globaux exacts.

Le panneau de compte se trouve sur la page des clés. L’inscription affiche la clé avant paiement ; la régénération exige le mot de passe et invalide l’ancienne. Pour recharger, créez une facture après connexion, suivez son montant et destinataire exacts et demandez la vérification avec le hash. Clés et soldes sont propres à ce domaine, sans partage entre marques.