Pour les développeurs

Construisez avec Votinova

API REST, webhooks, connecteurs et un serveur MCP. Tout ce que fait l'application web est aussi dans l'API : créez une session, ouvrez-la et recevez les résultats dans votre stack en moins de cinq minutes.

  1. Créez un identifiant dans votre espace — deux scopes, à l'échelle de l'organisation.
  2. Lancez votre premier appel : créez et ouvrez une session depuis curl.
  3. Abonnez-vous à un webhook et recevez les résultats à la clôture de chaque question.
curl -X POST https://api.votinova.prd.atbionapps.com/public/v1/sessions \  -H "X-API-Key: vz_live_…" \  -d '{ "presentation_id": "prs_8f3k2" }' 200 OK   · X-RateLimit-Remaining: 119{  "id": "ses_71xw9",  "join_code": "482913",  "state": "LIVE"}

Toutes les surfaces, un même contrat

Chaque intégration dérive du même document OpenAPI. Un nouvel endpoint apparaît partout à la fois.

Ce qu'on construit avec

Les résultats dans votre CRM

Synchronisez réponses et présence vers votre CRM ou votre entrepôt de données dès la clôture de chaque question — un webhook vous prévient, sans sondage.

Vos propres rapports

KPIs, participants et résultats par l'API avec pagination par curseur : montez le rapport exactement comme votre organisation le veut.

Des sessions depuis votre logiciel

Créez, ouvrez et conduisez des sessions depuis votre backend, vos outils internes ou votre agent — la même API que cette application web.

Conçu pour les agents

Votre agent connaît déjà Votinova

Un serveur MCP distant avec des outils dérivés du document OpenAPI, filtrés par les scopes de votre identifiant. Et un llms.txt pour que tout modèle trouve la documentation.

Configurer le serveur MCP
{  "mcpServers": {    "votinova": {      "url": "https://mcp.votinova.com/mcp",      "headers": { "Authorization": "Bearer vz_live_…" }    }  }}

Derniers changements de l'API

Changelog
  • ADDITIVE

    The participant roster now says how each person was let in: identity_seal is VERIFIED when an identity provider vouched for them, GUEST when they came through the invited-guest link, and UNVERIFIED when neither happened. Without it an integrator reading a roster of names could not tell which of them anyone had actually checked. Additive: no existing field changed. The same release finishes naming two closed domains the document was already enforcing but never said out loud: the export format (csv, xlsx) and the webhook connector (ZAPIER, POWER_AUTOMATE) — until now the only way to learn either was to send a wrong value and read the 400.

  • ADDITIVE

    Per-question results now carry the spinner wheel's spin log (spin_outcomes) and, for ordering questions, how many people put each item in each position (placement_accuracy[].counts_by_position). Both were produced internally and never published; a spinner wheel's results envelope used to arrive empty. Additive: no existing field changed.

  • ADDITIVE

    Discovery without a credential: the enforced rate limits, the webhook retry schedule and the published event catalogue, plus this changelog itself.

Quota par plan

  • PRO120 requêtes toutes les 60 s
  • TEAM600 requêtes toutes les 60 s
  • ENTERPRISE3000 requêtes toutes les 60 s

Votre quota voyage dans chaque réponse (en-têtes X-RateLimit-*).