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éthode | Path | Scope |
|---|---|---|
GET | /websites | websites:read |
GET | /websites/:id | websites:read |
POST | /websites | websites:write |
PATCH | /websites/:id | websites:write |
DELETE | /websites/:id | websites: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
| Param | Type | Description |
|---|---|---|
limit | int | Max résultats (défaut 50, max 100) |
offset | int | Offset |
clientId | int | Filtrer 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
clientIddoit 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