Aller au contenu principal
63 min de lecture

Référence des Outils MCP

Cette page documente les 77 outils MCP disponibles via le serveur d'analyse Zenovay. Chaque outil inclut ses paramètres, une requête JSON-RPC d'exemple et une réponse d'exemple.

URL du serveur : https://api.zenovay.com/mcp Transport : HTTP diffusable (JSON-RPC 2.0) En-tête d'authentification : Authorization: Bearer zv_YOUR_API_KEY

Tous les outils nécessitent une clé API valide avec MCP activé. Les outils d'écriture (marqués avec requires read_write) renvoient une erreur en mode lecture seule. Voir Permissions & Limites pour la liste complète.


Référence Rapide pour les Assistants IA

Utilisez cette section pour comprendre rapidement le serveur MCP Zenovay. Chaque requête utilise cette enveloppe JSON-RPC :

Modèle de RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "TOOL_NAME",
  "arguments": { ... }
}
}

Première étape de chaque session : Appelez list_websites (sans arguments) pour découvrir les identifiants des sites Web. Presque tous les outils requièrent un paramètre website_id.

Les 77 outils en un coup d'œil :

#OutilCatégorieCoûtDescription
1query_analyticsanalytics3Requête d'analyse en langage naturel
2get_visitorsanalytics1Statistiques des visiteurs avec comparaison de période facultative
3get_top_pagesanalytics1Pages les plus visitées classées par nombre de visiteurs
4get_traffic_sourcesanalytics1Ventilation des sources / référents de trafic
5get_geographic_dataanalytics1Ventilation par pays + ville facultativement
6get_technology_breakdownanalytics1Appareils, navigateurs, systèmes d'exploitation
7get_realtime_visitorsanalytics1Visiteurs actuellement actifs (5 dernières minutes)
8compare_periodsanalytics1Comparer les métriques entre deux périodes
9get_funnel_analysisadvanced1Données de conversion étape par étape d'entonnoir
10get_goalsadvanced1Objectifs actifs avec taux de réalisation
11get_session_replaysadvanced1Liste des enregistrements de relecture de session (Pro+)
12get_heatmap_dataadvanced1Données d'interaction de heatmap par page (Pro+)
13get_errorsadvanced1Suivi des erreurs JavaScript
14get_b2b_companiesadvanced1Identification d'entreprises B2B via recherche IP inverse
15get_revenueadvanced1Totaux de revenus + ventilations (Pro+)
16get_performance_metricsadvanced1Core Web Vitals (LCP, CLS, INP, FCP, TTFB)
17get_insightsai_insights1Insights générés par IA et exploitables
18get_anomaliesai_insights1Anomalies de métriques détectées
19get_weekly_digestai_insights1Résumé de performance hebdomadaire (cette semaine vs semaine dernière)
20get_recommendationsai_insights1Recommandations d'optimisation alimentées par IA
21list_websitesmanagement1Lister les sites Web accessibles (appelez en premier!)
22create_goalmanagement1Créer un objectif personnalisé (requires read_write)
23manage_funnelmanagement1Créer/mettre à jour un entonnoir (requires read_write)
24export_datamanagement1Exporter l'analyse en JSON ou CSV (Scale+)
25get_api_usagemanagement1Vérifier le quota quotidien restant
26get_website_settingsmanagement1Obtenir la configuration et les paramètres du site Web
27update_website_settingsmanagement1Mettre à jour les paramètres du site Web (requires read_write)
28toggle_public_dashboardmanagement1Activer/désactiver le tableau de bord public (requires read_write)
29toggle_cookieless_trackingmanagement1Activer/désactiver le mode sans cookies (requires read_write, Pro+)
30get_tracking_codemanagement1Obtenir l'extrait de code de suivi pour un site Web
31regenerate_tracking_codemanagement1Générer un nouveau code de suivi (requires read_write)
32list_goalsmanagement1Lister tous les objectifs pour un site Web
33update_goalmanagement1Mettre à jour un objectif existant (requires read_write)
34delete_goalmanagement1Supprimer un objectif (requires read_write)
35toggle_goalmanagement1Activer ou désactiver un objectif (requires read_write)
36list_funnelsmanagement1Lister tous les entonnoirs pour un site Web
37delete_funnelmanagement1Supprimer un entonnoir (requires read_write)
38delete_websitemanagement1Supprimer définitivement un site Web (requires read_write, full_access)
39add_ip_exclusionsettings1Ajouter une IP à la liste d'exclusion (requires read_write)
40remove_ip_exclusionsettings1Retirer une IP de la liste d'exclusion (requires read_write)
41add_path_exclusionsettings1Ajouter un motif de chemin aux exclusions (requires read_write)
42remove_path_exclusionsettings1Retirer un chemin des exclusions (requires read_write)
43list_exclusionssettings1Lister toutes les exclusions d'IP et de chemin
44get_notification_settingssettings1Obtenir les préférences de notification
45update_notification_settingssettings1Mettre à jour les préférences de notification (requires read_write)
46get_team_membersteam1Lister les membres de l'équipe (requires full_access)
47invite_team_memberteam1Inviter un nouveau membre de l'équipe (requires read_write, full_access, Pro+)
48remove_team_memberteam1Retirer un membre de l'équipe (requires read_write, full_access)
49create_websitemanagement1Créer un nouveau site Web (requires read_write, full_access)
50list_api_keysapi_keys1Lister toutes les clés API de l'équipe
51create_api_keyapi_keys1Créer une nouvelle clé API (requires read_write)
52revoke_api_keyapi_keys1Révoquer une clé API (requires read_write)
53get_api_key_detailsapi_keys1Obtenir les détails d'une clé API spécifique
54update_api_key_permissionsapi_keys1Mettre à jour les permissions de clé API (requires read_write)
55list_uptime_monitorsuptime1Lister tous les moniteurs de disponibilité
56get_uptime_statusuptime1Obtenir l'état actuel d'un moniteur
57create_uptime_monitoruptime1Créer un nouveau moniteur de disponibilité (requires read_write)
58delete_uptime_monitoruptime1Supprimer un moniteur de disponibilité (requires read_write)
59get_uptime_historyuptime1Obtenir l'historique de disponibilité et le journal des incidents
60update_website_namemanagement1Mettre à jour le nom d'affichage du site Web (requires read_write)
61update_website_timezonemanagement1Mettre à jour le fuseau horaire du site Web (requires read_write)
62update_website_domainmanagement1Mettre à jour le domaine du site Web (requires read_write)
63pause_trackingmanagement1Mettre en pause le suivi des analyses (requires read_write)
64resume_trackingmanagement1Reprendre le suivi des analyses (requires read_write)
65schedule_reportmanagement1Planifier un rapport d'analyse récurrent (requires read_write)
66get_report_schedulemanagement1Obtenir la configuration du rapport planifié
67cancel_reportmanagement1Annuler un rapport planifié (requires read_write)
68get_export_historymanagement1Obtenir l'historique d'exportation des données
69get_data_retentionmanagement1Obtenir la politique de rétention des données pour le site Web
70set_revenue_currencysettings1Définir la devise des revenus (requires read_write)
71get_revenue_settingssettings1Obtenir les paramètres de revenus (devise, mappages de champs)
72add_allowed_domainsettings1Ajouter un domaine à la liste blanche CORS (requires read_write)
73remove_allowed_domainsettings1Retirer un domaine de la liste blanche CORS (requires read_write)
74list_allowed_domainssettings1Lister les domaines en liste blanche CORS
75request_data_deletionsettings1Supprimer les données des visiteurs pour le RGPD (requires read_write)
76get_retention_dataadvanced1Analyse de cohésion de rétention (Pro+)
77get_user_profilesanalytics1Profils de visiteurs avec historique de session

Valeurs time_range courantes : 24h, 7d, 30d, 90d, 1y (par défaut : 7d pour la plupart des outils)


Modèles Courants

Avant de plonger dans les outils individuels, voici les workflows multi-outils courants :

Découverte du site Web + analyse :

  1. list_websites — trouver vos identifiants de sites Web
  2. get_visitors — obtenir un aperçu du trafic
  3. get_top_pages — voir quelles pages fonctionnent le mieux
  4. get_traffic_sources — comprendre d'où provient le trafic

Audit de performance :

  1. list_websites — obtenir l'identifiant du site Web
  2. get_performance_metrics — vérifier les Core Web Vitals
  3. get_errors — trouver les erreurs JavaScript
  4. get_insights — voir les recommandations générées par IA

Examen hebdomadaire :

  1. get_weekly_digest — comparaison automatique semaine par semaine
  2. get_anomalies — vérifier les modèles inhabituels
  3. compare_periods — analyse approfondie de métriques spécifiques

Outils d'Analyse

Tous les outils d'analyse appliquent la fenêtre de rétention des données de votre plan. Les requêtes demandant des données au-delà de votre limite de rétention sont automatiquement limitées, et la réponse inclut un champ retention_note. Voir Application du Plan pour les limites de rétention par plan.

