Première requête
Envoyez la requête depuis votre serveur et gardez votre clé API privée.
: "${REDDITAPP_API_KEY:?Set REDDITAPP_API_KEY on your server}"
curl --get --fail-with-body 'https://api.redditapp.com/v1/search' \
-H "Authorization: Bearer ${REDDITAPP_API_KEY}" \
--data-urlencode 'q=offline maps' \
--data-urlencode 'subreddit=hiking' \
--data-urlencode 'limit=3'Référence API
↔ Faites défiler le tableau horizontalement
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, limit |
GET | /v1/status | — |
Notes complémentaires
GET | /v1/search · /v1/posts · /v1/comments · /v1/item · /v1/subreddits · /v1/status |
|---|---|
q · subreddit · author · kind | kind: post | comment |
from · to | YYYY-MM-DD |
min_score | score ≥ min_score |
limit · page | 1…100 · 1…100 |
/v1/item | id |
/v1/subreddits | prefix · limit |
_doc | ≠ date · ≠ relevance · ≠ score |
pagination.relation | eq · gte · unknown |
pagination | has_more · window_exhausted · truncated |
1 credit | $0.001 |
$1 | 1000 credits |
$50 | 50000 credits |
400 · 401 · 402 · 429 · 502 | HTTP |
Placer votre serveur entre l’application et l’archive
Pour la fonction de randonnée illustrée, le client mobile ou web envoie offline maps à votre serveur. Celui-ci valide la requête, applique les limites de l’application et appelle l’archive avec une clé enregistrée. Ne renvoyez que les champs nécessaires à l’écran de lecture. Cet exemple est un point de départ, pas l’affirmation que ce compte de domaine a obtenu des données de hiking.
Utilisez GET https://api.redditapp.com/v1/search?q=offline%20maps&subreddit=hiking&limit=3&page=1. Envoyez depuis votre serveur l’en-tête X-API-Key: YOUR_SAVED_KEY ou Authorization: Bearer YOUR_SAVED_KEY. Gardez les identifiants hors des URL, des fichiers distribués au client et des journaux publics. Le cookie de session de la page du compte ne remplace pas l’authentification des requêtes de récupération.
Choisir les filtres réellement acceptés
La recherche accepte q, subreddit, author, kind, from, to, min_score, limit et page. q applique une correspondance AND sur le titre et le texte ; ce n’est pas une garantie d’expression exacte ni de recherche sémantique. kind accepte post ou comment. Subreddit et author sont des filtres de correspondance exacte du champ. min_score filtre les enregistrements ; il ne les trie pas.
Utilisez from et to comme dates YYYY-MM-DD en UTC. La date to comprend toute la journée UTC indiquée. Par exemple, from=2025-01-01 et to=2025-12-31 définissent un intervalle sans demander un tri par date. N’envoyez ni date ISO avec heure, ni langage de requête arbitraire, ni paramètre sort, ni filtre parent_id/link_id. Les paramètres non pris en charge sont rejetés.
Choisir le point d’accès adapté
GET /v1/posts et GET /v1/comments restreignent le type et acceptent les filtres de recherche ; ils n’exigent pas d’id. GET /v1/item?id=RECORD_ID recherche un enregistrement disponible par son id. GET /v1/subreddits?prefix=hik&limit=3 renvoie une agrégation limitée de subreddits ; ses comptes ne garantissent pas une exactitude globale.
GET /v1/status est public et gratuit en crédits. Il renvoie une déclaration statique sur le périmètre de l’archive historique et montre que le gestionnaire HTTP répond. Il n’interroge pas le moteur de recherche, n’établit pas la couverture et ne mesure pas l’état de l’archive. Aucun de ces points d’accès ne permet de publier, voter, envoyer des messages, enregistrer des favoris du compte ou obtenir un arbre complet de conversation.
Lire la pagination avant d’ajouter Afficher la suite
Les réponses contiennent data, pagination et credits. Les enregistrements de data sont des objets à plat issus de la source ; un titre, un auteur, une date ou un permalink peut manquer. L’archive utilise l’ordre _doc, pas l’ordre chronologique, la pertinence ou le score. Un tri local réordonne le sous-ensemble obtenu sans en faire le plus récent ou le mieux classé de toute l’archive.
Conservez les mêmes filtres et limit lorsque vous augmentez pagination.page. pagination.has_more utilise un enregistrement supplémentaire de vérification lorsqu’il est disponible. S’il vaut false, ne proposez pas de requête suivante automatique. pagination.window_exhausted indique la limite de la dernière page ; l’atteindre ne prouve pas que tout le contenu correspondant a été récupéré.
Les limites sont de 1–100 enregistrements et de 1–100 pages. Lisez pagination.total avec pagination.relation : eq signifie exact selon la sémantique du compte de cette réponse ; gte indique une borne inférieure ; unknown signifie qu’aucun total fiable n’est fourni, et celui-ci peut être null. Une page vide après la première ne prouve pas un total. Une page 100 pleine avec limit 100 ne laisse pas de place à la vérification supplémentaire et constitue une borne inférieure ; has_more vaut false à la limite des pages. Pour l’agrégation de subreddits, le total est inconnu et pagination.truncated signale des groupes omis.
Traiter explicitement les coûts et les erreurs
Une récupération réussie coûte un crédit, même si data est vide. Validez la saisie avant l’envoi et ne récupérez pas des pages pour animer un indicateur. HTTP 400 indique une entrée invalide ; 401, une clé absente ou invalide ; 402, un crédit insuffisant ; 429, une limite de requêtes. Ces rejets ne réservent pas de crédit de récupération.
Une défaillance de la source est signalée par HTTP 502 et libère le crédit réservé, ou indique que sa restitution attend une régularisation. Si la réponse se perd en chemin vers votre application, le résultat reste incertain : ne la supposez pas gratuite. Conservez la requête, respectez Retry-After et laissez la personne choisir de réessayer lorsque cela convient. Les clés et le solde relèvent de l’opérateur, pas du randonneur.
Présenter les données dans un écran fidèle
Échappez le texte des enregistrements avant de l’afficher. Conservez l’identité et le lien d’origine lorsqu’ils existent, indiquez les dates absentes comme inconnues et distinguez la création de la donnée du moment où votre application l’a obtenue. Des identifiants de parents et de liens peuvent permettre un regroupement local, mais ne fournissent pas les ancêtres manquants.
États de l’interface développe les messages proposés de chargement, de résultat vide et d’échec. Les Notes pratiques du Parcours de l’application traitent des fiches, des références locales et du budget des requêtes. Clé et crédits contient les paramètres du compte et les tarifs. Examinez et testez votre propre réalisation ; ces exemples ne démontrent ni fonctionnement en direct ni conseils actuels sur les sentiers.