Rustine docs
API › Projets

Ajouter un site

Ajoute une adresse à un projet : un sous-domaine (app., api.) ou un autre domaine du même produit.

POSThttps://api.rustine.io/v1/projects/{project_id}/targets

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

Ouvrir dans ClaudeOuvrir dans ChatGPT

Seulement un site qui est à toi ou que tu as le droit de tester. Le nombre d'adresses par projet dépend de l'offre (5 en Solo, 20 en Pro) : au-delà, 402 address_limit_reached.

Paramètres de chemin

  • project_idstringobligatoire

    Le projet.

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

  • urlstringobligatoire

    L'adresse du site (https://app.monsaas.fr). Seulement un site qui est à toi ou que tu as le droit de tester.

Réponse

  • 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.
402address_limit_reachedLe projet suit déjà autant d'adresses que ton offre le permet.
402domain_takenSur l'offre Gratuite, un domaine déjà suivi par un autre compte gratuit ne peut être ni ajouté ni scanné.
402project_pausedLe projet est en pause : ton offre couvre moins de projets que ton espace n'en a. Ses problèmes restent lisibles, mais rien de nouveau ne tourne.
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.
404resource_not_foundRien avec cet identifiant dans l'espace de la clé. Un objet d'un autre espace répond pareil : son existence n'est jamais révélée.
409site_excludedLe propriétaire de ce site a demandé à ne pas être scanné. Rustine ne le scannera pas.
409target_existsLe projet suit déjà cette adresse.
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