Monitor GEO
Documentation

API REST

Tout ce que fait l'interface, en JSON. Pour n8n, Make, Google Sheets et vos scripts. Sans surcoût : seules les réponses de ChatGPT sont facturées.

Conventions

Adresse de base : https://monitor-geo.fr/api/v1. Spécification complète : openapi.json (OpenAPI 3.1).

Authentification : une clé API créée dans votre compte, dans l'en-tête Authorization: Bearer mg_live_.... La même clé sert au serveur MCP.

Premier appel
curl https://monitor-geo.fr/api/v1/balance \
  -H "Authorization: Bearer mg_live_..."
  • Réponse : { "data": …, "meta": { … } }. Erreur : { "error": { "code", "message", "details" } }, message en français.
  • Montants en centimes (*_cents) avec une version formatée (*_display, « 0,20 € »). Taux entre 0 et 1.
  • Horodatages ISO 8601 en UTC. Jours au format AAAA-MM-JJ, calculés à l'heure de Paris.
  • Pagination : paramètres limit (1 à 100) et cursor. La page suivante est donnée par meta.next_cursor, qui vaut null en fin de liste.
  • Export CSV : ajoutez format=csv aux listes de réponses et de citations. Séparateur point-virgule, UTF-8 avec BOM, décimales à virgule : le fichier s'ouvre directement dans Excel.
  • Idempotence : l'en-tête Idempotency-Key sur l'ajout de questions et la vérification immédiate rejoue la même réponse pendant 24 heures, sans nouveau débit.
  • Limites : 120 requêtes par minute par clé, 20 vérifications immédiates par heure. En-têtes X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, et Retry-After en cas de dépassement.
Codes d'erreur
400validation_errorDonnées invalides. Le détail par champ est dans error.details.
401unauthorizedClé API absente, invalide ou révoquée.
402insufficient_balanceSolde insuffisant pour une vérification immédiate.
404not_foundRessource introuvable, ou appartenant à un autre compte.
409conflictDoublon, par exemple un domaine déjà suivi.
409limit_reachedLimite atteinte : 50 projets, 200 questions par projet, 20 clés actives.
409idempotency_conflictClé d'idempotence déjà utilisée pour un autre corps, ou requête en cours.
429rate_limitedLimite de requêtes atteinte. Attendre la durée de l'en-tête Retry-After.
502provider_errorChatGPT n'a pas répondu à temps. Rien n'a été débité.
503payment_not_configuredPaiement indisponible sur ce serveur.

Cagnotte

GET/balance

Lire le solde

Solde de la cagnotte, coût du jour du suivi, autonomie estimée et état du suivi.

GratuitOutil MCP : get_balance

Exemple
curl "https://monitor-geo.fr/api/v1/balance" \
  -H "Authorization: Bearer mg_live_..."
Réponse 200, listes raccourcies
{
  "data": {
    "balance_cents": 2200,
    "balance_eur": 22,
    "balance_display": "22,00 €",
    "daily_cost_cents": 50,
    "daily_cost_display": "0,50 €",
    "estimated_days_left": 44,
    "autonomy_display": "environ 44 jours",
    "active_questions": 10,
    "tracking_paused": false,
    "question_day_price_cents": 5,
    "live_check_price_cents": 20
  },
  "meta": {}
}
GET/ledger

Lister les mouvements de la cagnotte

Recharges, solde offert et débits, du plus récent au plus ancien, avec le solde après chaque opération.

GratuitOutil MCP : list_ledgerPaginé

Paramètres de requête
NomTypeDescription
limitentier (1 à 100)Nombre d'éléments, de 1 à 100 (50 par défaut)
cursortexteCurseur renvoyé dans meta.next_cursor de la page précédente
Exemple
curl "https://monitor-geo.fr/api/v1/ledger?limit=20" \
  -H "Authorization: Bearer mg_live_..."