1. query_analytics

Posez une question en langage naturel sur vos données d'analyse. Cet outil est le plus flexible — utilisez-le quand d'autres outils spécifiques ne conviennent pas.

Coût : 3 requêtes

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site Web
questionstringOuiQuestion en langage naturel (max 500 caractères)
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "query_analytics",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "question": "How many visitors did I have this week?"
  }
}
}
RéponseJSON
{
"jsonrpc": "2.0",
"id": 1,
"result": {
  "content": [{
    "type": "text",
    "text": {
      "intent": "visitor_count",
      "confidence": 0.95,
      "time_range": "7d",
      "results": { "total_visitors": 1250, "unique_visitors": 980 },
      "summary": "You had 1,250 total visitors (980 unique) in the last 7 days.",
      "suggestions": [
        "How many visitors did I have this week?",
        "What are my top pages?",
        "Where are my visitors from?",
        "What devices do visitors use?"
      ]
    }
  }]
}
}

2. get_visitors

Obtenir les statistiques des visiteurs pour un site Web avec comparaison de période facultative.

Coût : 1 requête

ParamètreTypeObligatoirePar DéfautDescription
website_idstringOuiL'UUID du site Web
time_rangestringNon7dPlage temporelle : 24h, 7d, 30d, 90d, 1y
compare_with_previousbooleanNonfalseInclure une comparaison avec la période précédente
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_visitors",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "time_range": "7d",
    "compare_with_previous": true
  }
}
}
RéponseJSON
{
"summary": {
  "total_visitors": 1250,
  "unique_visitors": 980,
  "page_views": 3400,
  "bounce_rate": 42.5,
  "avg_session_duration": 185.3
},
"daily_stats": [
  { "date": "2026-02-27", "visitors": 180, "unique_visitors": 140, "page_views": 490, "bounce_rate": 41.2 },
  { "date": "2026-02-28", "visitors": 195, "unique_visitors": 155, "page_views": 510, "bounce_rate": 43.1 }
],
"comparison": {
  "previous_period": { "start": "2026-02-20", "end": "2026-02-26" },
  "previous_summary": {
    "total_visitors": 1100,
    "unique_visitors": 870,
    "page_views": 3100,
    "bounce_rate": 44.8
  },
  "changes": {
    "visitors_pct": 13.64,
    "unique_visitors_pct": 12.64,
    "page_views_pct": 9.68,
    "bounce_rate_pct": -5.13
  }
}
}

3. get_top_pages

Obtenir les pages les plus visitées classées par nombre de visiteurs.

Coût : 1 requête

ParamètreTypeObligatoirePar DéfautDescription
website_idstringOuiL'UUID du site Web
time_rangestringNon7dPlage temporelle : 24h, 7d, 30d, 90d, 1y
limitnumberNon20Max de pages à retourner (1-100)
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_top_pages",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "time_range": "30d",
    "limit": 5
  }
}
}
RéponseJSON
{
"pages": [
  { "url": "/", "visitors": 520, "percentage": 41.6 },
  { "url": "/pricing", "visitors": 180, "percentage": 14.4 },
  { "url": "/features", "visitors": 145, "percentage": 11.6 },
  { "url": "/docs", "visitors": 110, "percentage": 8.8 },
  { "url": "/blog/analytics-guide", "visitors": 95, "percentage": 7.6 }
],
"total_pages": 47
}

4. get_traffic_sources

Obtenir les sources de trafic montrant d'où proviennent les visiteurs.

Coût : 1 requête

ParamètreTypeObligatoirePar DéfautDescription
website_idstringOuiL'UUID du site Web
time_rangestringNon7dPlage temporelle : 24h, 7d, 30d, 90d, 1y
limitnumberNon20Max de sources à retourner (1-100)
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_traffic_sources",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "time_range": "30d"
  }
}
}
RéponseJSON
{
"sources": [
  { "source": "Direct", "visitors": 450, "percentage": 36.0 },
  { "source": "google.com", "visitors": 320, "percentage": 25.6 },
  { "source": "twitter.com", "visitors": 85, "percentage": 6.8 },
  { "source": "github.com", "visitors": 60, "percentage": 4.8 }
],
"total_sources": 23
}

5. get_geographic_data

Obtenir la ventilation géographique par pays avec détail au niveau de la ville en option.

Coût : 1 requête

ParamètreTypeObligatoirePar DéfautDescription
website_idstringOuiL'UUID du site Web
time_rangestringNon7dPlage temporelle : 24h, 7d, 30d, 90d, 1y
limitnumberNon20Max d'entrées (1-100)
include_citiesbooleanNonfalseInclure la ventilation au niveau de la ville par pays
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_geographic_data",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "include_cities": true,
    "limit": 3
  }
}
}
RéponseJSON
{
"countries": [
  {
    "country_code": "US",
    "country_name": "United States",
    "visitors": 520,
    "percentage": 41.6,
    "cities": [
      { "city": "San Francisco", "visitors": 85 },
      { "city": "New York", "visitors": 72 }
    ]
  },
  {
    "country_code": "DE",
    "country_name": "Germany",
    "visitors": 180,
    "percentage": 14.4,
    "cities": [
      { "city": "Berlin", "visitors": 45 },
      { "city": "Munich", "visitors": 32 }
    ]
  }
],
"total_countries": 28
}

6. get_technology_breakdown

Obtenir la ventilation technologique des visiteurs : appareils, navigateurs et systèmes d'exploitation.

Coût : 1 requête

ParamètreTypeObligatoirePar DéfautDescription
website_idstringOuiL'UUID du site Web
time_rangestringNon7dPlage temporelle : 24h, 7d, 30d, 90d, 1y
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_technology_breakdown",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}
}
RéponseJSON
{
"devices": [
  { "name": "desktop", "visitors": 780, "percentage": 62.4 },
  { "name": "mobile", "visitors": 390, "percentage": 31.2 },
  { "name": "tablet", "visitors": 80, "percentage": 6.4 }
],
"browsers": [
  { "name": "Chrome", "visitors": 625, "percentage": 50.0 },
  { "name": "Safari", "visitors": 300, "percentage": 24.0 },
  { "name": "Firefox", "visitors": 150, "percentage": 12.0 }
],
"operating_systems": [
  { "name": "Windows", "visitors": 450, "percentage": 36.0 },
  { "name": "macOS", "visitors": 350, "percentage": 28.0 },
  { "name": "iOS", "visitors": 250, "percentage": 20.0 },
  { "name": "Android", "visitors": 140, "percentage": 11.2 }
],
"total_visitors": 1250
}

7. get_realtime_visitors

Obtenir les visiteurs actuellement actifs (visiteurs dans les 5 dernières minutes).

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site Web
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_realtime_visitors",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}
}
RéponseJSON
{
"active_visitors": 12,
"recent_visitors": [
  {
    "country_name": "United States",
    "page_url": "/pricing",
    "device_type": "desktop",
    "browser": "Chrome"
  },
  {
    "country_name": "Germany",
    "page_url": "/",
    "device_type": "mobile",
    "browser": "Safari"
  }
]
}

8. compare_periods

Comparer les métriques d'analyse entre deux périodes.

Coût : 1 requête

ParamètreTypeObligatoirePar DéfautDescription
website_idstringOuiL'UUID du site Web
current_periodstringNon7dPériode actuelle : 24h, 7d, 30d, 90d
comparison_periodstringNonpreviousComparaison : previous, same_period_last_month, same_period_last_year
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "compare_periods",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "current_period": "30d",
    "comparison_period": "same_period_last_month"
  }
}
}
RéponseJSON
{
"current": {
  "period": { "start": "2026-02-04", "end": "2026-03-06" },
  "visitors": 3800,
  "unique_visitors": 2900,
  "page_views": 10200,
  "bounce_rate": 42.5,
  "avg_session_duration": 185.3,
  "days": 30
},
"comparison": {
  "period": { "start": "2026-01-05", "end": "2026-02-04" },
  "type": "same_period_last_month",
  "visitors": 3200,
  "unique_visitors": 2500,
  "page_views": 8800,
  "bounce_rate": 45.1,
  "avg_session_duration": 170.8,
  "days": 30
},
"changes": {
  "visitors_pct": 18.75,
  "unique_visitors_pct": 16.0,
  "pageviews_pct": 15.91,
  "bounce_rate_pct": -5.76,
  "avg_session_duration_pct": 8.49
}
}

Outils Avancés

9. get_funnel_analysis

Obtenir les données d'analyse d'entonnoir. Sans funnel_id, répertorie tous les entonnoirs. Avec un, renvoie les données de conversion étape par étape.

Coût : 1 requête

