monsiteo aide

Messages et statistiques

Lire les messages reçus par le formulaire de contact d'un site, les marquer comme lus, les supprimer, et obtenir les statistiques de visites.

Les messages#

Quand un visiteur remplit le formulaire de la section Contact, le message est enregistré et envoyé par e-mail à l'adresse de contact du site (settings.business.email, ou à défaut l'e-mail du compte). L'API permet de les relire et de les gérer.

L'objet message#

Champ Type Description
id entier Identifiant.
site_id entier Site concerné.
name chaîne Nom du visiteur (150 caractères max.).
email chaîne E-mail du visiteur, pour lui répondre.
phone chaîne ou null Téléphone (facultatif).
message chaîne Texte du message (5 à 5 000 caractères).
ip chaîne ou null Adresse IP de l'envoi (lutte contre les abus).
read_at date ou null Date de lecture ; null = non lu.
created_at, updated_at date

Bon à savoir Les dates des messages sont au format ISO 8601 avec microsecondes et Z (UTC), par exemple 2026-10-26T09:45:12.000000Z.

Lister les messages#

GET /v1/sites/{site}/messages · Jeton

Messages du plus récent au plus ancien, 30 par page. Paramètre de requête : page (numéro de page, 1 par défaut).

curl "https://api.monsiteo.com/v1/sites/7/messages?page=1" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer 1|AbCdEfGhIjKlMnOpQrStUvWxYz0123456789abcd"

La réponse suit le format de pagination Laravel :

{
  "current_page": 1,
  "data": [
    {
      "id": 128,
      "site_id": 7,
      "name": "Sophie Lambert",
      "email": "sophie.lambert@exemple.be",
      "phone": "+32 470 12 34 56",
      "message": "Bonjour, faites-vous des commandes pour 25 personnes samedi soir ?",
      "ip": "203.0.113.24",
      "read_at": null,
      "created_at": "2026-10-26T09:45:12.000000Z",
      "updated_at": "2026-10-26T09:45:12.000000Z"
    }
  ],
  "first_page_url": "https://api.monsiteo.com/v1/sites/7/messages?page=1",
  "from": 1,
  "last_page": 1,
  "last_page_url": "https://api.monsiteo.com/v1/sites/7/messages?page=1",
  "links": [],
  "next_page_url": null,
  "path": "https://api.monsiteo.com/v1/sites/7/messages",
  "per_page": 30,
  "prev_page_url": null,
  "to": 1,
  "total": 1
}

Pour tout récupérer, suivez next_page_url jusqu'à ce qu'il vaille null. Erreurs : 403, 404.

Marquer comme lu ou non lu#

PATCH /v1/messages/{message} · Jeton

Paramètre Type Obligatoire Règles
read booléen non true par défaut (marque comme lu) ; false remet en non lu
curl -X PATCH https://api.monsiteo.com/v1/messages/128 \
  -H "Accept: application/json" -H "Content-Type: application/json" \
  -H "Authorization: Bearer 1|AbCdEfGhIjKlMnOpQrStUvWxYz0123456789abcd" \
  -d '{"read":true}'
{ "data": { "id": 128, "site_id": 7, "name": "Sophie Lambert", "email": "sophie.lambert@exemple.be", "phone": "+32 470 12 34 56", "message": "Bonjour, faites-vous des commandes pour 25 personnes samedi soir ?", "ip": "203.0.113.24", "read_at": "2026-10-26T10:02:00.000000Z", "created_at": "2026-10-26T09:45:12.000000Z", "updated_at": "2026-10-26T10:02:00.000000Z" } }

Erreurs : 403, 404.

Supprimer un message#

DELETE /v1/messages/{message} · Jeton

Suppression définitive.

curl -X DELETE https://api.monsiteo.com/v1/messages/128 \
  -H "Accept: application/json" \
  -H "Authorization: Bearer 1|AbCdEfGhIjKlMnOpQrStUvWxYz0123456789abcd"
{ "ok": true }

Statistiques de visites#

GET /v1/sites/{site}/stats · Jeton

Pages vues par jour sur une période, pages les plus consultées et nombre de messages non lus.

Paramètre (requête) Type Obligatoire Règles
days entier non nombre de jours, 30 par défaut ; ramené entre 7 et 365
curl "https://api.monsiteo.com/v1/sites/7/stats?days=7" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer 1|AbCdEfGhIjKlMnOpQrStUvWxYz0123456789abcd"
{
  "total": 412,
  "series": [
    { "day": "2026-10-20", "views": 48 },
    { "day": "2026-10-21", "views": 52 },
    { "day": "2026-10-22", "views": 61 },
    { "day": "2026-10-23", "views": 70 },
    { "day": "2026-10-24", "views": 95 },
    { "day": "2026-10-25", "views": 58 },
    { "day": "2026-10-26", "views": 28 }
  ],
  "top_pages": [
    { "path": "/", "views": 240 },
    { "path": "/notre-carte", "views": 151 },
    { "path": "/contact-page", "views": 21 }
  ],
  "messages_unread": 2
}
  • series contient un point par jour, jours sans visite compris (views à 0), du plus ancien à aujourd'hui.
  • top_pages : les 10 chemins les plus vus sur la période.
  • Sont comptées les pages vues du site publié. Les robots d'indexation, les outils automatiques et les aperçus de l'éditeur ne sont pas comptés. Aucun cookie n'est déposé chez vos visiteurs pour ces statistiques.

Erreurs : 403, 404.

Mis à jour le 26 octobre 2026