Réponse 200, listes raccourcies
{
  "data": [
    {
      "id": 102,
      "created_at": "2026-09-12T05:06:19+00:00",
      "kind": "debit_question_day",
      "description": "Suivi du 12 sept. : « Top des agences web à Saint-Étienne en 2026 ? »",
      "amount_cents": -5,
      "amount_display": "-0,05 €",
      "balance_after_cents": 2200,
      "balance_after_display": "22,00 €"
    },
    {
      "id": 101,
      "created_at": "2026-09-12T05:05:18+00:00",
      "kind": "debit_question_day",
      "description": "Suivi du 12 sept. : « Développeur web ou agence à Montbrison pour une application… »",
      "amount_cents": -5,
      "amount_display": "-0,05 €",
      "balance_after_cents": 2205,
      "balance_after_display": "22,05 €"
    }
  ],
  "meta": {
    "next_cursor": "eyJpZCI6MTAxfQ"
  }
}

Projets

GET/projects

Lister les projets

Projets du compte avec leurs taux de citation sur 7 et 30 jours et le nombre de questions suivies.

GratuitOutil MCP : list_projects

Paramètres de requête
NomTypeDescription
include_archived"true" | "false"true pour inclure les projets archivés
Exemple
curl "https://monitor-geo.fr/api/v1/projects" \
  -H "Authorization: Bearer mg_live_..."
Réponse 200, listes raccourcies
{
  "data": [
    {
      "id": "f025ea4f-1d38-403c-b6a7-7592f663cfe0",
      "name": "Agora Studio",
      "domain": "agora-studio.fr",
      "brand": "Agora Studio",
      "brand_aliases": [
        "agora-studio"
      ],
      "status": "active",
      "location_code": 2250,
      "language_code": "fr",
      "created_at": "2026-09-12T23:08:34.842051+00:00",
      "updated_at": "2026-09-12T23:08:34.842051+00:00",
      "active_questions": 10,
      "runs_done_7d": 180,
      "citation_rate_7d": 0.4,
      "citation_rate_prev_7d": 0.4,
      "citation_rate_30d": 0.4,
      "mention_rate_7d": 0.4
    }
  ],
  "meta": {}
}
POST/projects

Créer un projet

Un projet suit un domaine. Le domaine est normalisé (sans https ni www). La marque et ses variantes servent à détecter les mentions sans lien.

GratuitOutil MCP : create_project

Corps JSON
NomTypeDescription
domainobligatoiretexte (3 à 253 car.)Domaine du site suivi, par exemple agora-studio.fr
brandobligatoiretexteNom de marque tel qu'un client l'écrirait
brand_aliasesliste de texte, 0 à 20Variantes du nom de marque
nametexte (1 à 120 car.)Nom du projet, par défaut le domaine
Exemple
curl -X POST "https://monitor-geo.fr/api/v1/projects" \
  -H "Authorization: Bearer mg_live_..." \
  -H "Content-Type: application/json" \
  -d '{"domain":"exemple.fr","brand":"Exemple","brand_aliases":["Exemple SARL"]}'
Réponse 201, listes raccourcies
{
  "data": {
    "id": "96d48d02-2339-4ec3-8942-9caaac393659",
    "name": "exemple-doc-mtyzy5r0.fr",
    "domain": "exemple-doc-mtyzy5r0.fr",
    "brand": "Exemple",
    "brand_aliases": [],
    "status": "active",
    "location_code": 2250,
    "language_code": "fr",
    "created_at": "2026-09-12T23:08:48.220469+00:00",
    "updated_at": "2026-09-12T23:08:48.220469+00:00"
  },
  "meta": {}
}
GET/projects/{id}

Lire un projet

Détail d'un projet et ses indicateurs.

Gratuit

Paramètres de chemin
NomTypeDescription
idobligatoireuuidIdentifiant du projet
Exemple
curl "https://monitor-geo.fr/api/v1/projects/<project_id>" \
  -H "Authorization: Bearer mg_live_..."