ParamètreTypeObligatoirePar DéfautDescription
website_idstringOuiL'UUID du site Web
funnel_idstringNonUUID d'entonnoir pour analyse détaillée des étapes
time_rangestringNon30dPlage temporelle : 24h, 7d, 30d, 90d, 1y
Requête (lister les entonnoirs)JSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_funnel_analysis",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}
}
RéponseJSON
{
"funnels": [
  { "id": "f1a2b3c4-...", "name": "Signup Flow", "created_at": "2026-01-15T10:00:00Z" },
  { "id": "f5d6e7f8-...", "name": "Checkout Flow", "created_at": "2026-02-01T14:30:00Z" }
]
}
Requête (analyse détaillée)JSON
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
  "name": "get_funnel_analysis",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "funnel_id": "f1a2b3c4-..."
  }
}
}
RéponseJSON
{
"funnel": { "id": "f1a2b3c4-...", "name": "Signup Flow" },
"steps": [
  { "name": "Landing Page", "order": 1, "visitors": 500, "conversion_rate": 100 },
  { "name": "Signup Form", "order": 2, "visitors": 320, "conversion_rate": 64 },
  { "name": "Email Verification", "order": 3, "visitors": 280, "conversion_rate": 56 },
  { "name": "Onboarding Complete", "order": 4, "visitors": 210, "conversion_rate": 42 }
]
}

10. get_goals

Obtenir les objectifs actifs avec les nombres de réalisation et les taux de conversion.

Coût : 1 requête

ParamètreTypeObligatoirePar DéfautDescription
website_idstringOuiL'UUID du site Web
time_rangestringNon30dPlage temporelle : 24h, 7d, 30d, 90d, 1y
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_goals",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}
}
RéponseJSON
{
"goals": [
  { "id": "g1...", "name": "Newsletter Signup", "goal_type": "url_match", "is_active": true, "completions": 145, "conversion_rate": 3.82 },
  { "id": "g2...", "name": "Pricing Click", "goal_type": "element_click", "is_active": true, "completions": 89, "conversion_rate": 2.34 }
]
}

11. get_session_replays

Lister les enregistrements de relecture de session. Filtrer par appareil ou pays.

Coût : 1 requête | Nécessite : Pro+ (flag de fonctionnalité sessionReplay)

ParamètreTypeObligatoirePar DéfautDescription
website_idstringOuiL'UUID du site Web
limitnumberNon20Sessions à retourner (1-50)
device_typestringNonFiltre : desktop, mobile, tablet
country_codestringNonCode de pays ISO (ex : US, DE)
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_session_replays",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "device_type": "mobile",
    "limit": 5
  }
}
}
RéponseJSON
{
"sessions": [
  {
    "id": "sr1...",
    "session_id": "sess_abc123",
    "visitor_id": "v1...",
    "duration_ms": 45200,
    "page_count": 4,
    "had_interaction": true,
    "started_at": "2026-03-05T14:22:00Z"
  }
],
"total": 23
}

12. get_heatmap_data

Obtenir les données d'interaction de heatmap par page.

Coût : 1 requête | Nécessite : Pro+ (flag de fonctionnalité heatmaps)

ParamètreTypeObligatoirePar DéfautDescription
website_idstringOuiL'UUID du site Web
page_urlstringNonFiltrer une URL de page spécifique
limitnumberNon20Pages à retourner (1-50)
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_heatmap_data",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}
}
RéponseJSON
{
"pages": [
  { "page_url": "/", "total_interactions": 2340, "unique_visitors": 890, "last_updated": "2026-03-05T18:00:00Z" },
  { "page_url": "/pricing", "total_interactions": 1560, "unique_visitors": 620, "last_updated": "2026-03-05T17:45:00Z" }
]
}

13. get_errors

Obtenir les erreurs JavaScript suivies pour un site Web.

Coût : 1 requête

ParamètreTypeObligatoirePar DéfautDescription
website_idstringOuiL'UUID du site Web
statusstringNonopenFiltre : open, resolved, ignored
limitnumberNon50Erreurs à retourner (1-100)
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_errors",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "status": "open"
  }
}
}
RéponseJSON
{
"errors": [
  {
    "id": "e1...",
    "message": "TypeError: Cannot read property 'map' of undefined",
    "type": "TypeError",
    "occurrence_count": 45,
    "first_seen": "2026-02-28T10:15:00Z",
    "last_seen": "2026-03-05T22:30:00Z",
    "is_resolved": false
  }
],
"total": 8
}

14. get_b2b_companies

Identifier les entreprises B2B visitant votre site Web via recherche IP inverse.

Coût : 1 requête

ParamètreTypeObligatoirePar DéfautDescription
website_idstringOuiL'UUID du site Web
limitnumberNon20Entreprises à retourner (1-100)
sort_bystringNonlast_seenTri : visits, last_seen, confidence
industrystringNonFiltrer par secteur d'activité (ex : Technology)
min_visitsnumberNon1Nombre minimum de visites
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_b2b_companies",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "sort_by": "visits",
    "min_visits": 3
  }
}
}
RéponseJSON
{
"companies": [
  {
    "name": "Acme Corp",
    "domain": "acme.com",
    "industry": "Technology",
    "employee_count": 500,
    "visit_count": 12,
    "last_visit": "2026-03-05T16:00:00Z",
    "confidence_score": 0.92
  }
]
}

15. get_revenue

Obtenir l'analyse des revenus avec totaux et ventilations.

Coût : 1 requête | Nécessite : Pro+ (flag de fonctionnalité revenueAttribution)

ParamètreTypeObligatoirePar DéfautDescription
website_idstringOuiL'UUID du site Web
time_rangestringNon30dPlage temporelle : 24h, 7d, 30d, 90d, 1y
group_bystringNondayRegroupement : day, week, month, source
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_revenue",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "group_by": "source"
  }
}
}
RéponseJSON
{
"total_revenue": 12450.00,
"transaction_count": 89,
"avg_order_value": 139.89,
"currency": "USD",
"breakdown": [
  { "source": "google.com", "revenue": 5200.00, "transactions": 38 },
  { "source": "Direct", "revenue": 4100.00, "transactions": 30 },
  { "source": "twitter.com", "revenue": 1850.00, "transactions": 12 }
]
}

16. get_performance_metrics

Obtenir les Core Web Vitals et les métriques de performance avec les ventilations de percentile.

Coût : 1 requête

ParamètreTypeObligatoirePar DéfautDescription
website_idstringOuiL'UUID du site Web
time_rangestringNon7dPlage temporelle : 24h, 7d, 30d, 90d, 1y
page_urlstringNonFiltrer une page spécifique
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_performance_metrics",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}
}
RéponseJSON
{
"lcp": { "p50": 1800, "p75": 2200, "p90": 3100, "rating": "good", "sample_count": 450 },
"cls": { "p50": 0.05, "p75": 0.08, "p90": 0.15, "rating": "good", "sample_count": 450 },
"inp": { "p50": 120, "p75": 180, "p90": 280, "rating": "good", "sample_count": 420 },
"fcp": { "p50": 1200, "p75": 1600, "p90": 2400, "rating": "good", "sample_count": 450 },
"ttfb": { "p50": 350, "p75": 600, "p90": 950, "rating": "good", "sample_count": 450 }
}

Seuils de notation :

MétriqueBonNécessite une AméliorationMauvais
LCP≤ 2500ms≤ 4000ms> 4000ms
CLS≤ 0.1≤ 0.25> 0.25
INP≤ 200ms≤ 500ms> 500ms
FCP≤ 1800ms≤ 3000ms> 3000ms
TTFB≤ 800ms≤ 1800ms> 1800ms

Outils Insights IA

17. get_insights

Récupérer les insights générés par IA et exploitables sur la performance du site Web.

Coût : 1 requête

ParamètreTypeObligatoirePar DéfautDescription
website_idstringOuiL'UUID du site Web
severitystringNonFiltre : critical, warning, info
statusstringNonactiveFiltre : active, acknowledged, resolved
limitnumberNon10Max d'insights (1-50)
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_insights",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "severity": "critical"
  }
}
}
RéponseJSON
{
"website": { "id": "2ea8af07-...", "domain": "example.com" },
"insights": [
  {
    "id": "i1...",
    "title": "Bounce rate spike on /pricing",
    "description": "Bounce rate on the pricing page increased by 35% compared to last week. Consider reviewing recent changes.",
    "severity": "critical",
    "type": "bounce_rate",
    "created_at": "2026-03-05T08:00:00Z"
  }
],
"summary": { "total": 3, "critical": 1, "warning": 1, "info": 1 }
}

18. get_anomalies

Récupérer les anomalies détectées — déviations inhabituelles des métriques.

Coût : 1 requête

