Skip to content

PUBLIC API

The results of your opinion platform, in your tools

VoxPop's public API serves AGGREGATED results — polls, shares, trends — for monitoring and analysis tools. No member data ever comes out of it: no vote, no profile, no personal identifier.

What the API guarantees

  • No member data: never a vote, never a profile.
  • Anonymity floor of 5: a poll with fewer than 5 votes is not served; an option with fewer than 5 votes is merged into “others”; every count is rounded to a multiple of 5.
  • Shares are computed on the rounded counts, and the margin of error on the rounded sample size.
  • A poll that is not public, is sensitive, in quarantine or removed by moderation is not found (404), as if it did not exist.
  • These figures describe the VoxPop panel, never a population: do not present them as “what a country thinks”.
Read how VoxPop measures and protects results

Getting a key

API keys are issued on request during VoxPop's free launch: they are trial keys with a small quota. When paid plans open, the API is reserved for Pro and Advertiser accounts — coming soon.

A key is handed over only once: VoxPop keeps only its fingerprint and cannot give it back. If you lose it, it is replaced.

Authenticating

Send your key in the Authorization: Bearer vp_… header (the X-API-Key header is also accepted). Never in the address: addresses end up in logs.

Base address

https://voxpopapp.app/api

Quotas

60 requests per minute, then a daily quota (UTC day) depending on the plan: 1,000 for a Pro account, 10,000 for an Advertiser account, 200 for a trial key. Beyond that: a 429 response with a Retry-After header.

Routes

All routes answer in JSON, read-only (GET).

GET /api/v1/sondages

Public polls with at least 5 votes, newest first.

Parameters

limitein the address · optionalNumber of polls per page (1 to 50, 20 by default).
curseurin the address · optionalThe “curseur” value from the previous page; “curseur” is null on the last page.
categoriein the address · optionalRestrict to one theme (for example “politique”).

Response fields

  • donnees
  • donnees.id
  • donnees.titre
  • donnees.categorie
  • donnees.creeLe
  • donnees.clos
  • donnees.sponsorise
  • donnees.voix
  • curseur
  • k

Example

curl -H "Authorization: Bearer $VOXPOP_API_KEY" "https://voxpopapp.app/api/v1/sondages?limite=5"

GET /api/v1/sondages/{id}/resultats

The aggregated results of a public poll: shares, rounded sample size and margin of error.

Parameters

idin the path · requiredThe poll identifier, as the poll list gives it.

Response fields

  • id
  • titre
  • categorie
  • creeLe
  • clos
  • voix
  • margeDErreur
  • k
  • questions
  • questions.texte
  • questions.voix
  • questions.options
  • questions.options.libelle
  • questions.options.voix
  • questions.options.part
  • questions.autres

Example

curl -H "Authorization: Bearer $VOXPOP_API_KEY" "https://voxpopapp.app/api/v1/sondages/IDENTIFIANT_DU_SONDAGE/resultats"

GET /api/v1/tendances

The comparison by theme and the topics rising right now.

Parameters

categoriein the address · optionalRestrict to one theme.

Response fields

  • categories
  • categories.categorie
  • categories.disponible
  • categories.raison
  • categories.nbSondages
  • categories.nettete
  • categories.partOui
  • categories.calculeLe
  • sujetsEnMontee
  • sujetsEnMontee.id
  • sujetsEnMontee.titre
  • sujetsEnMontee.categorie
  • sujetsEnMontee.voix
  • sujetsEnMontee.fenetreHeures
  • k

Example

curl -H "Authorization: Bearer $VOXPOP_API_KEY" "https://voxpopapp.app/api/v1/tendances?categorie=politique"

GET /api/v1/ancrages

The daily roots of the VOX journal, with their anchoring state. While anchoring is not active, the state says “non_ancre”: we only say “anchored” with a transaction.

Parameters

limitein the address · optionalNumber of days (1 to 90, 30 by default).

Response fields

  • donnees
  • donnees.jour
  • donnees.racine
  • donnees.racinePrecedente
  • donnees.ancrage
  • donnees.ancrage.etat
  • donnees.ancrage.txHash

Example

curl -H "Authorization: Bearer $VOXPOP_API_KEY" "https://voxpopapp.app/api/v1/ancrages?limite=7"

Errors

The response body always carries the “erreur” and “message” fields.

StatusCodeMeaning
401cle_manquanteNo key in the request.
401cle_invalideUnknown key.
401cle_revoqueeRevoked key.
403a_venirThe API arrives with the paid plans (only trial keys answer until then).
404introuvableThe poll does not exist, is not public, is sensitive, removed, or has fewer than 5 votes.
429trop_de_requetesPer-minute quota exceeded: wait Retry-After seconds.
429quota_epuiseDaily quota used up (UTC day): resumes at midnight UTC.

OpenAPI specification

The complete specification (OpenAPI 3) is the one these pages describe: you can load it into your tools.

Terms of use

The aggregates may be reused with a mention of VoxPop; any attempt to re-identify people is forbidden. The full text of the API terms of use will be attached to the terms before keys open.

VoxPop

The platform where every voice matters. Connect, share, and impact your community.

Contact

E-mail

contact@voxpopapp.app

Office

Lotissement Taapuna, Lot 20, Punaauia, Tahiti

© 2026 VoxPop. All rights reserved.

Status

Cookies

Security