Réponse 200, listes raccourcies
{
  "data": {
    "id": "f025ea4f-1d38-403c-b6a7-7592f663cfe0",
    "name": "Agora Studio",
    "domain": "agora-studio.fr",
    "brand": "Agora Studio",
    "brand_aliases": [
      "agora-studio"
    ],
    "status": "active",
    "location_code": 2250,
    "language_code": "fr",
    "created_at": "2026-09-12T23:08:34.842051+00:00",
    "updated_at": "2026-09-12T23:08:34.842051+00:00",
    "active_questions": 10,
    "runs_done_7d": 180,
    "citation_rate_7d": 0.4,
    "citation_rate_prev_7d": 0.4,
    "citation_rate_30d": 0.4,
    "mention_rate_7d": 0.4
  },
  "meta": {}
}
PATCH/projects/{id}

Modifier un projet

Nom, marque, variantes ou statut. Un projet en pause n'est plus interrogé ; un projet archivé disparaît de la liste.

GratuitOutil MCP : update_project

Paramètres de chemin
NomTypeDescription
idobligatoireuuidIdentifiant du projet
Corps JSON
NomTypeDescription
nametexte (1 à 120 car.)Nom du projet
brandtexte (1 à 120 car.)Nom de marque
brand_aliasesliste de texte, 0 à 20Variantes du nom de marque, remplacent la liste existante
status"active" | "paused" | "archived"active, paused ou archived
Exemple
curl -X PATCH "https://monitor-geo.fr/api/v1/projects/<project_id>" \
  -H "Authorization: Bearer mg_live_..." \
  -H "Content-Type: application/json" \
  -d '{"status":"paused"}'
Réponse 200, listes raccourcies
{
  "data": {
    "id": "f025ea4f-1d38-403c-b6a7-7592f663cfe0",
    "name": "Agora Studio",
    "domain": "agora-studio.fr",
    "brand": "Agora Studio",
    "brand_aliases": [
      "agora-studio"
    ],
    "status": "active",
    "location_code": 2250,
    "language_code": "fr",
    "created_at": "2026-09-12T23:08:34.842051+00:00",
    "updated_at": "2026-09-12T23:08:47.364826+00:00"
  },
  "meta": {}
}
GET/projects/{id}/report

Rapport d'un projet

Taux de citation et de mention, série journalière, tableau par question et part de voix des 20 domaines les plus cités.

GratuitOutil MCP : get_project_report

Paramètres de chemin
NomTypeDescription
idobligatoireuuidIdentifiant du projet
Paramètres de requête
NomTypeDescription
days"7" | "30" | "90"Période en jours : 7, 30 ou 90 (30 par défaut)
Exemple
curl "https://monitor-geo.fr/api/v1/projects/<project_id>/report?days=30" \
  -H "Authorization: Bearer mg_live_..."