ParamètreTypeObligatoirePar DéfautDescription
website_idstringOuiL'UUID du site Web
severitystringNonFiltre : critical, warning, info
metricstringNonFiltrer par métrique (ex : visitors, bounce_rate)
limitnumberNon10Max d'anomalies (1-50)
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_anomalies",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}
}
RéponseJSON
{
"website": { "id": "2ea8af07-...", "domain": "example.com" },
"anomalies": [
  {
    "id": "a1...",
    "metric_name": "visitors",
    "expected_value": 180,
    "actual_value": 45,
    "deviation_pct": -75.0,
    "severity": "critical",
    "detected_at": "2026-03-04T00:00:00Z",
    "is_resolved": false
  }
],
"total": 2
}

19. get_weekly_digest

Générer un résumé hebdomadaire de performance comparant cette semaine à la semaine dernière.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site Web
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_weekly_digest",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}
}
RéponseJSON
{
"website": { "id": "2ea8af07-...", "domain": "example.com" },
"this_week": { "visitors": 1250, "pageviews": 3400, "sessions": 980, "bounce_rate": 42.5, "avg_duration": 185 },
"last_week": { "visitors": 1100, "pageviews": 3100, "sessions": 870, "bounce_rate": 44.8, "avg_duration": 170 },
"changes": {
  "visitors": 13.64,
  "pageviews": 9.68,
  "sessions": 12.64,
  "bounce_rate": -5.13,
  "avg_duration": 8.82
},
"top_pages": [
  { "path": "/", "views": 520 },
  { "path": "/pricing", "views": 180 }
],
"top_countries": [
  { "country": "US", "visitors": 520 },
  { "country": "DE", "visitors": 180 }
]
}

20. get_recommendations

Obtenir les recommandations d'optimisation alimentées par IA.

Coût : 1 requête

ParamètreTypeObligatoirePar DéfautDescription
website_idstringOuiL'UUID du site Web
categorystringNonFiltre : performance, engagement, conversion, seo
limitnumberNon5Max de recommandations (1-20)
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_recommendations",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "category": "performance"
  }
}
}
RéponseJSON
{
"website": { "id": "2ea8af07-...", "domain": "example.com" },
"recommendations": [
  {
    "id": "r1...",
    "title": "Optimize Largest Contentful Paint",
    "description": "Your LCP p75 is 3200ms (needs improvement). Consider lazy-loading below-fold images and preloading critical assets.",
    "category": "performance",
    "priority": "high",
    "impact": "Improving LCP to under 2500ms could reduce bounce rate by ~10%"
  }
],
"total": 3
}

Outils de gestion

21. list_websites

Lister tous les sites web accessibles par la clé API actuelle.

Coût : 1 requête

Cet outil ne prend aucun paramètre. Les clés d'accès complet voient tous les sites web de l'équipe ; les clés restreintes à un site ne voient que leur site assigné.

RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "list_websites",
  "arguments": {}
}
}
ResponseJSON
{
"websites": [
  {
    "id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "domain": "example.com",
    "name": "My Website",
    "tracking_code": "zv_abc123",
    "is_active": true,
    "created_at": "2025-06-15T10:00:00Z"
  }
],
"total": 1
}

22. create_goal

Créer un objectif de conversion personnalisé. Nécessite le mode lecture-écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
namestringOuiNom de l'objectif (max 100 caractères)
goal_typestringOuiurl_match, element_click, ou custom_event
url_patternstringPour url_matchMotif d'URL à correspondre
url_match_typestringNonexact, contains, starts_with, ends_with, regex (par défaut : contains)
css_selectorstringPour element_clickSélecteur CSS de l'élément
event_namestringPour custom_eventNom d'événement personnalisé à suivre
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "create_goal",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "name": "Newsletter Signup",
    "goal_type": "url_match",
    "url_pattern": "/thank-you",
    "url_match_type": "contains"
  }
}
}
ResponseJSON
{
"goal": {
  "id": "g1a2b3c4-...",
  "name": "Newsletter Signup",
  "goal_type": "url_match",
  "is_active": true,
  "created_at": "2026-03-06T12:00:00Z"
}
}

23. manage_funnel

Créer ou mettre à jour un entonnoir de conversion. Nécessite le mode lecture-écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
namestringOuiNom de l'entonnoir
stepsarrayOui2-10 étapes ordonnées (voir ci-dessous)
funnel_idstringNonUUID de l'entonnoir existant à mettre à jour

Objet étape :

ChampTypeObligatoireDescription
step_namestringOuiNom à afficher
step_typestringOuiurl_match, element_click, custom_event
url_patternstringNonMotif d'URL (pour url_match)
url_match_typestringNonexact, contains, starts_with, ends_with, regex
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "manage_funnel",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "name": "Checkout Flow",
    "steps": [
      { "step_name": "Product Page", "step_type": "url_match", "url_pattern": "/products" },
      { "step_name": "Add to Cart", "step_type": "custom_event", "url_pattern": "add_to_cart" },
      { "step_name": "Checkout", "step_type": "url_match", "url_pattern": "/checkout" },
      { "step_name": "Purchase Complete", "step_type": "url_match", "url_pattern": "/order-confirmation" }
    ]
  }
}
}
ResponseJSON
{
"funnel": {
  "id": "f1a2b3c4-...",
  "name": "Checkout Flow",
  "steps_count": 4,
  "created_at": "2026-03-06T12:00:00Z"
}
}

24. export_data

Exporter les données analytiques au format JSON ou CSV.

Coût : 1 requête | Nécessite : Scale+ (drapeau de fonctionnalité dataExport)

ParamètreTypeObligatoirePar défautDescription
website_idstringOuiL'UUID du site web
formatstringNonjsonFormat de sortie : csv, json
metricsarrayNon["visitors","pageviews","unique_visitors"]Métriques à inclure
time_rangestringNon30dPériode : 7d, 30d, 90d, 1y

Métriques disponibles : visitors, pageviews, unique_visitors, bounce_rate, avg_session_duration

RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "export_data",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "format": "csv",
    "metrics": ["visitors", "pageviews", "bounce_rate"],
    "time_range": "30d"
  }
}
}
ResponseJSON
{
"format": "csv",
"time_range": "30d",
"data": "date,visitors,page_views,bounce_rate\n2026-02-04,120,340,42.5\n2026-02-05,135,380,41.2\n...",
"total_rows": 30
}

25. get_api_usage

Vérifier l'utilisation actuelle de la clé API et le quota restant.

Coût : 1 requête

Cet outil ne prend aucun paramètre.

RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_api_usage",
  "arguments": {}
}
}
ResponseJSON
{
"api_key": {
  "id": "key_abc123",
  "name": "Production Key",
  "permission": "full_access"
},
"usage": {
  "monthly_requests": 1250,
  "total_requests": 8400
},
"mcp": {
  "queries_today": 15,
  "queries_limit": 500,
  "reset_at": "2026-03-07T00:00:00Z"
},
"subscription": {
  "tier": "Scale"
}
}

26. get_website_settings

Obtenir la configuration et les paramètres pour un site web.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_website_settings",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}
}
ResponseJSON
{
"website": {
  "id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "domain": "example.com",
  "name": "My Website",
  "is_active": true,
  "created_at": "2025-06-15T10:00:00Z"
},
"settings": {
  "public_dashboard_enabled": false,
  "public_dashboard_url": null,
  "cookieless_tracking": false,
  "tracking_code": "zv_abc123",
  "timezone": "America/New_York",
  "data_retention_days": 730,
  "allowed_domains": ["example.com", "www.example.com"]
}
}

27. update_website_settings

Mettre à jour les paramètres de configuration du site web. Nécessite le mode lecture-écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
namestringNonNom à afficher du site web
timezonestringNonFuseau horaire IANA (par ex. America/New_York)
allowed_domainsarrayNonListe des domaines autorisés pour le script de suivi
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "update_website_settings",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "name": "My Updated Website",
    "timezone": "Europe/Berlin",
    "allowed_domains": ["example.com", "www.example.com", "staging.example.com"]
  }
}
}
ResponseJSON
{
"website": {
  "id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "name": "My Updated Website",
  "timezone": "Europe/Berlin",
  "allowed_domains": ["example.com", "www.example.com", "staging.example.com"],
  "updated_at": "2026-03-15T10:00:00Z"
}
}

28. toggle_public_dashboard

Activer ou désactiver le partage du tableau de bord public pour un site web. Nécessite le mode lecture-écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
enabledbooleanOuitrue pour activer, false pour désactiver
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "toggle_public_dashboard",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "enabled": true
  }
}
}
ResponseJSON
{
"public_dashboard": {
  "enabled": true,
  "url": "https://app.zenovay.com/public/2ea8af07-xxxx",
  "globe_url": "https://app.zenovay.com/globe/2ea8af07-xxxx"
}
}

29. toggle_cookieless_tracking

Activer ou désactiver le mode de suivi sans cookies. Nécessite le mode lecture-écriture. Plan Pro ou supérieur.

