Rustine docs
API › Projets

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.

POSThttps://api.rustine.io/v1/projects

Permission OAuth : scans:run · une clé d'API les a toutes

Ouvrir dans ClaudeOuvrir dans ChatGPT

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-Keystringoptionnel

    Une 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

  • namestringobligatoire

    Le nom du projet, de 1 à 80 caractères.

  • urlstringoptionnel

    Le premier site du projet (optionnel). Seulement un site qui est à toi ou que tu as le droit de tester.

Réponse

  • idstring

    L'identifiant du projet.

  • objectstring

    Le type d'objet, toujours le même pour une route donnée.

  • namestring

    Le nom du projet.

  • scorenumber | null

    Le score du projet sur 100, null avant le premier scan terminé.

  • gradestring | null

    La note de A à F, null avant le premier scan terminé.

    ABCDF
  • open_issuesinteger

    Les problèmes ouverts sur tous les sites du projet, masqués compris.

  • pausedboolean

    En pause, parce que l'offre couvre moins de projets : lisible, mais ni scan, ni revérification, ni correctif, ni nouvelle adresse.

  • last_scan_atstring | null

    La fin du dernier scan terminé, tous sites confondus.

  • targetsarray of object

    Les sites et dépôts du projet.

    • idstring

      L'identifiant du site ou du dépôt : c'est lui que tu passes pour lancer un scan.

    • objectstring

      Le type d'objet, toujours le même pour une route donnée.

    • project_idstring

      Le projet auquel il appartient.

    • kindstring

      domain (un site) ou repository (un dépôt GitHub).

      domainserverrepository
    • addressstring

      Le nom d'hôte du site (app.monsaas.fr) ou propriétaire/dépôt pour un dépôt.

    • verifiedboolean

      Vrai 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 | null

      Le score sur 100, null avant le premier scan terminé.

    • gradestring | null

      La note de A à F, null avant le premier scan terminé.

      ABCDF
    • last_scan_atstring | null

      La fin du dernier scan terminé.

    • hidden_issuesobject | null

      Site non prouvé : ce que ses problèmes masqués représentent, en nombre seulement (jamais lesquels ni où). null quand rien n'est masqué.

      • urgentinteger

        Problèmes critiques et élevés ouverts, masqués jusqu'à la preuve.

      • laterinteger

        Problèmes moyens et faibles ouverts, masqués jusqu'à la preuve.

Erreurs

Codeerror.codeCe qui se passe
400body_invalidLe corps de la requête n'est pas du JSON valable. Vérifie l'en-tête Content-Type: application/json.
400parameter_invalidUn paramètre manque ou n'est pas valable ; param le nomme.
400url_invalidL'adresse n'est pas l'URL valable d'un site public.
400url_privateRustine ne scanne que des sites publics, jamais une adresse locale ou privée.
400idempotency_key_invalidL'en-tête Idempotency-Key doit faire de 1 à 255 caractères imprimables.
401authentication_requiredAucune clé dans la requête. Passe-la dans l'en-tête Authorization: Bearer rst_…, jamais dans l'adresse.
401invalid_api_keyLa 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é.
402api_plan_requiredL'espace est sur l'offre Gratuite. L'API vient avec Pro, ou à l'essai 14 jours sur Solo.
402api_trial_endedL'essai de 14 jours de Solo est terminé. Passe à Pro : tes clés remarchent aussitôt.
402project_limit_reachedTous les projets de ton offre sont pris. Ajoute un projet en plus ou change d'offre.
402domain_takenSur l'offre Gratuite, un domaine déjà suivi par un autre compte gratuit ne peut être ni ajouté ni scanné.
403scope_missingLe 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.
409site_excludedLe propriétaire de ce site a demandé à ne pas être scanné. Rustine ne le scannera pas.
409idempotency_conflictCette Idempotency-Key a déjà servi pour une autre requête (méthode, chemin ou corps). Une nouvelle action prend une nouvelle clé.
409idempotency_in_progressUne requête avec cette Idempotency-Key est encore en cours. Réessaie dans un instant.
429rate_limitedTrop de requêtes pour cette clé (120 par minute). Attends Retry-After secondes.
500internal_errorUne erreur de notre côté, signalée automatiquement. Réessaie plus tard ; donne le Request-Id au support si elle revient.
503service_unavailableRustine est indisponible un instant. Réessaie avec la même Idempotency-Key.

↵ Entrée pour ouvrir, Échap pour fermer