Intégrez le scan de sécurité ScanVibe dans votre pipeline CI/CD. Détectez les vulnérabilités avant la mise en production.
L'API ScanVibe vous permet de scanner programmatiquement n'importe quelle URL pour détecter les vulnérabilités de sécurité. Conçue pour l'intégration CI/CD, elle retourne un rapport de sécurité structuré avec scores, notes et résultats par catégorie.
URL de base
https://scanvibe.dev/api/v1Toutes les requêtes et réponses utilisent JSON. L'API suit les conventions REST.
Toutes les requêtes API nécessitent un token Bearer. Générez votre token API depuis le tableau de bord ScanVibe dans Compte > Tokens API.
L'accès API nécessite un plan Business (29$/mois).
Incluez votre token dans l'en-tête Authorization :
Authorization: Bearer sv_live_your_token_hereLes tokens sont préfixés par sv_live_
/api/v1/scanSoumettez une URL pour un scan de sécurité. Le scan s'exécute de manière synchrone et retourne le rapport complet.
curl
curl -X POST https://scanvibe.dev/api/v1/scan \
-H "Authorization: Bearer sv_live_your_token_here" \
-H "Content-Type: application/json" \
-d '{
"url": "https://my-app.vercel.app",
"threshold": 70
}'| Field | Type | Status | Description |
|---|---|---|---|
url | string | requis | L'URL à scanner. Doit être une URL HTTP(S) valide et publiquement accessible. |
threshold | number | optionnel | Score minimum acceptable (0-100). Si le score du scan est inférieur à cette valeur, l'API retourne HTTP 422 au lieu de 200. Idéal pour les portes CI/CD. |
multiPage | boolean | défaut: false | Activer le scan multi-pages. Explore et scanne les pages liées (fonctionnalité du plan Business). |
Retourne le rapport de scan complet quand le score atteint ou dépasse le seuil (ou si aucun seuil n'est défini).
{
"id": "clx1abc2d0001abcdef",
"url": "https://my-app.vercel.app",
"score": 74,
"grade": "C",
"results": [
{
"category": "ssl",
"score": 100,
"severity": "pass",
"summary": "Valid SSL certificate with strong configuration"
},
{
"category": "headers",
"score": 45,
"severity": "high",
"summary": "Missing Content-Security-Policy and X-Frame-Options"
},
{
"category": "secrets",
"score": 60,
"severity": "medium",
"summary": "Supabase anon key found in client bundle"
}
]
}| Field | Description |
|---|---|
id | Identifiant unique du scan |
url | L'URL scannée |
score | Score de sécurité global (0-100) |
grade | Note lettrée (A, B, C, D ou F) |
results | Tableau de résultats par catégorie |
.category | Catégorie de sécurité (ex. : ssl, headers, secrets) |
.score | Score de la catégorie (0-100) |
.severity | Niveau de sévérité : critical, high, medium, low, info ou pass |
.summary | Résumé lisible des résultats |
Utilisez le paramètre threshold pour faire échouer votre pipeline CI quand le score de sécurité descend sous un seuil acceptable. L'API retourne HTTP 422 quand le score est inférieur au seuil.
Ajoutez cette étape à votre workflow GitHub Actions pour conditionner les déploiements à un score de sécurité minimum :
# .github/workflows/security.yml
name: Security Scan
on:
push:
branches: [main]
pull_request:
jobs:
scanvibe:
runs-on: ubuntu-latest
steps:
- name: ScanVibe Security Gate
run: |
RESPONSE=$(curl -s -w "\n%{http_code}" \
-X POST https://scanvibe.dev/api/v1/scan \
-H "Authorization: Bearer ${{ secrets.SCANVIBE_TOKEN }}" \
-H "Content-Type: application/json" \
-d '{"url": "https://my-app.vercel.app", "threshold": 70}')
HTTP_CODE=$(echo "$RESPONSE" | tail -1)
BODY=$(echo "$RESPONSE" | head -n -1)
if [ "$HTTP_CODE" -eq 422 ]; then
echo "Security score below threshold!"
echo "$BODY" | jq .
exit 1
elif [ "$HTTP_CODE" -ne 200 ]; then
echo "Scan failed with HTTP $HTTP_CODE"
echo "$BODY"
exit 1
fi
echo "Security scan passed!"
echo "$BODY" | jq '{score: .score, grade: .grade}'L'API utilise les codes HTTP standards. Les réponses d'erreur contiennent un corps JSON avec un champ message.
| Code | Signification |
|---|---|
200 | Scan terminé avec succès. Le score atteint le seuil. |
400 | Corps de requête ou URL invalide. |
401 | Token API manquant ou invalide. |
403 | Token valide mais le compte n'est pas sur le plan Business. |
422 | Score inférieur au seuil. Le corps contient le rapport complet pour inspecter les échecs. |
429 | Limite de requêtes atteinte. Attendez et réessayez. |
500 | Erreur interne du serveur. Réessayez ou contactez le support. |
Les tokens API du plan Business sont limités à 60 requêtes par minute et 500 requêtes par jour. Les en-têtes de limite sont inclus dans chaque réponse :
| Header | Description |
|---|---|
X-RateLimit-Limit | Votre limite de requêtes par minute |
X-RateLimit-Remaining | Requêtes restantes dans la fenêtre actuelle |
X-RateLimit-Reset | Secondes avant la réinitialisation de la fenêtre |
Get your API token with a Business plan and start securing your CI/CD pipeline today.
View Pricing