Lorsque activé, le suivi utilise SHA-256(IP_subnet + UA + daily_salt) pour l'identification du visiteur au lieu de cookies ou localStorage.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
enabledbooleanOuitrue pour activer, false pour désactiver
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "toggle_cookieless_tracking",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "enabled": true
  }
}
}
ResponseJSON
{
"cookieless_tracking": {
  "enabled": true,
  "method": "server_side_hashing",
  "updated_at": "2026-03-15T10:00:00Z"
}
}

Le suivi sans cookies est entièrement conforme au RGPD. Aucun cookie ou localStorage n'est utilisé. L'identification du visiteur est calculée côté serveur à l'aide d'un sel rotatif quotidien.


30. get_tracking_code

Obtenir l'extrait de code de suivi pour un site web. Utilisez cela pour récupérer la balise script à installer sur votre site.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_tracking_code",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}
}
ResponseJSON
{
"tracking_code": "zv_abc123",
"script_tag": "<script defer data-website-id=\"zv_abc123\" src=\"https://api.zenovay.com/tracker.js\"></script>",
"cookieless_script_tag": "<script defer data-website-id=\"zv_abc123\" data-cookieless=\"true\" src=\"https://api.zenovay.com/tracker.js\"></script>"
}

31. regenerate_tracking_code

Générer un nouveau code de suivi pour un site web. Nécessite le mode lecture-écriture.

Cela invalide le code de suivi précédent. Vous devez mettre à jour la balise script sur votre site web après la régénération.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "regenerate_tracking_code",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}
}
ResponseJSON
{
"tracking_code": "zv_def456",
"previous_code": "zv_abc123",
"script_tag": "<script defer data-website-id=\"zv_def456\" src=\"https://api.zenovay.com/tracker.js\"></script>",
"regenerated_at": "2026-03-15T10:00:00Z"
}

32. list_goals

Lister tous les objectifs pour un site web avec leur statut actuel et leurs taux de conversion.

Coût : 1 requête

ParamètreTypeObligatoirePar défautDescription
website_idstringOuiL'UUID du site web
include_inactivebooleanNonfalseInclure les objectifs désactivés
time_rangestringNon30dPériode pour les statistiques de conversion : 7d, 30d, 90d, 1y
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "list_goals",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "include_inactive": true
  }
}
}
ResponseJSON
{
"goals": [
  {
    "id": "g1a2b3c4-...",
    "name": "Newsletter Signup",
    "goal_type": "url_match",
    "url_pattern": "/thank-you",
    "is_active": true,
    "completions": 145,
    "conversion_rate": 3.82,
    "created_at": "2026-01-15T10:00:00Z"
  },
  {
    "id": "g5d6e7f8-...",
    "name": "Old Promo Banner",
    "goal_type": "element_click",
    "css_selector": "#promo-cta",
    "is_active": false,
    "completions": 0,
    "conversion_rate": 0,
    "created_at": "2025-11-01T08:00:00Z"
  }
],
"total": 2
}

33. update_goal

Mettre à jour la configuration d'un objectif existant. Nécessite le mode lecture-écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
goal_idstringOuiL'UUID de l'objectif
namestringNonNom d'objectif mis à jour
url_patternstringNonMotif d'URL mis à jour
url_match_typestringNonexact, contains, starts_with, ends_with, regex
css_selectorstringNonSélecteur CSS mis à jour
event_namestringNonNom d'événement mis à jour
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "update_goal",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "goal_id": "g1a2b3c4-...",
    "name": "Newsletter Signup v2",
    "url_pattern": "/signup-complete"
  }
}
}
ResponseJSON
{
"goal": {
  "id": "g1a2b3c4-...",
  "name": "Newsletter Signup v2",
  "goal_type": "url_match",
  "url_pattern": "/signup-complete",
  "is_active": true,
  "updated_at": "2026-03-15T10:00:00Z"
}
}

34. delete_goal

Supprimer définitivement un objectif. Nécessite le mode lecture-écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
goal_idstringOuiL'UUID de l'objectif à supprimer
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "delete_goal",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "goal_id": "g5d6e7f8-..."
  }
}
}
ResponseJSON
{
"deleted": true,
"goal_id": "g5d6e7f8-..."
}

35. toggle_goal

Activer ou désactiver un objectif sans le supprimer. Nécessite le mode lecture-écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
goal_idstringOuiL'UUID de l'objectif
is_activebooleanOuitrue pour activer, false pour désactiver
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "toggle_goal",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "goal_id": "g1a2b3c4-...",
    "is_active": false
  }
}
}
ResponseJSON
{
"goal": {
  "id": "g1a2b3c4-...",
  "name": "Newsletter Signup v2",
  "is_active": false,
  "updated_at": "2026-03-15T10:00:00Z"
}
}

36. list_funnels

Lister tous les entonnoirs pour un site web.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "list_funnels",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}
}
ResponseJSON
{
"funnels": [
  {
    "id": "f1a2b3c4-...",
    "name": "Signup Flow",
    "steps_count": 4,
    "created_at": "2026-01-15T10:00:00Z"
  },
  {
    "id": "f5d6e7f8-...",
    "name": "Checkout Flow",
    "steps_count": 5,
    "created_at": "2026-02-01T14:30:00Z"
  }
],
"total": 2
}

37. delete_funnel

Supprimer définitivement un entonnoir. Nécessite le mode lecture-écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
funnel_idstringOuiL'UUID de l'entonnoir à supprimer
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "delete_funnel",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "funnel_id": "f5d6e7f8-..."
  }
}
}
ResponseJSON
{
"deleted": true,
"funnel_id": "f5d6e7f8-..."
}

38. delete_website

Supprimer définitivement un site web et toutes ses données analytiques. Nécessite le mode lecture-écriture et une clé d'accès complet.

Cette action est irréversible. Toutes les données analytiques, objectifs, entonnoirs et paramètres pour ce site web seront supprimés définitivement.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web à supprimer
confirmbooleanOuiDoit être true pour confirmer la suppression
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "delete_website",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "confirm": true
  }
}
}
ResponseJSON
{
"deleted": true,
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"domain": "example.com"
}

49. create_website

Créer un nouveau site web à suivre. Nécessite le mode lecture-écriture et une clé d'accès complet.

Coût : 1 requête

ParamètreTypeObligatoireDescription
domainstringOuiLe domaine du site web (par ex. docs.example.com)
namestringNonNom à afficher (par défaut : le domaine)
timezonestringNonFuseau horaire IANA (par défaut : UTC)
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "create_website",
  "arguments": {
    "domain": "docs.example.com",
    "name": "Documentation Site",
    "timezone": "America/New_York"
  }
}
}
ResponseJSON
{
"website": {
  "id": "3fb9bg08-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "domain": "docs.example.com",
  "name": "Documentation Site",
  "tracking_code": "zv_ghi789",
  "is_active": true,
  "created_at": "2026-03-15T10:00:00Z"
},
"script_tag": "<script defer data-website-id=\"zv_ghi789\" src=\"https://api.zenovay.com/tracker.js\"></script>"
}

Outils de paramètres

39. add_ip_exclusion

Ajouter une adresse IP ou une plage CIDR à la liste d'exclusion. Les visiteurs provenant des IP exclues ne seront pas suivis. Nécessite le mode lecture-écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
ip_addressstringOuiAdresse IP ou plage CIDR (par ex. 192.168.1.0/24)
labelstringNonÉtiquette descriptive (par ex. « Réseau de bureau »)
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "add_ip_exclusion",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "ip_address": "203.0.113.0/24",
    "label": "Office network"
  }
}
}
ResponseJSON
{
"exclusion": {
  "id": "exc_ip_1...",
  "type": "ip",
  "ip_address": "203.0.113.0/24",
  "label": "Office network",
  "created_at": "2026-03-15T10:00:00Z"
}
}

40. remove_ip_exclusion

Supprimer une adresse IP de la liste d'exclusion. Nécessite le mode lecture-écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
exclusion_idstringOuiL'UUID d'exclusion à supprimer
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "remove_ip_exclusion",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "exclusion_id": "exc_ip_1..."
  }
}
}
ResponseJSON
{
"deleted": true,
"exclusion_id": "exc_ip_1..."
}

41. add_path_exclusion

Ajouter un motif de chemin d'URL à exclure du suivi. Les pages correspondant au motif ne généreront pas d'événements analytiques. Nécessite le mode lecture-écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
path_patternstringOuiMotif de chemin d'URL à exclure (par ex. /admin/*, /internal/health)
match_typestringNonexact, starts_with, contains, regex (par défaut : starts_with)
labelstringNonÉtiquette descriptive
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "add_path_exclusion",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "path_pattern": "/admin",
    "match_type": "starts_with",
    "label": "Admin panel"
  }
}
}
ResponseJSON
{
"exclusion": {
  "id": "exc_path_1...",
  "type": "path",
  "path_pattern": "/admin",
  "match_type": "starts_with",
  "label": "Admin panel",
  "created_at": "2026-03-15T10:00:00Z"
}
}