Réponse 200, listes raccourcies
{
  "data": {
    "project": {
      "id": "f025ea4f-1d38-403c-b6a7-7592f663cfe0",
      "name": "Agora Studio",
      "domain": "agora-studio.fr",
      "brand": "Agora Studio",
      "brand_aliases": [
        "agora-studio"
      ],
      "status": "active",
      "location_code": 2250,
      "language_code": "fr",
      "created_at": "2026-09-12T23:08:34.842051+00:00",
      "updated_at": "2026-09-12T23:08:47.364826+00:00"
    },
    "days": 7,
    "runs_done": 180,
    "runs_cited": 72,
    "runs_mentioned": 72,
    "citation_rate": 0.4,
    "mention_rate": 0.4,
    "avg_best_position": 3.1,
    "local_block_rate": 0.7667,
    "series": [
      {
        "day": "2026-09-07",
        "runs_done": 30,
        "runs_cited": 12,
        "runs_mentioned": 12,
        "citation_rate": 0.4
      },
      {
        "day": "2026-09-08",
        "runs_done": 30,
        "runs_cited": 12,
        "runs_mentioned": 12,
        "citation_rate": 0.4
      }
    ],
    "questions": [
      {
        "id": "6ba0b1cb-a8cc-4d3c-a484-4bee0a1bf0fb",
        "text": "Quelle agence web choisir à Montbrison pour créer un site internet ?",
        "status": "active",
        "runs_done": 18,
        "citation_rate": 1,
        "mention_rate": 1,
        "best_position": 2,
        "last_run_at": "2026-09-12T17:03:10+00:00"
      },
      {
        "id": "e46cfc74-0c4e-47f0-8410-564aa40c61b6",
        "text": "Meilleure agence web dans la Loire (42) pour un site vitrine d'artisan ?",
        "status": "active",
        "runs_done": 18,
        "citation_rate": 0,
        "mention_rate": 0,
        "best_position": null,
        "last_run_at": "2026-09-12T17:04:11+00:00"
      }
    ],
    "share_of_voice": [
      {
        "domain": "siteline.fr",
        "runs_cited": 96,
        "share": 0.5333,
        "avg_position": 2.8,
        "is_owner": false
      },
      {
        "domain": "agora-studio.fr",
        "runs_cited": 72,
        "share": 0.4,
        "avg_position": 3.1,
        "is_owner": true
      }
    ]
  },
  "meta": {}
}

Questions

GET/projects/{id}/questions

Lister les questions d'un projet

Questions du projet (hors archivées par défaut) avec leurs taux sur 7 jours.

GratuitOutil MCP : list_questions

Paramètres de chemin
NomTypeDescription
idobligatoireuuidIdentifiant du projet
Paramètres de requête
NomTypeDescription
status"active" | "paused" | "archived"active, paused ou archived
Exemple
curl "https://monitor-geo.fr/api/v1/projects/<project_id>/questions?status=active" \
  -H "Authorization: Bearer mg_live_..."
Réponse 200, listes raccourcies
{
  "data": [
    {
      "id": "6ba0b1cb-a8cc-4d3c-a484-4bee0a1bf0fb",
      "project_id": "f025ea4f-1d38-403c-b6a7-7592f663cfe0",
      "text": "Quelle agence web choisir à Montbrison pour créer un site internet ?",
      "status": "active",
      "created_at": "2026-09-02T07:00:00+00:00",
      "citation_rate_7d": 1,
      "mention_rate_7d": 1,
      "best_position_7d": 2,
      "runs_done_7d": 18,
      "last_run_at": "2026-09-12T17:03:10+00:00"
    },
    {
      "id": "e46cfc74-0c4e-47f0-8410-564aa40c61b6",
      "project_id": "f025ea4f-1d38-403c-b6a7-7592f663cfe0",
      "text": "Meilleure agence web dans la Loire (42) pour un site vitrine d'artisan ?",
      "status": "active",
      "created_at": "2026-09-02T07:00:00+00:00",
      "citation_rate_7d": 0,
      "mention_rate_7d": 0,
      "best_position_7d": null,
      "runs_done_7d": 18,
      "last_run_at": "2026-09-12T17:04:11+00:00"
    }
  ],
  "meta": {}
}
POST/projects/{id}/questions

Ajouter des questions

Ajout en lot, 50 questions au maximum par appel. Les doublons sont ignorés et listés. Accepte l'en-tête Idempotency-Key.

Coût : 0,05 € par question et par jour de suiviOutil MCP : add_questions

Paramètres de chemin
NomTypeDescription
idobligatoireuuidIdentifiant du projet
Corps JSON
NomTypeDescription
questionsobligatoireliste de texte, 1 à 50Questions en langage naturel, 10 à 500 caractères chacune. Pour une recherche locale, mettre la ville dans la question.
Exemple
curl -X POST "https://monitor-geo.fr/api/v1/projects/<project_id>/questions" \
  -H "Authorization: Bearer mg_live_..." \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"questions":["Quel plombier appeler en urgence à Lyon ?","Plombier chauffagiste à Lyon, lequel choisir ?"]}'
