API et MCP : vos agents IA peuvent travailler avec nous

Vos agents IA (ChatGPT, Claude, Claude Code, Cursor…) peuvent commander un test, suivre vos campagnes et lire vos rapports, par une API REST ou un serveur MCP, avec une clé API personnelle. Le paiement reste toujours fait par vous.

Le parcours en 3 temps

  1. 1. Vous vous connectez une fois et générez la clé

    Connexion Google sur playtesterhub.com, puis « Mon espace » > « Vos agents IA » > « Générer ma clé en un clic ». La configuration MCP est prête à copier.

  2. 2. Votre agent commande, vous payez le lien

    L'agent crée la commande (offre, nom de l'app, package ou lien d'inscription) et reçoit un lien de paiement Stripe. Vous l'ouvrez et payez : rien n'est débité avant.

  3. 3. Votre agent suit le test et lit les rapports

    La campagne apparaît dans votre espace et pour l'agent. Après l'ajout du groupe de testeurs dans la Play Console, l'agent confirme l'accès, puis suit la progression et lit les rapports.

Connecter ChatGPT / Claude en un clic

Pas de clé à copier : ChatGPT, Claude.ai et Claude Desktop se connectent par OAuth. Vous collez l'adresse du serveur, vous vous connectez avec Google sur PlayTesterHub et vous cliquez sur « Autoriser ».

Adresse à coller

https://playtesterhub.com/api/mcp

ChatGPT

  1. Paramètres > Applications et connecteurs > Paramètres avancés : activez le mode développeur (selon votre abonnement).
  2. Créez une application (connecteur) : nom PlayTesterHub, URL du serveur MCP ci-dessus, authentification OAuth.
  3. Connectez-vous avec Google sur PlayTesterHub, puis cliquez sur « Autoriser ».

Claude.ai et Claude Desktop

  1. Paramètres > Connecteurs > « Ajouter un connecteur personnalisé ».
  2. Nom PlayTesterHub, URL ci-dessus, puis « Ajouter » et « Se connecter ».
  3. Connectez-vous avec Google sur PlayTesterHub, puis cliquez sur « Autoriser ». Le connecteur est aussi disponible dans Claude Desktop.

Les intitulés peuvent varier selon la version de l'application. L'accès donne les mêmes droits qu'une clé API ; vous le retirez à tout moment dans « Mon espace » > « Vos agents IA » > « Applications connectées ».

Ce que vos agents peuvent lire

  • Vos campagnes, leur statut et leur progression (jour du test sur 14).
  • Le message de l'équipe affiché en tête de la campagne.
  • Les rapports compris dans votre offre : récap complet tous les 3 jours et rapport final (Premium, Premium+), rapports quotidiens par appareil (Premium+ : 12 par jour, 168 sur le test).
  • Chaque rapport contient un texte lisible (body) et des données structurées (data, en JSON).

1. Créer une clé API

  1. Connectez-vous et ouvrez « Mon espace », section « Vos agents IA ».
  2. Créez une clé et copiez-la : elle n'est affichée qu'une fois. Nous n'en gardons qu'une empreinte.
  3. Révoquez-la à tout moment depuis la même section.
Ouvrir mon espace

2. API REST

Base : https://playtesterhub.com/api/v1 — réponses JSON, en-tête Authorization: Bearer <votre clé>.

GET /api/v1/campaigns
Vos campagnes, avec statut, offre, progression, message et nombre de rapports.
GET /api/v1/campaigns/{id}
Une campagne.
GET /api/v1/campaigns/{id}/reports
Les rapports d'une campagne, jour le plus récent en premier.
GET /api/v1/reports/{id}
Un rapport.
GET /api/v1/campaigns/{id}/devices
État des 12 appareils : modèle (la marque seulement, ex. Samsung), appli installée, ouverte aujourd'hui, dernière action (seulement ce que notre équipe a relevé).
GET /api/v1/campaigns/{id}/tips
Nos conseils pour améliorer l'app (toutes offres), le plus récent en premier.
POST /api/v1/campaigns/{id}/updates
Vous avez publié une nouvelle version dans votre test fermé : nous l'installons sur les 12 appareils de votre test. { version_label?, notes? } ; test en cours, une seule demande en attente à la fois. GET pour suivre la progression (X/12).
GET /api/v1/messages
Votre conversation avec notre équipe (la même que la bulle du site), plus ancien en premier ; since et limit facultatifs.
POST /api/v1/messages
Écrit à notre équipe : { body, campaign_id? } (4000 caractères max).
GET /api/v1/notifications
Vos notifications : réponse de l'équipe, changement d'étape, conseil, rapport, téléphones ; unread=true pour les non lues.
POST /api/v1/notifications/read
Marque des notifications comme lues : { ids: [...] } ou { all: true }.
POST /api/v1/orders
Crée une commande et renvoie le lien de paiement Stripe (checkout_url) à transmettre à l'humain.
GET /api/v1/orders/{id}
Statut d'une commande (pending_payment, paid, expired), lien de paiement encore ouvert et campaign_id une fois payée.
GET /api/v1/orders
Vos commandes.
POST /api/v1/campaigns/{id}/confirm-access
Confirme que le groupe de testeurs a été ajouté au test fermé (étape awaiting_access).
POST /api/v1/campaigns/{id}/promo-codes
Appli payante : envoie vos 12 codes promo Google Play (un par téléphone ; Play Console › Monétiser › Promotions › Créer une promotion › Code promo, gratuit). { app_pricing?: free|paid, codes?: [...], replace? } : les codes s'ajoutent aux précédents, replace=true remplace ceux non utilisés. GET pour relire vos codes (reçus, utilisés, restants). Visibles par vous et notre équipe seulement.
GET /api/v1/me
Vérifie la clé (email du compte).

