HoplaDocs

Migrating from v1

API v2 uses English paths, fields, values and error codes. API v1 remains supported.

API v1 was released on October 28, 2026 with French names (/blocs, titre, reglages). API v2, released on October 29, 2026, exposes the same operations with English names. Both versions read and write the same data.

API v1 remains supported: existing integrations keep working without changes. New integrations should use v2.

What changes

v1v2
Base URLhttps://app.hopla.page/api/v1https://app.hopla.page/api/v2
Paths, fields, enum valuesFrenchEnglish
Error object{ "erreur": { "code", "message" } }, French codes{ "error": { "code", "message" } }, English codes
CSV export headeremail,prenom,inscrit,sourceemail,first_name,subscribed_at,source
MCP toolslire_page, ajouter_bloc…get_page, create_block…

Authentication, rate limits, HTTP statuses and response structure do not change. In v2 requests, a field sent with its v1 name is still accepted: you can migrate one call at a time.

Theme ids (onyx), social network ids (instagram), icon ids and the text of your page (titles, bio) are not translated.

MCP server

The MCP server lists its tools with English names and fields. Former tool names are still accepted and keep their French fields, so an agent configured before October 29, 2026 keeps working. Reconnect the client to load the new tool list.

v1v2
lire_pageget_page
lire_compteget_account
lire_statsget_analytics
lire_semaineget_weekly_views
lire_resumeget_analytics_summary
lire_listeget_email_list
lister_inscritslist_subscribers
lire_qr_codeget_qr_code
lire_sitefetch_url_preview
lire_fluxfetch_feed
lire_note_avisfetch_review_rating
lister_themeslist_themes
lister_reseauxlist_social_networks
lister_pictoslist_icons
lister_typeslist_block_types
lister_cleslist_api_keys
modifier_reglagesupdate_settings
ajouter_bloccreate_block
modifier_blocupdate_block
dupliquer_blocduplicate_block
supprimer_blocdelete_block
ordonner_blocsreorder_blocks
envoyer_imageupload_image
supprimer_inscritdelete_subscriber
envoyer_inscritssync_subscribers

Endpoints

v1v2
/page/page
/compte/account
/reglages/settings
/qr/qr-code
/blocs/blocks
/blocs/{id}/blocks/{id}
/blocs/{id}/dupliquer/blocks/{id}/duplicate
/ordre/blocks/order
/medias/media
/stats/analytics
/stats/semaine/analytics/week
/stats/resume/analytics/summary
/liste/email-list
/inscrits/subscribers
/inscrits/{id}/subscribers/{id}
/inscrits/envoyer/subscribers/sync
/apercu/fetch/preview
/flux/fetch/feed
/avis/fetch/rating
/cles/api-keys
/export/export
/themes/themes
/reseaux/social-networks
/pictos/icons
/types/block-types

Query parameters:

v1v2
periodeperiod
dufrom
auto
taillesize
limitelimit
departoffset

Fields

v1v2
ato
abonnementsubscription
accesaccess
adresseurl
adressePostaleaddress
apercupreview
appareildevice
appareilsdevices
avantprevious
blocblock
blocsblocks
boutonbutton
boutonsbuttons
brancheeconnected
bureaudesktopLayout
cachehiddenFor
cadeaugift
cheminpath
clekey
clesapiKeys
clesApiapiKeys
clicsclicks
compteaccount
compteARebourscountdown
conditionsAccepteestermsAccepted
coordonneescontact
couleurscolors
courantecurrent
creecreatedAt
creemAbonnementcreemSubscriptionId
creemClientcreemCustomerId
creneauschedule
defrom
debutstartsAt
dejaVueeverViewed
demanderPrenomaskFirstName
departoffset
derniereConnexionlastSignInAt
dispositionlayout
domainedomain
ecriturewriteAccess
effeteffect
enAttentepending
envoyesynced
envoyessynced
erreurerror
erreursfailed
essaitrial
exporteexportedAt
faitshighlights
famillefamily
finendsAt
finPeriodeperiodEnd
fonctionsfeatures
fondbackground
formeshape
fournisseurprovider
fuseautimezone
genrekind
historiqueStatsanalyticsRetentionDays
humeurmood
iconeicon
imageFondbackgroundImage
incluseincluded
inscritsubscribedAt
inscritssubscribers
integresinAppBrowser
jourdate
joursdays
jusquuntil
leat
libellelabel
limitelimit
listelist
listeBrancheeconnectedList
masquerhidden
mentiondisclosure
montantsamounts
nomname
nombrecount
noterating
offreplan
offreOffertecomplimentaryPlan
ombreshadow
outiltool
ouvertsopened
ouvrirAppsopenInApps
partageshareButton
partenariatpartnership
payscountries
periodeperiod
phrasesentence
pictosicons
placesseats
plagecustomRange
policefont
postejobTitle
precedentpreviousPeriod
prenomfirstName
preuveproof
prixprice
profilprofile
pseudousername
publicvisible
redirectionredirect
reglagessettings
reponseanswer
reseaunetwork
reseauxsocialLinks
reseauxPositionsocialLinksPosition
restantesremaining
resumesummary
resumeHebdoweeklySummary
semaineweek
sensiblesensitive
seriedaily
societecompany
sousTitresubtitle
statistiquesevents
statsanalytics
statutstatus
suivantnext
supprimedeleted
synchrosyncStatus
teintetint
telephonephone
textetext
titretitle
tontrend
utiliseelastUsedAt
vedettefeatured
versAppopenedInApp
visiteursvisitors
vouvoiementformal
vuesviews
vuesReseauxnetworkViews

