REST API

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)

401 Unauthorized
{
    "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.

Format de la réponse d'erreur
{
    "errors": [
        {
            "code": "string",
            "message": "string"
        }
    ]
}
Code Signification
400Bad Request — paramètres invalides ou JSON malformé.
401Unauthorized — clé API manquante ou invalide.
403Forbidden — votre plan n'inclut pas l'accès API.
404Not Found — la ressource demandée n'existe pas.
429Too Many Requests — limite de requêtes dépassée. Réessayez après le délai indiqué dans le header Retry-After.
500Internal Server Error — une erreur est survenue de notre côté.
POST /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"
}
GET /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"
}
GET /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"
}
GET /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
    }
}
GET /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
    }
}
GET /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
            }
        }
    ]
}