Filtres des rapports : kind=final|daily|recap, scope=campaign|device, device=1-12, day=1-14, since=<date ISO 8601>, limit (1-200, 50 par défaut), offset.

Exemple

curl -s https://playtesterhub.com/api/v1/campaigns \
  -H "Authorization: Bearer pth_..."

curl -s "https://playtesterhub.com/api/v1/campaigns/42/reports?scope=device&day=3" \
  -H "Authorization: Bearer pth_..."

Commander avec un agent

POST /api/v1/orders (ou l'outil MCP create_order), corps JSON :

  • offer : standard (15 €), premium (25 €) ou premium_plus (40 €), aux prix affichés sur le site.
  • app_name : nom de l'app.
  • package_name (ex. com.exemple.app) ou play_link : lien d'inscription au test fermé https://play.google.com/apps/testing/<package> (le lien de la fiche avec ?id= est aussi accepté).
  • locale : fr ou en (langue de la page de paiement), facultatif.
  • app_pricing : free ou paid (tarif de l'app sur Google Play), facultatif. Appli payante : envoyez ensuite 12 codes promo (promo-codes / submit_promo_codes).
  • accept_cgv et waive_withdrawal : true, seulement après accord de l'humain.

Le consentement vient de vous : votre agent doit vous demander d'accepter les CGV et le démarrage immédiat de la prestation avant d'envoyer accept_cgv et waive_withdrawal. La page de paiement Stripe le rappelle. Au plus 5 commandes non payées par 24 h.

curl -s -X POST https://playtesterhub.com/api/v1/orders \
  -H "Authorization: Bearer pth_..." -H "Content-Type: application/json" \
  -d '{"offer":"premium","app_name":"My App","package_name":"com.example.myapp",
       "locale":"en","accept_cgv":true,"waive_withdrawal":true}'

# 201 → { "order": { "id": 51, "status": "pending_payment", "checkout_url": "https://checkout.stripe.com/...", ... },
#         "next_steps": [...] }

curl -s -X POST https://playtesterhub.com/api/v1/campaigns/42/confirm-access \
  -H "Authorization: Bearer pth_..."

Une fois le lien payé, la campagne apparaît comme les autres (statut awaiting_access) avec l'adresse du groupe de testeurs (tester_group_email). Ajoutez-la comme testeurs de votre test fermé (France cochée), puis l'agent appelle confirm-access : notre équipe vérifie l'accès et lance le test en moins de 8 h après cette confirmation, même la nuit ou le week-end.

3. Serveur MCP

Adresse : https://playtesterhub.com/api/mcp (HTTP streamable), même clé API dans l'en-tête Authorization. Outils disponibles :

  • create_order — crée une commande et renvoie le lien de paiement que vous payez
  • get_order — statut d'une commande (payée ou non, campagne créée)
  • list_orders — vos commandes
  • confirm_access — confirme l'ajout du groupe de testeurs au test fermé
  • list_campaigns — liste vos campagnes
  • get_campaign — détail d'une campagne (statut, progression, message)
  • list_reports — rapports d'une campagne, avec les mêmes filtres que l'API
  • get_report — un rapport complet
  • list_devices — état des 12 téléphones de la campagne
  • list_tips — nos conseils pour la campagne
  • request_update — déploie votre nouvelle version sur vos 12 testeurs
  • submit_promo_codes — appli payante : envoie vos 12 codes promo Google Play (et le tarif free | paid)
  • list_messages — votre conversation avec notre équipe
  • send_message — écrit à notre équipe (rattachement à une campagne facultatif)
  • list_notifications — vos notifications (non lues ou toutes)
  • mark_notifications_read — marque des notifications comme lues

Configuration

Claude Code

claude mcp add --transport http playtesterhub https://playtesterhub.com/api/mcp \
  --header "Authorization: Bearer pth_..."

Claude Desktop (via mcp-remote, Node.js requis)

{
  "mcpServers": {
    "playtesterhub": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://playtesterhub.com/api/mcp",
               "--header", "Authorization:${PTH_AUTH}"],
      "env": { "PTH_AUTH": "Bearer pth_..." }
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "playtesterhub": {
      "url": "https://playtesterhub.com/api/mcp",
      "headers": { "Authorization": "Bearer pth_..." }
    }
  }
}

Remplacez pth_… par votre clé. Ne la publiez pas dans un dépôt de code.

Format d'un rapport

Un rapport par appareil indique le numéro de l'appareil dans votre test (1 à 12), sa marque et le jour du test. Le contenu de data dépend du rapport ; lisez-le comme du JSON libre.

{
  "id": 1234,
  "campaign_id": 42,
  "kind": "daily",
  "scope": "device",
  "device": { "slot": 3, "model": "Google Pixel" },
  "test_day": 3,
  "body": "Cold start 1.8 s, no crash. ...",
  "data": { "...": "..." },
  "source": "agent",
  "created_at": "2026-10-14T18:00:00.000Z",
  "updated_at": "2026-10-14T18:00:00.000Z"
}

Bon à savoir

  • Un agent peut créer une commande, mais jamais la payer : seul le lien Stripe, ouvert par vous, déclenche un paiement.
  • En dehors des commandes, de la confirmation d'accès, des nouvelles versions, des codes promo et des messages, l'API et le MCP sont en lecture seule.
  • Une clé donne accès aux campagnes de votre compte uniquement (même adresse email).
  • Jusqu'à 10 clés actives par compte.
  • Connexion OAuth (ChatGPT, Claude) : jeton d'accès valable 1 h, renouvelé automatiquement par l'application ; accès révocable dans votre espace.