Créer un projet
Crée un projet, avec l'adresse de son premier site si tu la donnes. Le site n'est pas encore prouvé : tu peux y lancer un scan quick tout de suite, l'audit complet attendra la preuve.
Permission OAuth : scans:run · une clé d'API les a toutes
N'ajoute qu'un site qui est à toi ou que tu as le droit de tester. Un projet compte dans ton offre (1 compris en Solo, 3 en Pro, puis des projets en plus) : au-delà, 402 project_limit_reached.
En-têtes
Idempotency-KeystringoptionnelUne clé unique (1 à 255 caractères imprimables, un UUID convient) pour rejouer la requête sans risque : la première réponse est renvoyée pendant 24 heures ; la même clé avec une autre requête répond
409 idempotency_conflict.
Corps de la requête
namestringobligatoireLe nom du projet, de 1 à 80 caractères.
urlstringoptionnelLe premier site du projet (optionnel). Seulement un site qui est à toi ou que tu as le droit de tester.
Réponse
idstringL'identifiant du projet.
objectstringLe type d'objet, toujours le même pour une route donnée.
namestringLe nom du projet.
scorenumber | nullLe score du projet sur 100,
nullavant le premier scan terminé.gradestring | nullLa note de A à F,
nullavant le premier scan terminé.ABCDFopen_issuesintegerLes problèmes ouverts sur tous les sites du projet, masqués compris.
pausedbooleanEn pause, parce que l'offre couvre moins de projets : lisible, mais ni scan, ni revérification, ni correctif, ni nouvelle adresse.
last_scan_atstring | nullLa fin du dernier scan terminé, tous sites confondus.
targetsarray of objectLes sites et dépôts du projet.
idstringL'identifiant du site ou du dépôt : c'est lui que tu passes pour lancer un scan.
objectstringLe type d'objet, toujours le même pour une route donnée.
project_idstringLe projet auquel il appartient.
kindstringdomain(un site) ourepository(un dépôt GitHub).domainserverrepositoryaddressstringLe nom d'hôte du site (
app.monsaas.fr) oupropriétaire/dépôtpour un dépôt.verifiedbooleanVrai quand ton espace a prouvé qu'il contrôle ce site. Sans preuve, le détail des problèmes reste masqué et seuls les scans rapides tournent.
scorenumber | nullLe score sur 100,
nullavant le premier scan terminé.gradestring | nullLa note de A à F,
nullavant le premier scan terminé.ABCDFlast_scan_atstring | nullLa fin du dernier scan terminé.
hidden_issuesobject | nullSite non prouvé : ce que ses problèmes masqués représentent, en nombre seulement (jamais lesquels ni où).
nullquand rien n'est masqué.urgentintegerProblèmes critiques et élevés ouverts, masqués jusqu'à la preuve.
laterintegerProblèmes moyens et faibles ouverts, masqués jusqu'à la preuve.
Erreurs
| Code | error.code | Ce qui se passe |
|---|---|---|
| 400 | body_invalid | Le corps de la requête n'est pas du JSON valable. Vérifie l'en-tête Content-Type: application/json. |
| 400 | parameter_invalid | Un paramètre manque ou n'est pas valable ; param le nomme. |
| 400 | url_invalid | L'adresse n'est pas l'URL valable d'un site public. |
| 400 | url_private | Rustine ne scanne que des sites publics, jamais une adresse locale ou privée. |
| 400 | idempotency_key_invalid | L'en-tête Idempotency-Key doit faire de 1 à 255 caractères imprimables. |
| 401 | authentication_required | Aucune clé dans la requête. Passe-la dans l'en-tête Authorization: Bearer rst_…, jamais dans l'adresse. |
| 401 | invalid_api_key | La clé ou le jeton OAuth est faux, révoqué ou expiré. Vérifie qu'il est copié en entier, ou crée une nouvelle clé. |
| 402 | api_plan_required | L'espace est sur l'offre Gratuite. L'API vient avec Pro, ou à l'essai 14 jours sur Solo. |
| 402 | api_trial_ended | L'essai de 14 jours de Solo est terminé. Passe à Pro : tes clés remarchent aussitôt. |
| 402 | project_limit_reached | Tous les projets de ton offre sont pris. Ajoute un projet en plus ou change d'offre. |
| 402 | domain_taken | Sur l'offre Gratuite, un domaine déjà suivi par un autre compte gratuit ne peut être ni ajouté ni scanné. |
| 403 | scope_missing | Le jeton OAuth n'a pas la permission que demande cette route (indiquée sur sa page). Reconnecte l'agent pour l'accorder. Une clé d'API a toutes les permissions. |
| 409 | site_excluded | Le propriétaire de ce site a demandé à ne pas être scanné. Rustine ne le scannera pas. |
| 409 | idempotency_conflict | Cette Idempotency-Key a déjà servi pour une autre requête (méthode, chemin ou corps). Une nouvelle action prend une nouvelle clé. |
| 409 | idempotency_in_progress | Une requête avec cette Idempotency-Key est encore en cours. Réessaie dans un instant. |
| 429 | rate_limited | Trop de requêtes pour cette clé (120 par minute). Attends Retry-After secondes. |
| 500 | internal_error | Une erreur de notre côté, signalée automatiquement. Réessaie plus tard ; donne le Request-Id au support si elle revient. |
| 503 | service_unavailable | Rustine est indisponible un instant. Réessaie avec la même Idempotency-Key. |