Phano Platform

Documentation API et MCP

Branchez l'intelligence composite de Phano dans vos outils. Comptes à risque et signaux d'expansion, livrés là où vos équipes Customer Success et Account Management travaillent déjà.

RESTMCPDonnées pré-calculéesLecture seule
Contrat OpenAPI complet (à importer dans Postman, Insomnia ou un agent)

Il vous faut une clé API ? L'essai gratuit donne accès à l'API et au MCP. Créer un compte

Fondations

Commun aux deux voies

Une seule clé API, les mêmes scopes, les mêmes erreurs et les mêmes limites s'appliquent que vous passiez par REST ou par MCP.

Authentification et scopesCommun

Toutes les requêtes (REST et MCP) s'authentifient avec la même clé, dans le headerAuthorization :

Authorization: Bearer pk_live_xxxx

Créez la clé dans Paramètres > Clés API (affichée une seule fois). Les scopes déterminent ce que la clé peut lire. Une clé sansread:stakeholdersreçoit les comptes et diagnostics, mais les noms des contacts sont masqués.

ScopeDescriptionEndpoints
read:portfolioRésumé et risques du portefeuille/v1/portfolio/summary, /v1/portfolio/risks
read:accountsListe et intelligence des comptes/v1/accounts, /v1/accounts/{id}/intelligence
read:stakeholdersNoms et rôles des contacts (masqués sans ce scope)Toute réponse contenant des stakeholders
read:allToutes les permissions + /v1/statusTous les endpoints + /v1/status

ErreursCommun

Format stable : { "error": { "code", "message" } }. En MCP, ces erreurs sont renvoyées via les codes JSON-RPC correspondants (par exemple scope insuffisant = -32003).

CodeHTTPDescription
unauthorized401Clé API invalide, révoquée ou expirée
forbidden403Scope insuffisant pour cet endpoint
validation_error400Paramètre invalide (format, valeur)
not_found404Ressource introuvable
rate_limit_exceeded429Limite de requêtes dépassée (voir Retry-After)
internal_error500Erreur serveur

Limites de débitCommun

3 niveaux de limitation :

  • Burst : 50 requêtes / 10 secondes par clé
  • Quotidien : 10 000 requêtes / jour par organisation
  • Circuit breaker : 429 temporaire (Retry-After 60s) si plus de 50% d'erreurs 5xx sur 1 minute

En-têtes de réponse :

  • X-RateLimit-Limit : limite burst
  • X-RateLimit-Remaining : requêtes restantes
  • X-RateLimit-Reset : epoch de reset
  • X-RateLimit-Limit-Daily : quota quotidien (10 000)
  • Retry-After : secondes avant retry (si 429)

Voie 1

API REST

Des endpoints HTTP GET en lecture seule. Pour vos scripts, vos automatisations no-code et vos tableurs.

Démarrage en 60 secondes

1. Créez votre clé API

Dans Paramètres > Clés API. Choisissez les scopes utiles. La clé n'est affichée qu'une seule fois.

2. Faites votre premier appel

curl -H "Authorization: Bearer <votre-cle-api>" \
  https://phano.ai/api/v1/portfolio/summary

3. Lisez la réponse

Chaque réponse suit la même enveloppe : data (le contenu) etmeta (fraîcheur et identifiant de requête).

{
  "data": {
    "total_arr": 1250000,
    "total_arr_display": "1 250 000 EUR",
    "total_accounts": 42,
    "health_distribution": {
      "critical": { "count": 5, "percentage": 12 },
      "warning":  { "count": 9, "percentage": 21 },
      "healthy":  { "count": 28, "percentage": 67 }
    },
    "diagnostics_by_severity": { "critical": 3, "high": 7, "opportunity": 4 }
  },
  "meta": {
    "computed_at": "2026-06-08T04:35:00Z",
    "freshness": "il y a 6h",
    "composite_in_progress": false,
    "request_id": "b1f2..."
  }
}

Référence REST

Base : https://phano.ai/api/v1. Le contrat machine complet (schémas de réponse, types) est sur openapi.json.

EndpointScopeDescription
GET/portfolio/summaryread:portfolioARR total, distribution santé, renouvellements, diagnostics par sévérité
GET/portfolio/risksread:portfolioComptes à risque triés par sévérité puis confiance
GET/accountsread:accountsListe des comptes (filtres + pagination cursor)
GET/accounts/{id}/intelligenceread:accountsDiagnostic, stakeholders et santé d'un compte
GET/statusread:allDernier composite, comptes analysés, connexions

Filtres disponibles sur /accounts

  • phase : engagement, disengagement, silence, rupture, churn
  • health_min / health_max : score de santé (0 à 100)
  • search : recherche par nom (min 2 caractères)
  • limit : 1 à 100 (défaut 20), cursor : pagination

Enchaîner deux appels : du portefeuille à un compte

Les endpoints par compte attendent un id. Récupérez-le d'abord via la liste, puis demandez l'intelligence détaillée.

