Endpoints publics
Les routes accessibles sans jeton : catalogue des sections, formules et prix, vérification d'une adresse monsiteo.com et demande de site sur mesure.
Ces routes ne demandent pas de jeton. Elles servent notamment à la vitrine monsiteo.com, au formulaire d'inscription et à l'éditeur avant connexion.
Racine de l'API#
GET https://api.monsiteo.com/ · Public
curl https://api.monsiteo.com/ -H "Accept: application/json"
{ "name": "Monsiteo API", "version": "v1", "docs": "https://docs.monsiteo.com/api" }
Catalogue des sections#
GET /v1/catalog · Public · mis en cache 10 minutes (Cache-Control: public, max-age=600)
Renvoie tout ce dont un éditeur a besoin pour construire ses formulaires : types de sections avec leurs variantes et champs, icônes, polices, métiers et valeurs de style. C'est la même source que la page Format des sections.
curl https://api.monsiteo.com/v1/catalog -H "Accept: application/json"
{
"sections": [
{
"type": "hero",
"label": "Bannière d'accueil",
"icon": "star",
"category": "Accueil",
"variants": { "centered": "Centré", "split": "Texte et image", "image": "Image plein fond" },
"fields": [
{ "key": "eyebrow", "type": "text", "label": "Petit titre" },
{ "key": "title", "type": "text", "label": "Titre", "required": true },
{ "key": "subtitle", "type": "textarea", "label": "Sous-titre" },
{ "key": "image", "type": "image", "label": "Image" },
{ "key": "button_label", "type": "text", "label": "Texte du bouton" },
{ "key": "button_link", "type": "url", "label": "Lien du bouton" },
{ "key": "secondary_label", "type": "text", "label": "Texte du 2e bouton" },
{ "key": "secondary_link", "type": "url", "label": "Lien du 2e bouton" }
],
"defaults": { "title": "Bienvenue chez nous", "subtitle": "Présentez votre activité en une phrase claire.", "button_label": "Nous contacter", "button_link": "#contact" }
}
],
"icons": ["sparkles", "heart", "check", "star", "scissors"],
"fonts": [ { "name": "Bricolage Grotesque", "category": "sans", "weights": "400,600,700,800" } ],
"activities": {
"restaurant": { "label": "Restaurant", "schema": "Restaurant" },
"friterie": { "label": "Friterie / snack", "schema": "FastFoodRestaurant" }
},
"backgrounds": ["default", "surface", "primary", "dark", "image"],
"radius": ["none", "sm", "md", "lg", "full"],
"buttons": ["solid", "outline", "pill"]
}
(listes abrégées). Détail des clés :
| Clé | Contenu |
|---|---|
sections |
Un objet par type : type, label, icon, category (regroupement dans l'éditeur), variants (clé vers libellé), fields (voir ci-dessous), defaults (contenu d'une nouvelle section). |
icons |
Icônes utilisables dans les champs icon (noms Lucide). |
fonts |
Polices proposées : name, category (sans, serif, script, display), weights. |
activities |
Métiers : clé vers label et type schema.org utilisé dans les données structurées. |
backgrounds, radius, buttons |
Valeurs autorisées pour le fond des sections, les arrondis et le style de boutons du thème. |
Chaque champ (fields) a une key, un type (text, textarea, richtext, image, url, email, tel, color, select, toggle, list), un label, et selon le cas required, options (objet clé vers libellé, ou la chaîne "icons" pour la liste d'icônes), min, max et fields (sous-champs d'une liste).
Formules#
GET /v1/plans · Public
curl https://api.monsiteo.com/v1/plans -H "Accept: application/json"
{
"trial_days": 14,
"plans": [
{ "key": "free", "name": "Gratuit", "formula": 1, "monthly": 0, "yearly": 0, "sites": 1, "pages": 5, "custom_domain": false, "branding": true, "ai_generations": 3, "storage_mb": 200, "novadesko": false },
{ "key": "site", "name": "Site", "formula": 1, "monthly": 9, "yearly": 90, "sites": 1, "pages": 30, "custom_domain": true, "branding": false, "ai_generations": 50, "storage_mb": 2048, "novadesko": false },
{ "key": "site_novadesko", "name": "Site + Novadesko", "formula": 2, "monthly": 24, "yearly": 240, "sites": 3, "pages": 100, "custom_domain": true, "branding": false, "ai_generations": 200, "storage_mb": 10240, "novadesko": true }
],
"agency": { "formula": 3, "name": "Sur mesure", "form": "https://monsiteo.com/sur-mesure" }
}
Les prix sont en euros TTC (monthly par mois, yearly par an). pages est le nombre de pages par site, storage_mb le stockage d'images du compte, branding indique si la mention « Créé avec Monsiteo » est affichée. La formule 3 (Sur mesure) est sur devis, via le formulaire indiqué dans agency.form.
Vérifier une adresse#
GET /v1/slugs/check · Public · 60 requêtes par minute
Vérifie qu'une adresse <slug>.monsiteo.com est valide et libre, ou propose une adresse à partir d'un nom.
| Paramètre (requête) | Type | Obligatoire | Règles |
|---|---|---|---|
slug |
chaîne | oui sauf si name |
100 caractères max. ; mis en minuscules avant vérification |
name |
chaîne | non | 150 caractères max. ; seul, renvoie une suggestion |
site_id |
entier | non | site à ignorer (pour vérifier l'adresse actuelle d'un site que l'on renomme) |
Vérifier une adresse :
curl "https://api.monsiteo.com/v1/slugs/check?slug=friterie-william" -H "Accept: application/json"
{ "slug": "friterie-william", "available": false, "message": "Cette adresse est déjà prise.", "suggestion": "friterie-william-2" }
{ "slug": "friterie-namur", "available": true, "message": null, "suggestion": null }
Obtenir une suggestion à partir d'un nom (accents, apostrophes et espaces sont convertis) :
curl "https://api.monsiteo.com/v1/slugs/check?name=Friterie%20Chez%20L%C3%A9on" -H "Accept: application/json"
{ "slug": "friterie-chez-leon", "available": true }
Les messages possibles sont ceux de la création d'un site. Adresses réservées :
admin, api, app, docs, www, mail, blog, smtp, imap, pop, webmail, ftp, cdn, assets, static, status, staging, dev, test, demo-admin, dashboard, help, support, aide, compte, account, billing, facturation, login, connexion, register, inscription, auth, sso, oauth, ns1, ns2, mx, autodiscover, autoconfig, monsiteo, novadesko, hello, noreply, contact, pay, stripe, webhook, webhooks, img, images, media, files, storage
Demande sur mesure#
POST /v1/agency-requests · Public (jeton facultatif) · 5 requêtes par 10 minutes
Envoie une demande de site réalisé par l'équipe (formule 3). L'équipe est prévenue par e-mail et le demandeur reçoit un accusé de réception. Si un jeton est envoyé, la demande est rattachée au compte.
| Paramètre | Type | Obligatoire | Règles |
|---|---|---|---|
name |
chaîne | oui | 150 caractères max. |
email |
chaîne | oui | e-mail valide, 190 caractères max. |
message |
chaîne | oui | 20 à 5 000 caractères |
phone |
chaîne | non | 40 caractères max. |
company |
chaîne | non | 190 caractères max. |
activity |
chaîne | non | 190 caractères max. |
budget |
chaîne | non | 40 caractères max. (texte libre, par exemple « 1 500 à 3 000 € ») |
deadline |
chaîne | non | 40 caractères max. (texte libre, par exemple « avant mars ») |
curl -X POST https://api.monsiteo.com/v1/agency-requests \
-H "Accept: application/json" -H "Content-Type: application/json" \
-d '{"name":"William Dupont","email":"william@friterie-william.be","phone":"+32 81 12 34 56","company":"Friterie William","activity":"Friterie","budget":"1 500 à 3 000 €","deadline":"Avant le printemps","message":"Nous ouvrons un deuxième point de vente et voulons un site avec commande en ligne."}'
Réponse 201 :
{ "message": "Merci ! Notre équipe vous recontacte sous 1 jour ouvrable." }
Erreurs : 422, 429.
Mis à jour le 26 octobre 2026