42. remove_path_exclusion

Supprimer une exclusion de chemin. Nécessite le mode lecture-écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
exclusion_idstringOuiL'UUID d'exclusion à supprimer
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "remove_path_exclusion",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "exclusion_id": "exc_path_1..."
  }
}
}
ResponseJSON
{
"deleted": true,
"exclusion_id": "exc_path_1..."
}

43. list_exclusions

Lister toutes les exclusions d'IP et de chemin pour un site web.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "list_exclusions",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}
}
ResponseJSON
{
"ip_exclusions": [
  {
    "id": "exc_ip_1...",
    "ip_address": "203.0.113.0/24",
    "label": "Office network",
    "created_at": "2026-03-15T10:00:00Z"
  }
],
"path_exclusions": [
  {
    "id": "exc_path_1...",
    "path_pattern": "/admin",
    "match_type": "starts_with",
    "label": "Admin panel",
    "created_at": "2026-03-15T10:00:00Z"
  }
],
"total_ip": 1,
"total_path": 1
}

44. get_notification_settings

Obtenir les préférences de notification pour l'équipe actuelle.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_notification_settings",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}
}
ResponseJSON
{
"notifications": {
  "weekly_digest_email": true,
  "anomaly_alerts": true,
  "anomaly_threshold": "warning",
  "goal_completion_alerts": false,
  "uptime_alerts": true,
  "email_recipients": ["[email protected]"]
}
}

45. update_notification_settings

Mettre à jour les préférences de notification. Nécessite le mode lecture-écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
weekly_digest_emailbooleanNonActiver/désactiver le résumé hebdomadaire
anomaly_alertsbooleanNonActiver/désactiver les alertes d'anomalie
anomaly_thresholdstringNonSévérité minimale : info, warning, critical
goal_completion_alertsbooleanNonActiver/désactiver les notifications d'achèvement d'objectif
uptime_alertsbooleanNonActiver/désactiver les alertes de surveillance de disponibilité
email_recipientsarrayNonListe des adresses e-mail à notifier
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "update_notification_settings",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "anomaly_alerts": true,
    "anomaly_threshold": "critical",
    "goal_completion_alerts": true,
    "email_recipients": ["[email protected]", "[email protected]"]
  }
}
}
ResponseJSON
{
"notifications": {
  "weekly_digest_email": true,
  "anomaly_alerts": true,
  "anomaly_threshold": "critical",
  "goal_completion_alerts": true,
  "uptime_alerts": true,
  "email_recipients": ["[email protected]", "[email protected]"],
  "updated_at": "2026-03-15T10:00:00Z"
}
}

Outils d'équipe

46. get_team_members

Lister tous les membres de votre équipe. Nécessite une clé d'accès complet.

Coût : 1 requête

Cet outil ne prend aucun paramètre.

RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_team_members",
  "arguments": {}
}
}
ResponseJSON
{
"team": {
  "id": "team_abc123",
  "name": "Acme Corp"
},
"members": [
  {
    "id": "usr_1...",
    "email": "[email protected]",
    "name": "Jane Admin",
    "role": "owner",
    "joined_at": "2025-06-01T10:00:00Z"
  },
  {
    "id": "usr_2...",
    "email": "[email protected]",
    "name": "John Dev",
    "role": "member",
    "joined_at": "2025-08-15T14:00:00Z"
  }
],
"total": 2
}

47. invite_team_member

Inviter un nouveau membre à votre équipe par e-mail. Nécessite le mode lecture-écriture, une clé d'accès complet, et un plan Pro ou supérieur.

Coût : 1 requête

ParamètreTypeObligatoireDescription
emailstringOuiAdresse e-mail à inviter
rolestringNonRôle : member (par défaut) ou admin
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "invite_team_member",
  "arguments": {
    "email": "[email protected]",
    "role": "member"
  }
}
}
ResponseJSON
{
"invitation": {
  "id": "inv_1...",
  "email": "[email protected]",
  "role": "member",
  "status": "pending",
  "invited_at": "2026-03-15T10:00:00Z",
  "expires_at": "2026-03-22T10:00:00Z"
}
}

48. remove_team_member

Supprimer un membre de votre équipe. Nécessite le mode lecture-écriture et une clé d'accès complet.

Vous ne pouvez pas supprimer le propriétaire de l'équipe. Le membre perdra immédiatement l'accès à tous les sites web de l'équipe.

Coût : 1 requête

ParamètreTypeObligatoireDescription
member_idstringOuiL'identifiant utilisateur du membre à supprimer
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "remove_team_member",
  "arguments": {
    "member_id": "usr_2..."
  }
}
}
ResponseJSON
{
"removed": true,
"member_id": "usr_2...",
"email": "[email protected]"
}

Outils de clé API

50. list_api_keys

Lister toutes les clés API pour l'équipe actuelle. Renvoie les métadonnées de la clé (pas les valeurs des clés elles-mêmes).

Coût : 1 requête

Cet outil ne prend aucun paramètre.

RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "list_api_keys",
  "arguments": {}
}
}
ResponseJSON
{
"api_keys": [
  {
    "id": "key_1...",
    "name": "Production Key",
    "prefix": "zv_prod_",
    "type": "full_access",
    "mcp_enabled": true,
    "mcp_mode": "read_write",
    "created_at": "2026-01-15T10:00:00Z",
    "last_used_at": "2026-03-15T09:30:00Z"
  }
],
"total": 1
}

51. create_api_key

Créer une nouvelle clé API. Nécessite le mode lecture-écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
namestringOuiNom à afficher pour la clé
typestringOuifull_access ou site_access
website_idstringNonObligatoire pour les clés site_access
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "create_api_key",
  "arguments": {
    "name": "Staging Key",
    "type": "site_access",
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}
}
ResponseJSON
{
"api_key": {
  "id": "key_2...",
  "name": "Staging Key",
  "key": "zv_stg_xxxxxxxxxxxxxxxx",
  "type": "site_access",
  "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "created_at": "2026-03-15T10:00:00Z"
},
"message": "Save this key — it will not be shown again."
}

La valeur de la clé API complète n'est renvoyée qu'une seule fois au moment de la création. Conservez-la de manière sécurisée.


52. revoke_api_key

Révoquer (supprimer) une clé API. Nécessite le mode lecture-écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
key_idstringOuiL'identifiant de la clé API à révoquer
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "revoke_api_key",
  "arguments": {
    "key_id": "key_2..."
  }
}
}
ResponseJSON
{
"revoked": true,
"key_id": "key_2...",
"name": "Staging Key"
}

53. get_api_key_details

Obtenir des informations détaillées sur une clé API spécifique.

Coût : 1 requête

ParamètreTypeObligatoireDescription
key_idstringOuiL'identifiant de la clé API
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_api_key_details",
  "arguments": {
    "key_id": "key_1..."
  }
}
}
ResponseJSON
{
"api_key": {
  "id": "key_1...",
  "name": "Production Key",
  "prefix": "zv_prod_",
  "type": "full_access",
  "mcp_enabled": true,
  "mcp_mode": "read_write",
  "mcp_permissions": {
    "analytics": true,
    "advanced": true,
    "ai_insights": true,
    "management": true,
    "settings": true,
    "api_keys": false,
    "uptime": true
  },
  "created_at": "2026-01-15T10:00:00Z",
  "last_used_at": "2026-03-15T09:30:00Z",
  "total_requests": 1247
}
}

54. update_api_key_permissions

Mettre à jour les permissions MCP pour une clé API. Nécessite le mode lecture-écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
key_idstringOuiL'identifiant de la clé API
mcp_enabledbooleanNonActiver ou désactiver l'accès MCP
mcp_modestringNonread_only ou read_write
permissionsobjectNonBascules de groupe de fonctionnalités (par ex. {"analytics": true, "management": false})
RequestJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "update_api_key_permissions",
  "arguments": {
    "key_id": "key_1...",
    "mcp_mode": "read_write",
    "permissions": {
      "analytics": true,
      "advanced": true,
      "ai_insights": true,
      "management": true,
      "settings": false
    }
  }
}
}
ResponseJSON
{
"updated": true,
"key_id": "key_1...",
"mcp_mode": "read_write",
"mcp_permissions": {
  "analytics": true,
  "advanced": true,
  "ai_insights": true,
  "management": true,
  "settings": false
}
}

Outils de disponibilité

55. list_uptime_monitors

Lister tous les moniteurs de disponibilité pour l'équipe actuelle.

Coût : 1 requête

Cet outil ne nécessite aucun paramètre.

RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "list_uptime_monitors",
  "arguments": {}
}
}
RéponseJSON
{
"monitors": [
  {
    "id": "mon_1...",
    "url": "https://example.com",
    "name": "Production Site",
    "interval": 300,
    "status": "up",
    "uptime_30d": 99.98,
    "last_checked_at": "2026-03-15T09:55:00Z"
  }
],
"total": 1
}