Réponse 201, listes raccourcies
{
  "data": {
    "created": [],
    "skipped_duplicates": [
      "Agora Studio à Montbrison, c'est quoi comme agence ?"
    ],
    "new_daily_cost_cents": 50,
    "new_daily_cost_display": "0,50 €",
    "estimated_days_left": 44,
    "autonomy_display": "environ 44 jours"
  },
  "meta": {}
}
PATCH/questions/{id}

Changer le statut d'une question

Mettre en pause, reprendre ou archiver une question.

GratuitOutil MCP : set_question_status

Paramètres de chemin
NomTypeDescription
idobligatoireuuidIdentifiant de la question
Corps JSON
NomTypeDescription
statusobligatoire"active" | "paused" | "archived"
Exemple
curl -X PATCH "https://monitor-geo.fr/api/v1/questions/<question_id>" \
  -H "Authorization: Bearer mg_live_..." \
  -H "Content-Type: application/json" \
  -d '{"status":"paused"}'
Réponse 200, listes raccourcies
{
  "data": {
    "updated": 1
  },
  "meta": {}
}
POST/questions/status

Changer le statut de plusieurs questions

Mise en pause, reprise ou archivage en lot, 200 questions au maximum.

GratuitOutil MCP : set_question_status

Corps JSON
NomTypeDescription
question_idsobligatoireliste de uuid, 1 à 200Identifiants des questions
statusobligatoire"active" | "paused" | "archived"active, paused ou archived
Exemple
curl -X POST "https://monitor-geo.fr/api/v1/questions/status" \
  -H "Authorization: Bearer mg_live_..." \
  -H "Content-Type: application/json" \
  -d '{"question_ids":["<question_id>","<question_id>"],"status":"archived"}'
Réponse 200, listes raccourcies
{
  "data": {
    "updated": 1
  },
  "meta": {}
}
GET/questions/{id}/report

Rapport d'une question

Taux, série journalière, 10 domaines les plus cités et 5 dernières réponses.

GratuitOutil MCP : get_question_report

Paramètres de chemin
NomTypeDescription
idobligatoireuuidIdentifiant de la question
Paramètres de requête
NomTypeDescription
days"7" | "30" | "90"Période en jours : 7, 30 ou 90 (30 par défaut)
Exemple
curl "https://monitor-geo.fr/api/v1/questions/<question_id>/report?days=7" \
  -H "Authorization: Bearer mg_live_..."
Réponse 200, listes raccourcies
{
  "data": {
    "question": {
      "id": "91aa6a87-cbac-4985-ad57-929b63b744a1",
      "project_id": "f025ea4f-1d38-403c-b6a7-7592f663cfe0",
      "text": "Agora Studio à Montbrison, c'est quoi comme agence ?",
      "status": "active"
    },
    "project": {
      "id": "f025ea4f-1d38-403c-b6a7-7592f663cfe0",
      "name": "Agora Studio",
      "domain": "agora-studio.fr"
    },
    "days": 7,
    "runs_done": 18,
    "runs_cited": 18,
    "runs_mentioned": 18,
    "citation_rate": 1,
    "mention_rate": 1,
    "best_position": 1,
    "series": [
      {
        "day": "2026-09-07",
        "runs_done": 3,
        "runs_cited": 3,
        "citation_rate": 1,
        "runs_mentioned": 3
      },
      {
        "day": "2026-09-08",
        "runs_done": 3,
        "runs_cited": 3,
        "citation_rate": 1,
        "runs_mentioned": 3
      }
    ],
    "top_domains": [
      {
        "domain": "agora-studio.fr",
        "runs_cited": 18,
        "share": 1,
        "avg_position": 1,
        "is_owner": true
      },
      {
        "domain": "fr.linkedin.com",
        "runs_cited": 18,
        "share": 1,
        "avg_position": 2,
        "is_owner": false
      }
    ],
    "recent_runs": [
      {
        "run_id": "b64ecef1-e9f2-48e6-9ffd-3033aafce64a",
        "day": "2026-09-12",
        "completed_at": "2026-09-12T17:04:17+00:00",
        "mode": "scheduled",
        "cited": true,
        "mentioned": true,
        "position": 1
      },
      {
        "run_id": "27a347f2-e63e-4e1f-bad4-93c94360d7a2",
        "day": "2026-09-12",
        "completed_at": "2026-09-12T11:04:17+00:00",
        "mode": "scheduled",
        "cited": true,
        "mentioned": true,
        "position": 1
      }
    ]
  },
  "meta": {}
}

