API Settings de projets
Settings d'équipe, brand, intégrations et webhooks par projet.
L'API Projects-Settings gère les paramètres liés aux projets qui pilotent le comportement des modules — goals, modules actifs, profils brand-voice, bindings d'intégration. Le pur CRUD de projet (/v1/projects) est documenté dans API Projets ; il s'agit ici de la couche de settings autour.
Tous les endpoints sous /v1/..., authentifiés Sanctum, team-scoped.
Goals
Les goals sont des objectifs mesurables d'un projet (par ex. « Top-3 pour 'best crm' », « 10 backlinks d'ici Q3 »). Des modules comme l'Action Center et le reporting les consomment comme ancres d'optimisation.
| Méthode | Endpoint | Description | Crédits |
|---|---|---|---|
| GET | /v1/goals |
Liste de tous les goals — filtre ?project_id= |
— |
| POST | /v1/goals |
Body {project_id, type, target, deadline?} |
— |
| DELETE | /v1/goals/{id} |
Supprimer le goal | — |
curl -X POST "$BASE/goals" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"project_id":7,"type":"keyword_top3","target":"best crm","deadline":"2026-09-01"}'
Activation des modules
Chaque projet a un set de modules activables (Backlinks, AVI, Site Audit, Rank Tracker ...). Les modules inactifs renvoient 403 dans l'UI et 409 {error:"module_inactive"} dans l'API.
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /v1/modules |
Liste de tous les modules avec {slug, name, active, requires_plan} |
| POST | /v1/modules/{module}/activate |
Activer le module pour l'équipe courante |
| POST | /v1/modules/{module}/deactivate |
Désactiver le module — les jobs en cours ne sont PAS interrompus |
# Activer le module Backlinks
curl -X POST "$BASE/modules/backlinks/activate" \
-H "Authorization: Bearer $TOKEN"
{
"data": {
"module": "backlinks",
"active": true,
"activated_at": "2026-05-01T09:14:01Z"
}
}
Profil de goal Action Center
Le Goal Profile est le cadre stratégique d'un projet (industry, persona, north-star metric). Action Center, outils IA et reporting s'y réfèrent.
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /v1/action-center/goal-profile |
Profil courant |
| POST | /v1/action-center/goal-profile |
Créer le profil {industry, persona, north_star, ...} |
| PATCH | /v1/action-center/goal-profile |
Mise à jour partielle des champs |
| GET | /v1/action-center/goal-templates |
Templates prédéfinis par branche |
| GET | /v1/action-center/industry-templates |
Defaults spécifiques à l'industry |
| GET | /v1/action-center/seo-detectors |
Détecteurs SEO actifs pour le projet |
Webhooks
Settings webhook par équipe — les events sont déclenchés à la fin d'un job (article ready, report completed, AVI checked). Schéma et définition d'endpoint : API Webhooks.
À retenir côté settings :
- L'URL de webhook est team-scoped, pas project-scoped — tous les projets tirent vers le même endpoint.
- Le filtre par event (
subscribed_events[]) se gère comme propriété du webhook.
Intégrations
Les intégrations externes (Google Search Console, GA4, Review Sources, CMS) sont gérées via des sous-APIs dédiées, mais leurs bindings apparaissent comme settings de projet :
| Domaine | Préfixe d'endpoint |
|---|---|
| Google (GSC/GA4) | /v1/google/... |
| Review Sources | /v1/review-sources/... |
| Intégrations CMS (WordPress, Shopify) | /v1/cms-integrations/... |
Par projet, il peut y avoir une propriété GSC et une propriété GA4 — les bindings multiples renvoient 409 Conflict.
# Lier une propriété GSC à un projet
curl -X POST "$BASE/google/gsc/properties/$PROP/link" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"project_id":7}'
Brand-Voice & style
Les profils brand-voice (style_profile) et content-goals sont gérés globalement par équipe, puis référencés par ID lors de la génération d'articles. Détails incl. champs : API Articles.
Codes de statut
| Code | Signification |
|---|---|
| 200 | OK (Read/Update) |
| 201 | Goal/Setting créé |
| 403 | Accès cross-team ou permission manquante |
| 404 | Project/Goal introuvable |
| 409 | Module inactif OU intégration déjà liée |
| 422 | Erreur de validation (par ex. slug industry invalide) |
Pièges
- Module-Deactivate n'arrête pas les jobs en cours. Si tu désactives un module, les jobs déjà dispatchés vont jusqu'au bout. Cancel via les endpoints de statut de job.
- Le Goal Profile est prérequis pour l'Action Center. Sans
goal_profile,/v1/action-center/pathet/todosrenvoient des arrays vides — pas d'erreur, mais pas d'output non plus. - Le link GSC nécessite une connection OAuth. L'appel link échoue avec
409si aucune connectiongoogle/connectionsn'existe.
Voir aussi : API Projets · API Webhooks · API Crédits.