56. get_uptime_status

Obtenir le statut actuel et le temps de réponse pour un moniteur spécifique.

Coût : 1 requête

ParamètreTypeObligatoireDescription
monitor_idstringOuiL'UUID du moniteur
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_uptime_status",
  "arguments": {
    "monitor_id": "mon_1..."
  }
}
}
RéponseJSON
{
"monitor": {
  "id": "mon_1...",
  "url": "https://example.com",
  "status": "up",
  "response_time_ms": 142,
  "status_code": 200,
  "uptime_24h": 100.0,
  "uptime_7d": 99.99,
  "uptime_30d": 99.98,
  "last_checked_at": "2026-03-15T09:55:00Z",
  "last_incident_at": "2026-03-10T03:22:00Z"
}
}

57. create_uptime_monitor

Créer un nouveau moniteur de disponibilité. Nécessite le mode lecture_écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
urlstringOuiL'URL à monitorer
namestringNonNom d'affichage (par défaut le hostname de l'URL)
intervalnumberNonIntervalle de vérification en secondes (par défaut : 300)
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "create_uptime_monitor",
  "arguments": {
    "url": "https://api.example.com/health",
    "name": "API Health",
    "interval": 60
  }
}
}
RéponseJSON
{
"monitor": {
  "id": "mon_2...",
  "url": "https://api.example.com/health",
  "name": "API Health",
  "interval": 60,
  "status": "pending",
  "created_at": "2026-03-15T10:00:00Z"
}
}

58. delete_uptime_monitor

Supprimer un moniteur de disponibilité. Nécessite le mode lecture_écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
monitor_idstringOuiL'UUID du moniteur à supprimer
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "delete_uptime_monitor",
  "arguments": {
    "monitor_id": "mon_2..."
  }
}
}
RéponseJSON
{
"deleted": true,
"monitor_id": "mon_2..."
}

59. get_uptime_history

Obtenir l'historique de disponibilité et le journal des incidents pour un moniteur.

Coût : 1 requête

ParamètreTypeObligatoireDescription
monitor_idstringOuiL'UUID du moniteur
time_rangestringNonPlage temporelle : 24h, 7d, 30d, 90d (par défaut : 30d)
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_uptime_history",
  "arguments": {
    "monitor_id": "mon_1...",
    "time_range": "7d"
  }
}
}
RéponseJSON
{
"monitor_id": "mon_1...",
"uptime_percentage": 99.99,
"total_checks": 2016,
"failed_checks": 1,
"incidents": [
  {
    "id": "inc_1...",
    "started_at": "2026-03-10T03:22:00Z",
    "resolved_at": "2026-03-10T03:27:00Z",
    "duration_seconds": 300,
    "status_code": 503,
    "reason": "Service Unavailable"
  }
],
"avg_response_time_ms": 156
}

Outils de gestion de site web (60-64)

60. update_website_name

Mettre à jour le nom d'affichage d'un site web. Nécessite le mode lecture_écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
namestringOuiNouveau nom d'affichage
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "update_website_name",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "name": "Production Website"
  }
}
}
RéponseJSON
{
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Production Website",
"updated_at": "2026-03-15T10:00:00Z"
}

61. update_website_timezone

Mettre à jour le fuseau horaire d'un site web. Affecte la façon dont les analyses quotidiennes sont agrégées. Nécessite le mode lecture_écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
timezonestringOuiFuseau horaire IANA (p. ex. America/New_York, Europe/London)
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "update_website_timezone",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "timezone": "Europe/London"
  }
}
}
RéponseJSON
{
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"timezone": "Europe/London",
"updated_at": "2026-03-15T10:00:00Z"
}

62. update_website_domain

Mettre à jour le domaine d'un site web. Nécessite le mode lecture_écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
domainstringOuiNouveau domaine (p. ex. example.com)
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "update_website_domain",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "domain": "new.example.com"
  }
}
}
RéponseJSON
{
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"domain": "new.example.com",
"updated_at": "2026-03-15T10:00:00Z"
}

63. pause_tracking

Mettre en pause temporairement le suivi des analyses pour un site web. Aucun nouvel événement ne sera enregistré. Nécessite le mode lecture_écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "pause_tracking",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}
}
RéponseJSON
{
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"tracking_active": false,
"paused_at": "2026-03-15T10:00:00Z"
}

64. resume_tracking

Reprendre le suivi des analyses pour un site web en pause. Nécessite le mode lecture_écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "resume_tracking",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}
}
RéponseJSON
{
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"tracking_active": true,
"resumed_at": "2026-03-15T10:00:00Z"
}

Outils de rapports (65-69)

65. schedule_report

Planifier un rapport d'analyse récurrent à envoyer par e-mail. Nécessite le mode lecture_écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
frequencystringOuidaily, weekly, ou monthly
recipientsarrayOuiListe des adresses e-mail
metricsarrayNonMétriques spécifiques à inclure (par défaut : toutes)
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "schedule_report",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "frequency": "weekly",
    "recipients": ["[email protected]", "[email protected]"]
  }
}
}
RéponseJSON
{
"report": {
  "id": "rpt_1...",
  "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "frequency": "weekly",
  "recipients": ["[email protected]", "[email protected]"],
  "next_send_at": "2026-03-22T08:00:00Z",
  "created_at": "2026-03-15T10:00:00Z"
}
}

66. get_report_schedule

Obtenir la configuration du rapport planifié pour un site web.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_report_schedule",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}
}
RéponseJSON
{
"reports": [
  {
    "id": "rpt_1...",
    "frequency": "weekly",
    "recipients": ["[email protected]", "[email protected]"],
    "next_send_at": "2026-03-22T08:00:00Z",
    "last_sent_at": "2026-03-15T08:00:00Z"
  }
],
"total": 1
}

67. cancel_report

Annuler un rapport planifié. Nécessite le mode lecture_écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
report_idstringOuiL'ID du calendrier de rapport à annuler
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "cancel_report",
  "arguments": {
    "report_id": "rpt_1..."
  }
}
}
RéponseJSON
{
"cancelled": true,
"report_id": "rpt_1..."
}

68. get_export_history

Obtenir l'historique des exportations de données pour un site web.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
limitnumberNonRésultats maximum (par défaut : 20)
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_export_history",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "limit": 5
  }
}
}
RéponseJSON
{
"exports": [
  {
    "id": "exp_1...",
    "format": "csv",
    "time_range": "30d",
    "status": "completed",
    "file_size_bytes": 245760,
    "created_at": "2026-03-14T15:00:00Z"
  }
],
"total": 1
}

69. get_data_retention

Obtenir la politique de rétention des données pour un site web en fonction du plan actuel.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_data_retention",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}
}
RéponseJSON
{
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"plan": "pro",
"analytics_retention_days": 730,
"heatmap_retention_days": 60,
"session_replay_retention_days": 60,
"oldest_data_at": "2024-03-15T00:00:00Z"
}

Outils de revenu et données (70-75)

70. set_revenue_currency

Définir la devise d'affichage par défaut du revenu pour un site web. Utilise les codes de devise ISO 4217. Nécessite le mode lecture_écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
currencystringOuiCode de devise ISO 4217 (p. ex. USD, EUR, GBP, CHF, JPY)
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "set_revenue_currency",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "currency": "EUR"
  }
}
}
RéponseJSON
{
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"currency": "EUR",
"message": "Revenue currency set to EUR"
}

71. get_revenue_settings

Obtenir les paramètres liés aux revenus pour un site web, y compris la devise configurée et les mappages de champs.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_revenue_settings",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}
}
RéponseJSON
{
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"currency": "EUR",
"revenue_field_mappings": null
}

72. add_allowed_domain

Ajouter un domaine à la liste blanche CORS. Seuls les domaines de la liste blanche peuvent envoyer des données de suivi à ce site web. Nécessite le mode lecture_écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
domainstringOuiDomaine à ajouter à la liste blanche (p. ex. example.com, staging.example.com)
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "add_allowed_domain",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "domain": "staging.example.com"
  }
}
}
RéponseJSON
{
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"domain": "staging.example.com",
"allowed_domains": ["example.com", "staging.example.com"],
"total": 2
}

73. remove_allowed_domain

Retirer un domaine de la liste blanche CORS. Nécessite le mode lecture_écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
domainstringOuiDomaine à retirer de la liste blanche
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "remove_allowed_domain",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "domain": "staging.example.com"
  }
}
}
RéponseJSON
{
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"removed": "staging.example.com",
"allowed_domains": ["example.com"],
"total": 1
}

74. list_allowed_domains

Lister tous les domaines de la liste blanche CORS pour un site web.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "list_allowed_domains",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  }
}
}
RéponseJSON
{
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"allowed_domains": ["example.com", "staging.example.com"],
"total": 2
}

75. request_data_deletion