# 1. Lister les comptes (récupérer un id)
curl -H "Authorization: Bearer <votre-cle-api>" \
  "https://phano.ai/api/v1/accounts?limit=5"

# 2. Intelligence d'un compte précis
curl -H "Authorization: Bearer <votre-cle-api>" \
  https://phano.ai/api/v1/accounts/<id>/intelligence

Exemple complet (Python)

import requests

headers = {"Authorization": "Bearer <votre-cle-api>"}
r = requests.get("https://phano.ai/api/v1/portfolio/risks", headers=headers)
risks = r.json()["data"]

for risk in risks:
    print(f"{risk['account']['name']}: {risk['diagnostic']['severity_display']}")

Exemple complet (JavaScript)

const res = await fetch("https://phano.ai/api/v1/portfolio/risks", {
  headers: { Authorization: "Bearer <votre-cle-api>" }
});
const { data: risks } = await res.json();
risks.forEach(r => console.log(r.account.name, r.diagnostic.severity_display));

Pagination

Les listes utilisent une pagination cursor-based. Paramètres :limit (défaut 20, max 100) etcursor (opaque, fourni par la réponse).

# Page 1
GET /accounts?limit=10

# Page 2 : réutilisez meta.next_cursor de la réponse précédente
GET /accounts?limit=10&cursor=eyJkYSI6IjIwMjYt...

Quand meta.next_cursor vaut null, c'est la dernière page.

Voie 2

MCP (agents IA)

Le même backend exposé comme outils que l'agent appelle lui-même, en JSON-RPC, sans écrire de code.

Configuration MCP

Le MCP (Model Context Protocol) est un protocole ouvert qui connecte un agent IA à des sources de données. Phano expose 8 outils que l'assistant appelle lui-même. Transport : HTTP en POST (JSON-RPC) sur https://phano.ai/api/v1/mcp, authentifié par la même clé API.

Option A : client compatible HTTP distant (recommandé)

Pour les clients qui gèrent un serveur MCP distant avec header : Cursor, VS Code, Windsurf, Cline, n8n, ou tout SDK MCP. Ajoutez ce bloc à la configuration MCP de l'outil.

{
  "mcpServers": {
    "phano": {
      "url": "https://phano.ai/api/v1/mcp",
      "headers": {
        "Authorization": "Bearer <votre-cle-api>"
      }
    }
  }
}

Option B : client local sans header distant (Claude Desktop)

Claude Desktop n'envoie pas de header d'authentification vers un serveur distant. Passez par le pont mcp-remote qui injecte la clé.

{
  "mcpServers": {
    "phano": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote",
        "https://phano.ai/api/v1/mcp",
        "--header", "Authorization: Bearer <votre-cle-api>"
      ]
    }
  }
}

Option C : tester la connexion (curl)

Vérifiez que la clé fonctionne en listant les outils, sans aucun client.

curl -X POST https://phano.ai/api/v1/mcp \
  -H "Authorization: Bearer <votre-cle-api>" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Outils disponibles

OutilScope requisDescription
phano_getPortfolioSummaryread:portfolioRésumé du portefeuille : ARR, santé, renouvellements, diagnostics actifs.
phano_getPortfolioRisksread:portfolioComptes à risque triés par sévérité et confiance.
phano_getAccountsread:accountsListe des comptes avec filtres.
phano_getAccountIntelligenceread:accountsIntelligence complète d'un compte.
phano_getAccountStakeholdersread:stakeholdersContacts clés et champions d'un compte.
phano_getAccountMemoryread:accountsMémoire d'un compte : track record des diagnostics passés avec verdict jugé (juste/faux/indéterminé) et trajectoire de santé. Donnée propriétaire pré-calculée.
phano_getRevenueAtRiskread:portfolioRevenue-at-risk pré-calculé : revenu protégé confirmé/estimé et expansion sur une plage, couverture ARR honnête (sources fiables). Bornes from/to ISO 8601 optionnelles (30 jours par défaut).
phano_getStatusread:allÉtat de santé de l'instance : dernier composite, connexions.

8 outils : phano_getPortfolioSummary, phano_getPortfolioRisks, phano_getAccounts, phano_getAccountIntelligence, phano_getAccountStakeholders, phano_getAccountMemory, phano_getRevenueAtRisk, phano_getStatus.

Exemples

Recettes d'intégration

Quelques scénarios concrets, côté REST comme côté MCP.

Scénarios pas à pas

  • Compte à risque détecté, alerte dans votre outil de communication (poll de /portfolio/risks)
  • Signal d'expansion, notification à l'Account Manager concerné
  • Résumé portefeuille quotidien, export vers votre tableur ou votre data warehouse
  • Agent IA qui répond aux questions de vos équipes à partir des outils MCP

Outils no-code : Zapier, Make, n8n via une action webhook HTTP avec le header Authorization. Tableurs : Google Sheets (Apps Script), Excel (Power Query).

Vos CSM voient les risques, vos Account Managers les opportunités. Le premier diagnostic arrive le jour même.

Essayer gratuitement
Essai gratuitSans carte bancairePremier diagnostic le jour même