Réponses

GET/projects/{id}/citations

Exporter les citations d'un projet

Chaque source citée par ChatGPT sur les questions du projet, avec sa position. Filtrable par période et par domaine.

GratuitPaginéCSV possible

Paramètres de chemin
NomTypeDescription
idobligatoireuuidIdentifiant du projet
Paramètres de requête
NomTypeDescription
fromtextePremier jour inclus, AAAA-MM-JJ
totexteDernier jour inclus, AAAA-MM-JJ
domaintexteNe garder qu'un domaine, par exemple exemple.fr
format"json" | "csv"csv pour un export ouvrable dans Excel (séparateur ;, UTF-8 avec BOM)
limitentier (1 à 100)Nombre d'éléments, de 1 à 100 (50 par défaut)
cursortexteCurseur renvoyé dans meta.next_cursor de la page précédente
Exemple
curl "https://monitor-geo.fr/api/v1/projects/<project_id>/citations?from=2026-09-01&format=csv" \
  -H "Authorization: Bearer mg_live_..."
Réponse 200, listes raccourcies
{
  "data": [
    {
      "id": 3540,
      "run_id": "6e6b1370-a210-45df-93b9-f82933002ece",
      "question_id": "29218bde-6b80-4669-ab45-be2a781d4250",
      "question_text": "Top des agences web à Saint-Étienne en 2026 ?",
      "day": "2026-09-12",
      "position": 18,
      "url": "https://digitelo-saint-etienne.com/",
      "domain": "digitelo-saint-etienne.com",
      "title": "Digitelo Saint-Etienne",
      "kind": "local_business",
      "is_owner": false,
      "origin": "search",
      "rating": 5,
      "votes_count": 4
    },
    {
      "id": 3539,
      "run_id": "6e6b1370-a210-45df-93b9-f82933002ece",
      "question_id": "29218bde-6b80-4669-ab45-be2a781d4250",
      "question_text": "Top des agences web à Saint-Étienne en 2026 ?",
      "day": "2026-09-12",
      "position": 17,
      "url": "https://www.annickdv.fr/",
      "domain": "annickdv.fr",
      "title": "Annick DV – SEO & Wix Studio",
      "kind": "local_business",
      "is_owner": false,
      "origin": "search",
      "rating": 4.9,
      "votes_count": 14
    }
  ],
  "meta": {
    "next_cursor": "eyJpZCI6MzUzOX0"
  }
}
GET/questions/{id}/runs

Lister les réponses d'une question

Chaque passage de ChatGPT sur la question, du plus récent au plus ancien, avec le résultat pour votre site.

GratuitPaginéCSV possible

Paramètres de chemin
NomTypeDescription
idobligatoireuuidIdentifiant de la question
Paramètres de requête
NomTypeDescription
fromtextePremier jour inclus, AAAA-MM-JJ
totexteDernier jour inclus, AAAA-MM-JJ
format"json" | "csv"csv pour un export ouvrable dans Excel (séparateur ;, UTF-8 avec BOM)
limitentier (1 à 100)Nombre d'éléments, de 1 à 100 (50 par défaut)
cursortexteCurseur renvoyé dans meta.next_cursor de la page précédente
Exemple
curl "https://monitor-geo.fr/api/v1/questions/<question_id>/runs?limit=50" \
  -H "Authorization: Bearer mg_live_..."