In GET /api-keys, debut becomes prefix; in GET /email-list, semaine becomes thisWeek; at the root of GET /social-networks, reseaux becomes socialNetworks.

Block types

v1v2
lienlink
titreheading
textetext
derniere-videolatest-video
inscriptionemail-signup
preuveproof
produitproduct
soutientip
reservationbooking
musiquemusic
coordonneescontact-card
lieulocation
galeriegallery
formulairecontact-form
fluxfeed

Enum values

v1v2
format: boutonbutton
format: bandeaubanner
format: cartecard
animation: aucunenone
animation: refletshine
animation: orbiteorbit
animation: lueurglow
animation: ondewave
animation: respirationbreathe
animation: rebondbounce
animation: secousseshake
photo: ronderound
photo: grandelarge
socialLinksPosition: hauttop
socialLinksPosition: basbottom
style: pleinsolid
style: contouroutline
style: douxsoft
style: reliefraised
style: verreglass
shape: pilulepill
shape: arrondirounded
shape: carresquare
shadow: aucunenone
shadow: subtilesubtle
shadow: marqueestrong
kind: noterating
kind: compteurcounter
kind: temoignagetestimonial
disclosure: publiciteadvertising
layout: listelist
layout: grillegrid
effect: avanthighlight
effect: affichershow
effect: seulementonly
effect: saufexcept
desktopLayout: colonnecolumn
desktopLayout: profilprofile
desktopLayout: onepageone-page
font: geometriquegeometric
font: techniquetechnical
font: condenseecondensed
font: eleganteelegant
font: editorialeeditorial
plan: gratuitfree
period: moismonth
period: anyear
trend: hausseup
trend: baissedown
trend: neutreneutral
family: sombredark
family: clairlight
family: couleurcolor
family: degradegradient
family: decalequirky
image: partageshare
image: vignettethumbnail

Plan features

Keys of features in GET /account:

v1v2
sansMentionnoBranding
blocsunlimitedBlocks
vitrinestorefront
couleurscustomColors
programmationscheduling
avisreviews
statsanalytics
formulairecontactForm
galeriegallery
redirectionredirect
fondbackgroundImage
grandePhotolargeProfilePhoto
grillegridLayout
heuretimeSchedule
listeEmailemailList
payscountryTargeting
cadeauleadMagnet
fluxfeed

Error codes

v1v2
cle_absentemissing_api_key
cle_invalideinvalid_api_key
trop_d_essaistoo_many_invalid_keys
compte_suspenduaccount_suspended
conditionsterms_not_accepted
offreplan_required
trop_d_appelsrate_limited
lecture_seuleread_only_key
rien_a_changerempty_update
theme_inconnuunknown_theme
bloc_introuvableblock_not_found
type_reserveblock_type_unavailable
bloc_refuseblock_rejected
adresse_invalideinvalid_url
type_inconnuunknown_block_type
ordre_incompletinvalid_order
periodeinvalid_period
image_absentemissing_image
image_trop_grosseimage_too_large
format_imageunsupported_image_format
plus_de_placestorage_quota_exceeded
inscrit_introuvablesubscriber_not_found
rien_de_brancheno_integration
adresseinvalid_url
trop_de_lecturesrate_limited
site_illisiblefetch_failed
serveurinternal_error
trop_grospayload_too_large
jsoninvalid_json
methodemethod_not_allowed
introuvablenot_found

On this page