Accédez à vos données de monitoring PageRadar par programmation. Créez des tableaux de bord personnalisés, intégrez vos outils et automatisez vos workflows de veille de marque.
https://pageradar.io/api
6
Points d'accès
100/min
Limite
REST
JSON API
Toutes les requêtes API nécessitent un token Bearer dans l'en-tête Authorization.
Abonnement requis. Un abonnement PageRadar actif est nécessaire pour utiliser l'API. Voir les tarifs
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json" \
https://pageradar.io/api/reddit/monitors
L'API autorise 100 requêtes par minute par utilisateur authentifié. Les informations de limite sont incluses dans les en-têtes de réponse :
| En-tête | Description |
|---|---|
X-RateLimit-Limit |
Nombre maximum de requêtes par minute (100) |
X-RateLimit-Remaining |
Requêtes restantes dans la fenêtre actuelle |
Retry-After |
Secondes à attendre (uniquement sur les réponses 429) |
HTTP/1.1 429 Too Many Requests
Retry-After: 42
{
"message": "Too Many Attempts."
}
Les endpoints de liste renvoient des résultats paginés avec des objets meta et links pour la navigation.
| Paramètre | Type | Default | Description |
|---|---|---|---|
page |
integer | 1 | Numéro de page |
per_page |
integer | 50 | Éléments par page (max 100) |
{
"data": [ ... ],
"links": {
"first": "https://pageradar.io/api/reddit/mentions?page=1",
"last": "https://pageradar.io/api/reddit/mentions?page=5",
"prev": null,
"next": "https://pageradar.io/api/reddit/mentions?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 5,
"per_page": 50,
"to": 50,
"total": 237
}
}
| Code | Signification | Description |
|---|---|---|
| 200 | OK | Requête réussie |
| 401 | Non autorisé | Token API manquant ou invalide |
| 403 | Interdit | Pas d'abonnement actif — mettre à niveau |
| 404 | Non trouvé | La ressource n'existe pas ou ne vous appartient pas |
| 422 | Erreur de validation | Paramètres invalides — vérifiez l'objet errors dans la réponse |
| 429 | Trop de requêtes | Limite dépassée — attendez puis réessayez |
| 500 | Erreur serveur | Un problème est survenu de notre côté |
401 Unauthorized
{
"message": "Unauthenticated."
}
403 Forbidden
{
"error": "subscription_required",
"message": "An active subscription is required.",
"upgrade_url": "https://pageradar.io/pricing"
}
Points d'accès
/api/reddit/monitors
Renvoie tous les monitors de mots-clés Reddit de l'utilisateur authentifié, avec le nombre de mentions et d'alertes non lues.
{
"data": [
{
"id": 1,
"keyword": "pageradar",
"subreddits": ["seo", "webdev"],
"check_frequency": "hourly",
"is_active": true,
"last_checked_at": "2026-03-19T08:00:00+00:00",
"mentions_count": 42,
"unread_alerts_count": 3,
"created_at": "2026-01-15T10:30:00+00:00",
"updated_at": "2026-03-19T08:00:00+00:00"
}
]
}
/api/reddit/monitors/{id}
Renvoie les détails d'un monitor. Renvoie 404 si non trouvé ou s'il ne vous appartient pas.
| Paramètre | Type | Description |
|---|---|---|
id | integer | ID du monitor requis |
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://pageradar.io/api/reddit/monitors/1
/api/reddit/monitors/{id}/mentions
Renvoie les mentions paginées d'un monitor spécifique. Supporte les mêmes filtres que Toutes les mentions.
curl -H "Authorization: Bearer YOUR_TOKEN" \
"https://pageradar.io/api/reddit/monitors/1/mentions?subreddit=seo&per_page=20"
/api/reddit/mentions
Renvoie toutes les mentions Reddit de tous vos monitors, avec filtrage, tri et pagination.
| Paramètre | Type | Default | Description |
|---|---|---|---|
monitor_id |
integer | - | Filtrer par ID de monitor |
keyword |
string | - | Recherche dans keyword_found (correspondance partielle) |
subreddit |
string | - | Filtrer par nom de subreddit (ex. seo) |
found_in |
string | - | Où le mot-clé a été trouvé : title, body ou comment |
date_from |
date | - | Date de début (YYYY-MM-DD) |
date_to |
date | - | Date de fin (YYYY-MM-DD) |
sort |
string | date | date, score, or comments |
sort_dir |
string | desc | asc or desc |
per_page |
integer | 50 | Résultats par page (max 100) |
curl -H "Authorization: Bearer YOUR_TOKEN" \
"https://pageradar.io/api/reddit/mentions?subreddit=seo&date_from=2026-01-01&sort=score&per_page=20"
{
"data": [
{
"id": 123,
"monitor_id": 1,
"keyword_found": "pageradar",
"reddit_id": "abc123",
"post_title": "Best SEO monitoring tools in 2026?",
"post_url": "https://reddit.com/r/seo/comments/abc123",
"subreddit": "seo",
"author": "seo_expert",
"found_in": "body",
"context_text": "I've been using pageradar for my clients...",
"score": 42,
"num_comments": 15,
"comment_id": null,
"comment_author": null,
"created_at_reddit": "2026-03-18T14:30:00+00:00",
"created_at": "2026-03-18T15:00:00+00:00"
}
],
"links": { "first": "...?page=1", "last": "...?page=3", "prev": null, "next": "...?page=2" },
"meta": { "current_page": 1, "last_page": 3, "per_page": 50, "total": 142 }
}
/api/reddit/mentions/{id}
Renvoie une mention avec tous ses détails. Renvoie 404 si non trouvée ou si elle ne vous appartient pas.
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://pageradar.io/api/reddit/mentions/123
/api/reddit/search
Live
Recherchez sur Reddit en temps réel n'importe quel mot-clé. Cet endpoint interroge directement l'API Reddit et renvoie les posts correspondants — aucun monitor nécessaire.
Idéal pour les vérifications ponctuelles de marque, la prospection ou la création de tableaux de bord personnalisés.
| Paramètre | Type | Default | Description |
|---|---|---|---|
keyword |
string | - | Mot-clé à rechercher requis |
subreddits[] |
array | all | Limiter à des subreddits spécifiques (e.g. subreddits[]=seo&subreddits[]=webdev) |
sort |
string | new | new, relevance, hot, top, or comments |
time |
string | week | hour, day, week, month, year, or all |
limit |
integer | 25 | Nombre de posts Reddit à scanner (max 100) |
curl -H "Authorization: Bearer YOUR_TOKEN" \
"https://pageradar.io/api/reddit/search?keyword=elon+musk&time=day&limit=25"
{
"data": [
{
"reddit_id": "1ry61df",
"post_title": "what's the cringiest fact about elon musk?",
"post_url": "https://reddit.com/r/AskReddit/comments/1ry61df",
"subreddit": "AskReddit",
"author": "Thick-Topic-521",
"found_in": "title",
"context_text": "what's the cringiest fact about elon musk?",
"keyword_found": "elon musk",
"score": 2,
"num_comments": 4,
"created_at_reddit": "2026-03-19T17:01:26+00:00"
}
],
"keyword": "elon musk",
"subreddits": "all",
"sort": "new",
"time": "day",
"total": 8
}
/api/user
Renvoie les informations de base de l'utilisateur authentifié. Utile pour vérifier que votre token fonctionne.
{
"id": 1,
"name": "John Doe",
"email": "[email protected]"
}
| Champ | Type | Description |
|---|---|---|
id | integer | Identifiant unique du monitor |
keyword | string | Mot-clé surveillé |
subreddits | array|null | Liste de subreddits spécifiques, ou null pour tous |
check_frequency | string | hourly, daily, or weekly |
is_active | boolean | Si le monitor est actif |
last_checked_at | string|null | Date/heure ISO 8601 du dernier check |
mentions_count | integer | Nombre total de mentions trouvées |
unread_alerts_count | integer | Nombre d'alertes non lues |
created_at | string | Date de création ISO 8601 |
updated_at | string | Date de dernière mise à jour ISO 8601 |
| Champ | Type | Description |
|---|---|---|
id | integer | Identifiant unique de la mention |
monitor_id | integer | ID du monitor parent |
keyword_found | string | Le mot-clé exact qui a matché |
reddit_id | string | ID du post Reddit |
post_title | string | Titre du post Reddit |
post_url | string | URL directe vers le post Reddit |
subreddit | string | Nom du subreddit (sans le préfixe r/) |
author | string|null | Nom d'utilisateur Reddit de l'auteur |
found_in | string | title, body, or comment |
context_text | string|null | Extrait de texte autour du mot-clé trouvé |
score | integer | Score de votes Reddit |
num_comments | integer | Nombre de commentaires sur le post |
comment_id | string|null | ID du commentaire (si trouvé dans un commentaire) |
comment_author | string|null | Auteur du commentaire (si trouvé dans un commentaire) |
created_at_reddit | string|null | Date de création du post sur Reddit (ISO 8601) |
created_at | string | Date de détection de la mention (ISO 8601) |
Lister tous les monitors
curl -H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json" \
https://pageradar.io/api/reddit/monitors
Rechercher des mentions avec filtres
curl -H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json" \
"https://pageradar.io/api/reddit/mentions?subreddit=seo&sort=score&date_from=2026-01-01&per_page=20"
Recherche en direct d'un mot-clé
curl -H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json" \
"https://pageradar.io/api/reddit/search?keyword=your+brand&time=day&limit=50"
Lister tous les monitors
const API_TOKEN = 'YOUR_TOKEN';
const BASE_URL = 'https://pageradar.io/api';
const response = await fetch(`${BASE_URL}/reddit/monitors`, {
headers: {
'Authorization': `Bearer ${API_TOKEN}`,
'Accept': 'application/json',
},
});
const { data } = await response.json();
data.forEach(monitor => {
console.log(`${monitor.keyword}: ${monitor.mentions_count} mentions`);
});
Rechercher des mentions avec filtres
const params = new URLSearchParams({
subreddit: 'seo',
sort: 'score',
date_from: '2026-01-01',
per_page: '20',
});
const response = await fetch(`${BASE_URL}/reddit/mentions?${params}`, {
headers: {
'Authorization': `Bearer ${API_TOKEN}`,
'Accept': 'application/json',
},
});
const { data, meta } = await response.json();
console.log(`Found ${meta.total} mentions (page ${meta.current_page}/${meta.last_page})`);
Recherche en direct d'un mot-clé
const params = new URLSearchParams({
keyword: 'your brand',
time: 'day',
limit: '50',
});
const response = await fetch(`${BASE_URL}/reddit/search?${params}`, {
headers: {
'Authorization': `Bearer ${API_TOKEN}`,
'Accept': 'application/json',
},
});
const { data, total } = await response.json();
console.log(`Found ${total} live mentions`);
data.forEach(mention => {
console.log(`[r/${mention.subreddit}] ${mention.post_title} (score: ${mention.score})`);
});
Lister tous les monitors
import requests
API_TOKEN = "YOUR_TOKEN"
BASE_URL = "https://pageradar.io/api"
headers = {"Authorization": f"Bearer {API_TOKEN}", "Accept": "application/json"}
response = requests.get(f"{BASE_URL}/reddit/monitors", headers=headers)
monitors = response.json()["data"]
for m in monitors:
print(f"{m['keyword']}: {m['mentions_count']} mentions, {m['unread_alerts_count']} unread")
Rechercher des mentions avec filtres
params = {
"subreddit": "seo",
"sort": "score",
"date_from": "2026-01-01",
"per_page": 100,
}
response = requests.get(f"{BASE_URL}/reddit/mentions", headers=headers, params=params)
data = response.json()
for mention in data["data"]:
print(f"r/{mention['subreddit']}: {mention['post_title']} (score: {mention['score']})")
print(f"\nTotal: {data['meta']['total']} mentions across {data['meta']['last_page']} pages")
Recherche en direct d'un mot-clé
params = {
"keyword": "your brand",
"time": "day",
"limit": 50,
}
response = requests.get(f"{BASE_URL}/reddit/search", headers=headers, params=params)
result = response.json()
print(f"Found {result['total']} live mentions for '{result['keyword']}'")
for mention in result["data"]:
print(f" [{mention['found_in']}] r/{mention['subreddit']}: {mention['post_title']}")
Lister les monitors (Guzzle)
$client = new \GuzzleHttp\Client([
'base_uri' => 'https://pageradar.io/api/',
'headers' => [
'Authorization' => 'Bearer YOUR_TOKEN',
'Accept' => 'application/json',
],
]);
$response = $client->get('reddit/monitors');
$monitors = json_decode($response->getBody(), true)['data'];
foreach ($monitors as $monitor) {
echo "{$monitor['keyword']}: {$monitor['mentions_count']} mentions\n";
}
Rechercher des mentions avec filtres
$response = $client->get('reddit/mentions', [
'query' => [
'subreddit' => 'seo',
'sort' => 'score',
'date_from' => '2026-01-01',
'per_page' => 100,
],
]);
$data = json_decode($response->getBody(), true);
foreach ($data['data'] as $mention) {
echo "r/{$mention['subreddit']}: {$mention['post_title']} (score: {$mention['score']})\n";
}
echo "Total: {$data['meta']['total']} mentions\n";
Recherche en direct d'un mot-clé
$response = $client->get('reddit/search', [
'query' => [
'keyword' => 'your brand',
'time' => 'day',
'limit' => 50,
],
]);
$result = json_decode($response->getBody(), true);
echo "Found {$result['total']} live mentions for '{$result['keyword']}'\n";
foreach ($result['data'] as $mention) {
echo " [{$mention['found_in']}] r/{$mention['subreddit']}: {$mention['post_title']}\n";
}