Réponse 200, listes raccourcies
{
  "data": [
    {
      "run_id": "b64ecef1-e9f2-48e6-9ffd-3033aafce64a",
      "question_id": "91aa6a87-cbac-4985-ad57-929b63b744a1",
      "day": "2026-09-12",
      "slot": 3,
      "mode": "scheduled",
      "status": "done",
      "created_at": "2026-09-12T17:05:00+00:00",
      "completed_at": "2026-09-12T17:04:17+00:00",
      "model_name": null,
      "owner_cited": true,
      "owner_mentioned": true,
      "owner_best_position": 1,
      "sources_count": 2,
      "has_local_block": true,
      "error": null
    },
    {
      "run_id": "27a347f2-e63e-4e1f-bad4-93c94360d7a2",
      "question_id": "91aa6a87-cbac-4985-ad57-929b63b744a1",
      "day": "2026-09-12",
      "slot": 2,
      "mode": "scheduled",
      "status": "done",
      "created_at": "2026-09-12T11:05:00+00:00",
      "completed_at": "2026-09-12T11:04:17+00:00",
      "model_name": null,
      "owner_cited": true,
      "owner_mentioned": true,
      "owner_best_position": 1,
      "sources_count": 2,
      "has_local_block": true,
      "error": null
    }
  ],
  "meta": {
    "next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNi0wOS0xMlQxMTowNTowMCswMDowMCIsImlkIjoiMjdhMzQ3ZjItZTYzZS00ZTFmLWJhZDQtOTNjOTQzNjBkN2EyIn0"
  }
}
GET/runs/{id}

Lire une réponse complète

Texte de la réponse de ChatGPT en markdown, sources dans l'ordre, bloc d'entreprises locales et résultat pour votre site.

GratuitOutil MCP : get_answer

Paramètres de chemin
NomTypeDescription
idobligatoireuuidIdentifiant du run
Exemple
curl "https://monitor-geo.fr/api/v1/runs/<run_id>" \
  -H "Authorization: Bearer mg_live_..."
Réponse 200, listes raccourcies
{
  "data": {
    "run_id": "b64ecef1-e9f2-48e6-9ffd-3033aafce64a",
    "question_id": "91aa6a87-cbac-4985-ad57-929b63b744a1",
    "question_text": "Agora Studio à Montbrison, c'est quoi comme agence ?",
    "project_id": "f025ea4f-1d38-403c-b6a7-7592f663cfe0",
    "project_domain": "agora-studio.fr",
    "mode": "scheduled",
    "status": "done",
    "day": "2026-09-12",
    "datetime": "2026-09-12T17:04:17+00:00",
    "model_name": null,
    "check_url": "https://chatgpt.com/?prompt=Agora%20Studio%20%C3%A0%20Montbrison%2C%20c%27est%20quoi%20comme%20agence%20%3F&hints=search",
    "markdown": "- **Agora Studio** - 12 Rue de la République, 42600 Montbrison, France\n\nOui. [Agora Studio](https://www.agora-studio.fr/?utm_source=gmb) à Montbrison est **u…",
    "owner_cited": true,
    "owner_mentioned": true,
    "owner_best_position": 1,
    "sources": [
      {
        "position": 1,
        "url": "https://www.agora-studio.fr/",
        "domain": "agora-studio.fr",
        "title": "Agence web dans la Loire | Sites, SEO et apps - Agora Studio",
        "kind": "source",
        "is_owner": true,
        "origin": "search",
        "rating": null,
        "votes_count": null
      },
      {
        "position": 2,
        "url": "https://fr.linkedin.com/company/agorastudioweb",
        "domain": "fr.linkedin.com",
        "title": "Agora Studio - Agence Web | LinkedIn",
        "kind": "source",
        "is_owner": false,
        "origin": "search",
        "rating": null,
        "votes_count": null
      }
    ],
    "local_businesses": [
      {
        "title": "Agora Studio",
        "description": "Concepteur de sites Web",
        "address": "12 Rue de la République, 42600 Montbrison, France",
        "phone": "+33756927450",
        "url": "https://www.agora-studio.fr/?utm_source=gmb",
        "domain": "agora-studio.fr",
        "rating": 5,
        "votes_count": 41,
        "is_owner": true
      }
    ]
  },
  "meta": {}
}
POST/checks

