Lister les projets
Tes projets, avec leurs sites, leur score sur 100 et leurs problèmes ouverts. Les identifiants des sites (targets[].id) servent à lancer un scan.
Permission OAuth : scans:read · une clé d'API les a toutes
Paramètres de requête
limitintegeroptionnelCombien d'éléments par page, de 1 à 100 (20 par défaut).
starting_afterstringoptionnelLe curseur : l'identifiant du dernier élément de la page précédente.
Réponse
objectstringLe type d'objet, toujours le même pour une route donnée.
dataarray of objectLes éléments de la page.
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.
has_morebooleanVrai s'il reste des éléments après cette page : rappelle la route avec
starting_after.
Erreurs
| Code | error.code | Ce qui se passe |
|---|---|---|
| 400 | parameter_invalid | Un paramètre manque ou n'est pas valable ; param le nomme. |
| 400 | cursor_invalid | starting_after n'est l'identifiant d'aucun élément de cette liste. |
| 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. |
| 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. |
| 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. |