Supprimer toutes les données d'un visiteur spécifique sur un site web. Utilisé pour la conformité au RGPD (droit à l'oubli). Cette action est irréversible. Nécessite le mode lecture_écriture.

Coût : 1 requête

ParamètreTypeObligatoireDescription
website_idstringOuiL'UUID du site web
visitor_idstringOuiL'UUID du visiteur dont les données doivent être supprimées
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "request_data_deletion",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "visitor_id": "vis_abc123..."
  }
}
}
RéponseJSON
{
"message": "Visitor data deleted successfully",
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"visitor_id": "vis_abc123...",
"records_deleted": 47,
"deleted_at": "2026-03-15T10:00:00Z"
}

Cela supprime définitivement toutes les données du visiteur, y compris les pages vues, les sessions et les événements. Cette action ne peut pas être annulée.


Exemples de flux de travail multi-étapes

Ces exemples montrent des chaînes complètes de requête/réponse pour les tâches courantes. Chaque étape utilise le format JSON-RPC ci-dessus.

Rapport de trafic hebdomadaire

Un flux de travail de rapport typique : découvrez les sites web, puis récupérez les statistiques des visiteurs, les pages populaires et les sources de trafic.

Étape 1 — Découvrez vos sites web :

RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "list_websites",
  "arguments": {}
}
}
Réponse (extrayez website_id)JSON
{
"jsonrpc": "2.0",
"id": 1,
"result": {
  "content": [{
    "type": "text",
    "text": "[{"id": "ws_abc123", "domain": "zenovay.com", "name": "Zenovay"}]"
  }]
}
}

Étape 2 — Obtenir un aperçu des visiteurs :

RequêteJSON
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
  "name": "get_visitors",
  "arguments": {
    "website_id": "ws_abc123",
    "time_range": "7d"
  }
}
}

Étape 3 — Obtenir les pages populaires :

RequêteJSON
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
  "name": "get_top_pages",
  "arguments": {
    "website_id": "ws_abc123",
    "time_range": "7d",
    "limit": 10
  }
}
}

Étape 4 — Obtenir les sources de trafic :

RequêteJSON
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
  "name": "get_traffic_sources",
  "arguments": {
    "website_id": "ws_abc123",
    "time_range": "7d"
  }
}
}

Coût total : 4 requêtes (1 + 1 + 1 + 1)


Audit de performance

Identifiez les problèmes de performance, les erreurs et obtenez des recommandations IA.

Étape 1 — Lister les sites web (même chose que ci-dessus, obtenez website_id)

Étape 2 — Vérifier les Core Web Vitals :

RequêteJSON
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
  "name": "get_performance_metrics",
  "arguments": {
    "website_id": "ws_abc123",
    "time_range": "7d"
  }
}
}

Étape 3 — Vérifier les erreurs :

RequêteJSON
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
  "name": "get_errors",
  "arguments": {
    "website_id": "ws_abc123",
    "time_range": "7d",
    "limit": 20
  }
}
}

Étape 4 — Obtenir les recommandations IA :

RequêteJSON
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
  "name": "get_recommendations",
  "arguments": {
    "website_id": "ws_abc123"
  }
}
}

Coût total : 4 requêtes (1 + 1 + 1 + 1)


Vérification rapide de l'état

Vérification rapide du quota restant et des visiteurs en direct actuels — idéal au début d'une session.

Étape 1 — Vérifier le quota restant :

RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_api_usage",
  "arguments": {}
}
}

Étape 2 — Vérifier les visiteurs en temps réel :

RequêteJSON
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
  "name": "get_realtime_visitors",
  "arguments": {
    "website_id": "ws_abc123"
  }
}
}

Coût total : 2 requêtes (1 + 1)


Comparaison semaine contre semaine

Comparez les métriques de cette semaine par rapport à la semaine dernière pour identifier les tendances.

Étape 1 — Lister les sites web (obtenez website_id)

Étape 2 — Comparer les périodes :

RequêteJSON
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
  "name": "compare_periods",
  "arguments": {
    "website_id": "ws_abc123",
    "current_period": "7d",
    "previous_period": "7d"
  }
}
}

Étape 3 — Détecter les anomalies :

RequêteJSON
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
  "name": "get_anomalies",
  "arguments": {
    "website_id": "ws_abc123",
    "time_range": "7d"
  }
}
}

Coût total : 3 requêtes (1 + 1 + 1)


Configuration et paramétrage du site web

Configurer un nouveau site web avec exclusions et suivi sans cookies.

Étape 1 — Créer le site web :

RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "create_website",
  "arguments": {
    "domain": "docs.example.com",
    "name": "Documentation"
  }
}
}

Étape 2 — Activer le suivi sans cookies :

RequêteJSON
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
  "name": "toggle_cookieless_tracking",
  "arguments": {
    "website_id": "NEW_WEBSITE_ID",
    "enabled": true
  }
}
}

Étape 3 — Exclure l'IP du bureau :

RequêteJSON
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
  "name": "add_ip_exclusion",
  "arguments": {
    "website_id": "NEW_WEBSITE_ID",
    "ip_address": "203.0.113.0/24",
    "label": "Office network"
  }
}
}

Étape 4 — Obtenir le code de suivi pour l'installation :

RequêteJSON
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
  "name": "get_tracking_code",
  "arguments": {
    "website_id": "NEW_WEBSITE_ID"
  }
}
}

Coût total : 4 requêtes (1 + 1 + 1 + 1)


Nouveaux outils

76. get_retention_data

Obtenir une analyse de cohorte de rétention montrant comment votre site web retient les visiteurs au fil du temps. Renvoie les données de cohorte groupées par la période de première visite du visiteur.

Coût : 1 requête | Nécessite : Pro+ (drapeau de fonctionnalité retentionAnalysis)

ParamètreTypeObligatoirePar défautDescription
website_idstringOuiL'UUID du site web
time_rangestringNon30dPlage temporelle : 7d, 30d, 90d, 1y
cohort_sizestringNonweekGroupement de cohorte : day, week, month
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_retention_data",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "time_range": "30d",
    "cohort_size": "week"
  }
}
}
RéponseJSON
{
"cohorts": [
  {
    "period": "2026-02-17",
    "visitors": 320,
    "retention": [100, 42.5, 28.1, 18.4]
  },
  {
    "period": "2026-02-24",
    "visitors": 285,
    "retention": [100, 38.9, 25.3]
  },
  {
    "period": "2026-03-03",
    "visitors": 310,
    "retention": [100, 41.0]
  },
  {
    "period": "2026-03-10",
    "visitors": 295,
    "retention": [100]
  }
],
"cohort_size": "week",
"time_range": "30d",
"summary": {
  "avg_week1_retention": 40.8,
  "avg_week2_retention": 26.7,
  "total_cohort_visitors": 1210
}
}

77. get_user_profiles

Obtenir les profils de visiteurs avec l'historique des sessions et les données comportementales. Renvoie les enregistrements de visiteurs individuels avec leur historique de visite, les pages consultées et les métriques d'engagement.

Coût : 1 requête

ParamètreTypeObligatoirePar défautDescription
website_idstringOuiL'UUID du site web
limitnumberNon20Profils à renvoyer (1-50)
country_codestringNonFiltrer par code de pays ISO (p. ex. US, DE)
min_sessionsnumberNonNombre minimum de sessions
time_rangestringNon30dPlage temporelle : 7d, 30d, 90d, 1y
RequêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_user_profiles",
  "arguments": {
    "website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "min_sessions": 3,
    "limit": 10
  }
}
}
RéponseJSON
{
"profiles": [
  {
    "visitor_id": "v_abc123",
    "first_seen": "2026-02-15T09:30:00Z",
    "last_seen": "2026-03-14T16:45:00Z",
    "total_sessions": 8,
    "total_pageviews": 34,
    "avg_session_duration_ms": 185000,
    "country": "US",
    "city": "San Francisco",
    "device_type": "desktop",
    "browser": "Chrome",
    "os": "macOS",
    "top_pages": ["/", "/pricing", "/docs"],
    "referrer": "google.com"
  }
],
"total": 156
}

Référence du protocole JSON-RPC

Toutes les requêtes MCP utilisent le format JSON-RPC 2.0 :

Enveloppe de requêteJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "tool_name",
  "arguments": { ... }
}
}

Méthodes disponibles :

MéthodeDescription
initializePoignée de main — renvoie les informations du serveur et les capacités
tools/listLister tous les outils disponibles avec les schémas
tools/callExécuter un outil
pingVérification de l'état

Format de réponse d'erreur :

Réponse d'erreurJSON
{
"jsonrpc": "2.0",
"id": 1,
"error": {
  "code": -32003,
  "message": "Daily query limit exceeded. Upgrade at https://app.zenovay.com/settings"
}
}

Voir Permissions & Limits pour la référence complète des codes d'erreur.

Cette page vous a-t-elle été utile ?