Documentation API
Intégrez les audits WMSS dans votre workflow. Lancez des analyses, récupérez les résultats et comparez vos sites par programmation.
Introduction
L'API REST WMSS vous permet de lancer des audits de sites web, de suivre leur progression et de récupérer les données de vos sites par programmation. Toutes les requêtes et réponses utilisent le format JSON. L'API est disponible avec le plan Enterprise.
URL de base
https://wmss.io/api
Format de réponse
Toutes les réponses sont en JSON. Les réponses réussies retournent la ressource directement ou dans une enveloppe {data, meta} pour les listes.
Authentification
Authentifiez chaque requête en incluant votre clé API dans le header Authorization en tant que Bearer token.
Header
Authorization: Bearer wmss_your_api_key_here
Les clés API sont gérées depuis votre compte. Connectez-vous et accédez aux Clés API pour en générer une.
Réponse d'erreur (clé invalide)
{
"errors": [
{
"code": "unauthorized",
"message": "Invalid or missing API key."
}
]
}
Erreurs
L'API utilise les codes de statut HTTP standard. Les réponses d'erreur incluent toujours un code d'erreur et un message lisible.
{
"errors": [
{
"code": "string",
"message": "string"
}
]
}
| Code | Signification |
|---|---|
| 400 | Bad Request — paramètres invalides ou JSON malformé. |
| 401 | Unauthorized — clé API manquante ou invalide. |
| 403 | Forbidden — votre plan n'inclut pas l'accès API. |
| 404 | Not Found — la ressource demandée n'existe pas. |
| 429 | Too Many Requests — limite de requêtes dépassée. Réessayez après le délai indiqué dans le header Retry-After. |
| 500 | Internal Server Error — une erreur est survenue de notre côté. |
/api/analyze
Lance une nouvelle analyse de site web. Retourne immédiatement un objet analyse en attente.
Corps de la requête
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| url | string | Oui | L'URL complète du site à analyser (doit inclure https://). |
| tier | string | Non | "free" (frontend uniquement) ou "paid" (frontend + backend). Par défaut "free". |
Exemple de requête
curl -X POST https://wmss.io/api/analyze \
-H "Authorization: Bearer wmss_your_api_key" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com", "tier": "free"}'
Exemple de réponse — 202 Accepted
{
"id": "01HQ3X...",
"url": "https://example.com",
"tier": "free",
"status": "pending",
"created_at": "2026-03-12T10:30:00+00:00"
}
/api/analysis/{id}
Récupère une analyse par son ID. Inclut les résultats des vérifications lorsque l'analyse est terminée.
Paramètres de chemin
| Paramètre | Type | Description |
|---|---|---|
| id | string (UUID) | L'UUID de l'analyse retourné par POST /api/analyze. |
Exemple de requête
curl https://wmss.io/api/analysis/01HQ3X... \
-H "Authorization: Bearer wmss_your_api_key"
Exemple de réponse — en cours d'exécution
{
"id": "01HQ3X...",
"url": "https://example.com",
"status": "running",
"cms": "wordpress",
"cms_version": "6.4.2",
"overall_score": null,
"scores": null,
"check_results": []
}
Exemple de réponse — une fois terminée
{
"id": "01HQ3X...",
"url": "https://example.com",
"status": "completed",
"cms": "wordpress",
"cms_version": "6.4.2",
"overall_score": 72,
"scores": {
"performance": 65,
"security": 80,
"seo": 75,
"accessibility": 60,
"best_practices": 82
},
"check_results": [
{
"check": "HttpSecurityHeadersCheck",
"category": "security",
"score": 20,
"severity": "major",
"passed": false,
"data": {
"missing": ["content-security-policy", "permissions-policy"],
"present": ["strict-transport-security", "x-frame-options", "x-content-type-options", "referrer-policy"]
}
}
],
"created_at": "2026-03-12T10:30:00+00:00",
"completed_at": "2026-03-12T10:31:12+00:00"
}
/api/analysis/{id}/progress
Suivre la progression en temps réel d'une analyse en cours.
Interrogez cet endpoint toutes les 2-3 secondes tant que le statut est "running". Arrêtez quand le statut devient "completed" ou "failed".
Exemple de requête
curl https://wmss.io/api/analysis/01HQ3X.../progress \
-H "Authorization: Bearer wmss_your_api_key"
Exemple de réponse
{
"status": "running",
"checks_total": 20,
"checks_done": 14,
"cms": "wordpress",
"current_check": "FontOptimizationCheck"
}
/api/sites
Liste tous les sites appartenant à votre organisation.
Exemple de requête
curl https://wmss.io/api/sites \
-H "Authorization: Bearer wmss_your_api_key"
Exemple de réponse
{
"data": [
{
"id": "01HQ4Y...",
"url": "https://client-a.com",
"cms": "wordpress",
"last_analyzed_at": "2026-03-11T14:20:00+00:00",
"latest_score": 85,
"active": true
},
{
"id": "01HQ5Z...",
"url": "https://client-b.com",
"cms": "magento2",
"last_analyzed_at": "2026-03-10T09:15:00+00:00",
"latest_score": 62,
"active": true
}
],
"meta": {
"total": 2,
"page": 1,
"per_page": 25
}
}
/api/sites/{id}/audits
Liste tous les audits d'un site spécifique, triés par date décroissante.
Paramètres de chemin
| Paramètre | Type | Description |
|---|---|---|
| id | string (UUID) | L'UUID du site. |
Exemple de requête
curl https://wmss.io/api/sites/01HQ4Y.../audits \
-H "Authorization: Bearer wmss_your_api_key"
Exemple de réponse
{
"data": [
{
"id": "01HQ6A...",
"url": "https://client-a.com",
"status": "completed",
"tier": "free",
"overall_score": 85,
"created_at": "2026-03-11T14:20:00+00:00",
"completed_at": "2026-03-11T14:21:05+00:00"
},
{
"id": "01HQ2B...",
"url": "https://client-a.com",
"status": "completed",
"tier": "paid",
"overall_score": 78,
"created_at": "2026-03-05T10:00:00+00:00",
"completed_at": "2026-03-05T10:02:30+00:00"
}
],
"meta": {
"total": 2,
"page": 1,
"per_page": 25
}
}
/api/compare
Compare les scores de plusieurs sites. Nécessite 1 à 10 identifiants de sites.
Paramètres de requête
| Paramètre | Type | Requis | Description |
|---|---|---|---|
| siteIds[] | string[] | Oui | Tableau d'UUID de sites à comparer (1 à 10). |
Exemple de requête
curl "https://wmss.io/api/compare?siteIds[]=01HQ4Y...&siteIds[]=01HQ5Z..." \
-H "Authorization: Bearer wmss_your_api_key"
Exemple de réponse
{
"sites": [
{
"id": "01HQ4Y...",
"url": "https://client-a.com",
"overall_score": 85,
"scores": {
"performance": 80,
"security": 90,
"seo": 85,
"accessibility": 78,
"best_practices": 92
}
},
{
"id": "01HQ5Z...",
"url": "https://client-b.com",
"overall_score": 62,
"scores": {
"performance": 55,
"security": 70,
"seo": 60,
"accessibility": 50,
"best_practices": 75
}
}
]
}