Skip to content

Sites web — CRUD

Gestion des sites web rattachés à un client (URL, CMS détecté, monitoring, services associés).

Source : server/publicApi/routes/crm.ts:309-401. Schéma : insertWebsiteSchema dans shared/schema.ts.

Vue d'ensemble

MéthodePathScope
GET/websiteswebsites:read
GET/websites/:idwebsites:read
POST/websiteswebsites:write
PATCH/websites/:idwebsites:write
DELETE/websites/:idwebsites:delete

Webhooks émis : website.created, website.updated, website.deleted.


GET /websites

Liste paginée des sites de l'agence. Filtre optionnel par client.

Query params

ParamTypeDescription
limitintMax résultats (défaut 50, max 100)
offsetintOffset
clientIdintFiltrer sur un client précis

Réponse 200

json
{
  "data": [
    {
      "id": 1,
      "agencyId": 7,
      "clientId": 42,
      "url": "https://acme.fr",
      "cms": "wordpress",
      "isActive": true,
      "createdAt": "2026-01-15T09:00:00.000Z"
    }
  ],
  "total": 23,
  "limit": 50,
  "offset": 0
}

GET /websites/:id

Lecture par ID. 404 si hors agence.


POST /websites

Création d'un site web.

Body

json
{
  "clientId": 42,
  "url": "https://acme.fr",
  "cms": "wordpress",
  "isActive": true,
  "notes": "Site vitrine principal"
}

Le clientId doit appartenir à votre agence (vérifié côté serveur).

Webhook émis

website.created.


PATCH /websites/:id

Mise à jour partielle.

Webhook émis

website.updated.


DELETE /websites/:id

Suppression définitive (cascade FK selon le schéma).

Webhook émis

website.deleted avec { "id": 42 }.

Exemple

bash
curl -X POST \
  -H "x-api-key: spk_..." \
  -H "Content-Type: application/json" \
  -d '{"clientId":42,"url":"https://acme.fr","cms":"wordpress"}' \
  https://beta.stormeo.io/api/public/v1/websites

StormeoOS API