Vérifier une question maintenant

Pose la question à ChatGPT immédiatement et renvoie la réponse, en moins de deux minutes. Envoyez question_id, ou project_id et question. Une question libre est rattachée au projet sans être suivie chaque jour. Accepte l'en-tête Idempotency-Key.

Coût : 0,20 € par vérification réussieOutil MCP : check_now

Corps JSON, forme 1
NomTypeDescription
question_idobligatoireuuidQuestion existante à vérifier
Corps JSON, forme 2
NomTypeDescription
project_idobligatoireuuidProjet de rattachement
questionobligatoiretexteQuestion libre, rattachée au projet sans suivi quotidien
Exemple
curl -X POST "https://monitor-geo.fr/api/v1/checks" \
  -H "Authorization: Bearer mg_live_..." \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"question_id":"<question_id>"}'
Réponse 200, listes raccourcies
{
  "data": {
    "run_id": "b64ecef1-e9f2-48e6-9ffd-3033aafce64a",
    "question_id": "91aa6a87-cbac-4985-ad57-929b63b744a1",
    "question_text": "Agora Studio à Montbrison, c'est quoi comme agence ?",
    "project_id": "f025ea4f-1d38-403c-b6a7-7592f663cfe0",
    "project_domain": "agora-studio.fr",
    "mode": "live",
    "status": "done",
    "day": "2026-09-12",
    "datetime": "2026-09-12T17:04:17+00:00",
    "model_name": null,
    "check_url": "https://chatgpt.com/?prompt=Agora%20Studio%20%C3%A0%20Montbrison%2C%20c%27est%20quoi%20comme%20agence%20%3F&hints=search",
    "markdown": "- **Agora Studio** - 12 Rue de la République, 42600 Montbrison, France\n\nOui. [Agora Studio](https://www.agora-studio.fr/?utm_source=gmb) à Montbrison est **u…",
    "owner_cited": true,
    "owner_mentioned": true,
    "owner_best_position": 1,
    "sources": [
      {
        "position": 1,
        "url": "https://www.agora-studio.fr/",
        "domain": "agora-studio.fr",
        "title": "Agence web dans la Loire | Sites, SEO et apps - Agora Studio",
        "kind": "source",
        "is_owner": true,
        "origin": "search",
        "rating": null,
        "votes_count": null
      },
      {
        "position": 2,
        "url": "https://fr.linkedin.com/company/agorastudioweb",
        "domain": "fr.linkedin.com",
        "title": "Agora Studio - Agence Web | LinkedIn",
        "kind": "source",
        "is_owner": false,
        "origin": "search",
        "rating": null,
        "votes_count": null
      }
    ],
    "local_businesses": [
      {
        "title": "Agora Studio",
        "description": "Concepteur de sites Web",
        "address": "12 Rue de la République, 42600 Montbrison, France",
        "phone": "+33756927450",
        "url": "https://www.agora-studio.fr/?utm_source=gmb",
        "domain": "agora-studio.fr",
        "rating": 5,
        "votes_count": 41,
        "is_owner": true
      }
    ],
    "cost_cents": 20,
    "cost_display": "0,20 €"
  },
  "meta": {}
}