Chaque opération de l’API Lockpick, son autorisation, ses entrées et sa réponse, générées à partir de l’API elle-même. Version 1, en bêta.
Version 1, en bêta. Chaque chemin commence par /api/cli/v1, chaque requête transporte une clé sous forme de jeton bearer, et chaque réponse est { data, error }. L’ensemble de cette description est aussi disponible en OpenAPI 3.1.
API de l’agent
Les opérations serveur derrière les outils MCP hébergés. Les nouvelles intégrations doivent les utiliser. lockpick_wait_for_scan interroge GET /agent/scans/{scanId} ; lockpick_evaluate_scan lit cette même analyse et applique la politique d’évaluation côté client. Ces deux outils composés n’ont pas de point de terminaison HTTP distinct. Les scripts peuvent interroger l’état de l’analyse et évaluer son heure de fin, sa couverture et le nombre de points à corriger ouverts selon leur politique.
GET /agent/me
La personne, l’espace de travail, les portées et l’expiration de cet identifiant, et ce qu’il peut lancer.
- Autorisation :
read - Outil MCP :
lockpick_whoami
data
| Champ | Type | Toujours présent |
|---|---|---|
user |
objet | Oui |
workspace |
objet | Oui |
credential |
objet | Oui |
capabilities |
objet | Oui |
GET /agent/allowance
Analyses gratuites restant ce mois-ci, leurs dates de réinitialisation et leurs crédits.
- Autorisation :
read - Outil MCP :
lockpick_get_allowance
data
| Champ | Type | Toujours présent |
|---|---|---|
accessSource |
community, stripe (valeur de facturation héritée), pilot (héritée, interne), none |
Oui |
accountingMode |
pilot (héritée, interne), credits (héritée, interne), unmetered |
Oui |
pulse |
objet | Oui |
deep |
objet | Oui |
creditBalance |
entier ou null | Oui |
freeSiteId |
chaîne ou null | Oui |
freeSiteVisible |
booléen | Oui |
canSwitchFreeSite |
booléen | Oui |
GET /agent/monitor
Parcourir les avis de sécurité actuels et expliquer les correspondances pour les sites autorisés.
- Autorisation :
read - Outil MCP :
lockpick_monitor
Paramètres de requête
| Champ | Type | Requis |
|---|---|---|
view |
latest, sites, exploited, following |
Non |
kind |
all, vulnerability, malicious_package |
Non |
q |
chaîne | Non |
ecosystem |
all, npm, pypi, composer, go, rubygems, maven, cargo, nuget, pub, hex, swift, wordpress |
Non |
severity |
all, critical, high, medium, low, unknown |
Non |
days |
nombre | Non |
cursor |
chaîne | Non |
limit |
entier | Non |
siteId |
chaîne | Non |
advisoryId |
chaîne | Non |
data
| Champ | Type | Toujours présent |
|---|---|---|
items |
liste d’objets | Oui |
nextCursor |
chaîne ou null | Oui |
limitations |
liste de chaînes | Oui |
Chaque élément
| Champ | Type | Toujours présent |
|---|---|---|
id |
chaîne | Oui |
title |
chaîne | Oui |
source |
chaîne | Oui |
kind |
vulnerability, malicious_package |
Oui |
severity |
critical, high, medium, low, unknown |
Oui |
provenance |
liste d’objets | Oui |
withdrawnAt |
chaîne ou null | Non |
publishedAt |
chaîne | Oui |
exploited |
booléen | Oui |
ids |
liste de chaînes | Oui |
tech |
liste d’objets | Oui |
epss |
objet ou null | Non |
cvss |
objet ou null | Non |
attribution |
chaîne ou null | Oui |
references |
liste de chaînes | Oui |
packages |
liste d’objets | Oui |
sites |
liste d’objets | Oui |
GET /agent/sites
Une page de sites avec leurs dernières analyses.
- Autorisation :
read - Outil MCP :
lockpick_list_sites
Paramètres de requête
| Champ | Type | Requis |
|---|---|---|
limit |
entier | Non |
cursor |
chaîne | Non |
data
| Champ | Type | Toujours présent |
|---|---|---|
items |
liste d’objets | Oui |
nextCursor |
chaîne ou null | Oui |
Chaque élément
| Champ | Type | Toujours présent |
|---|---|---|
id |
chaîne | Oui |
name |
chaîne | Oui |
status |
chaîne | Oui |
baseDomain |
chaîne ou null | Oui |
latestPulse |
objet ou null | Oui |
latestDeep |
objet ou null | Oui |
latestBox |
objet ou null | Oui |
webPath |
chaîne | Oui |
webUrl |
chaîne | Oui |
POST /agent/sites
Ajouter un site, ou renvoyer celui qui porte cette adresse.
- Autorisation :
sites - Outil MCP :
lockpick_add_site
Corps
| Champ | Type | Requis |
|---|---|---|
url |
chaîne | Oui |
name |
chaîne | Non |
idempotencyKey |
chaîne | Oui |
data
| Champ | Type | Toujours présent |
|---|---|---|
site |
objet | Oui |
created |
booléen | Oui |
GET /agent/sites/{siteId}/status
L’état d’un site : ses dernières analyses et la marche à suivre.
- Autorisation :
read - Outil MCP :
lockpick_site_status
data
| Champ | Type | Toujours présent |
|---|---|---|
site |
objet | Oui |
latestPulse |
objet ou null | Oui |
latestDeep |
objet ou null | Oui |
latestBox |
objet ou null | Oui |
lastComparison |
objet ou null | Oui |
caveats |
liste de chaînes | Oui |
fixes |
objet ou null | Non |
relevant |
liste d’objets | Non |
relevantTotal |
entier | Non |
GET /agent/sites/{siteId}/history
L’historique de sécurité d’un site : l’évolution du score de chaque profondeur de scan, interrompue là où le moteur a changé, les constats ouverts au fil du temps, les corrections, les régressions et le délai médian de correction.
- Autorisation :
read - Outil MCP :
lockpick_get_site_history
data
| Champ | Type | Toujours présent |
|---|---|---|
siteId |
chaîne | Oui |
scores |
liste d’objets | Oui |
findings |
objet | Oui |
POST /agent/sites/{siteId}/dependencies
Envoyer les noms et les versions exactes des paquets épinglés par un site, jamais le code, et lire les avis qui les touchent.
- Autorisation :
sites - Outil MCP :
lockpick_send_dependencies
Corps
| Champ | Type | Requis |
|---|---|---|
inventory |
objet | Non |
packages |
liste d’objets | Oui |
sources |
list of package-lock.json, npm-shrinkwrap.json, pnpm-lock.yaml, yarn.lock, bun.lock, bun.lockb, requirements.txt, poetry.lock, uv.lock, Pipfile.lock, pdm.lock, composer.lock, go.mod, Gemfile.lock, gems.locked, pom.xml, gradle.lockfile, buildscript-gradle.lockfile, build.gradle, build.gradle.kts, Cargo.lock, packages.lock.json, pubspec.lock, mix.lock, Package.resolved |
Oui |
idempotencyKey |
chaîne | Oui |
data
| Champ | Type | Toujours présent |
|---|---|---|
siteId |
chaîne | Oui |
receivedAt |
chaîne ou null | Oui |
sources |
list of package-lock.json, npm-shrinkwrap.json, pnpm-lock.yaml, yarn.lock, bun.lock, bun.lockb, requirements.txt, poetry.lock, uv.lock, Pipfile.lock, pdm.lock, composer.lock, go.mod, Gemfile.lock, gems.locked, pom.xml, gradle.lockfile, buildscript-gradle.lockfile, build.gradle, build.gradle.kts, Cargo.lock, packages.lock.json, pubspec.lock, mix.lock, Package.resolved |
Oui |
packageCount |
entier | Oui |
affectsYouCount |
entier | Oui |
affectsYou |
liste d’objets | Oui |
webUrl |
chaîne | Oui |
GET /agent/sites/{siteId}/github
Le lien GitHub d’un site : le dépôt, la branche et le fichier de verrouillage, la dernière lecture, le commentaire de pull request et si la liste GitHub de l’appelant est à jour.
- Autorisation :
read - Outil MCP :
lockpick_get_github_link
data
| Champ | Type | Toujours présent |
|---|---|---|
siteId |
chaîne | Oui |
available |
booléen | Oui |
canManage |
booléen | Oui |
linked |
objet ou null | Oui |
lastRead |
objet ou null | Oui |
pullRequestComments |
objet ou null | Oui |
authorization |
objet | Oui |
webUrl |
chaîne | Oui |
GET /agent/github/repositories
Les dépôts de la liste GitHub de l’appelant lui-même pour cet espace de travail, les seuls qu’il peut lier.
- Autorisation :
read - Outil MCP :
lockpick_list_github_repositories
Paramètres de requête
| Champ | Type | Requis |
|---|---|---|
search |
chaîne | Non |
limit |
entier | Non |
data
| Champ | Type | Toujours présent |
|---|---|---|
authorization |
objet | Oui |
items |
liste d’objets | Oui |
matched |
entier | Oui |
truncated |
booléen | Oui |
Chaque élément
| Champ | Type | Toujours présent |
|---|---|---|
repository |
chaîne | Oui |
defaultBranch |
chaîne | Oui |
private |
booléen | Oui |
POST /agent/sites/{siteId}/github
Lie un site à un dépôt de la liste GitHub de l’appelant lui-même, ou obtient la page où la personne l’approuve.
- Autorisation :
sites - Outil MCP :
lockpick_link_github_repository
Corps
| Champ | Type | Requis |
|---|---|---|
repository |
chaîne | Oui |
ref |
chaîne | Non |
lockfiles |
chaîne ou liste de chaînes | Non |
pullRequestComments |
on, off |
Non |
GET /agent/github/link-requests/{requestId}
Où en est un lien GitHub en attente de la personne.
- Autorisation :
read - Outil MCP :
lockpick_get_github_link_request
data
| Champ | Type | Toujours présent |
|---|---|---|
requestId |
chaîne | Oui |
siteId |
chaîne | Oui |
repository |
chaîne | Oui |
state |
pending, authorizing, linked, not_reachable, declined, failed, expired |
Oui |
expiresAt |
chaîne | Oui |
link |
objet ou null | Oui |
DELETE /agent/sites/{siteId}/github
Délie le dépôt GitHub d’un site et oublie la lecture de son fichier de verrouillage.
- Autorisation :
sites - Outil MCP :
lockpick_unlink_github_repository
data
| Champ | Type | Toujours présent |
|---|---|---|
siteId |
chaîne | Oui |
unlinked |
booléen | Oui |
POST /agent/sites/{siteId}/github/pull-request-comments
Active ou désactive le commentaire de sécurité Deep sur les pull requests du dépôt lié à un site.
- Autorisation :
sites - Outil MCP :
lockpick_set_github_pr_comments
Corps
| Champ | Type | Requis |
|---|---|---|
enabled |
booléen | Oui |
data
| Champ | Type | Toujours présent |
|---|---|---|
siteId |
chaîne | Oui |
available |
booléen | Oui |
canManage |
booléen | Oui |
linked |
objet ou null | Oui |
lastRead |
objet ou null | Oui |
pullRequestComments |
objet ou null | Oui |
authorization |
objet | Oui |
webUrl |
chaîne | Oui |
GET /agent/sites/{siteId}/schedules
Les contrôles automatiques Pulse et Deep d’un site et les fréquences que son forfait autorise.
- Autorisation :
read - Outil MCP :
lockpick_get_schedules
data
| Champ | Type | Toujours présent |
|---|---|---|
siteId |
chaîne | Oui |
enabled |
booléen | Oui |
allowed |
objet | Oui |
pulse |
objet ou null | Oui |
deep |
objet ou null | Oui |
webUrl |
chaîne | Oui |
POST /agent/sites/{siteId}/schedules/pulse
Configurer, modifier ou reprendre le contrôle automatique Pulse d’un site dans les fréquences du forfait.
- Autorisation :
pulse - Outil MCP :
lockpick_set_pulse_schedule
Corps
| Champ | Type | Requis |
|---|---|---|
cadence |
daily, weekly, monthly |
Non |
runHourUtc |
entier ou null | Non |
data
| Champ | Type | Toujours présent |
|---|---|---|
scheduleId |
chaîne | Oui |
siteId |
chaîne | Oui |
depth |
pulse, deep |
Oui |
status |
active, paused, archived |
Oui |
cadence |
daily, weekly, monthly |
Oui |
runHourUtc |
entier ou null | Oui |
nextRunAt |
chaîne | Oui |
consentUntil |
chaîne | Oui |
lastOutcome |
chaîne ou null | Oui |
POST /agent/sites/{siteId}/schedules/pulse/pause
Mettre en pause le contrôle automatique Pulse d’un site.
- Autorisation :
pulse - Outil MCP :
lockpick_pause_pulse_schedule
data
| Champ | Type | Toujours présent |
|---|---|---|
scheduleId |
chaîne | Oui |
siteId |
chaîne | Oui |
depth |
pulse, deep |
Oui |
status |
active, paused, archived |
Oui |
cadence |
daily, weekly, monthly |
Oui |
runHourUtc |
entier ou null | Oui |
nextRunAt |
chaîne | Oui |
consentUntil |
chaîne | Oui |
lastOutcome |
chaîne ou null | Oui |
POST /agent/sites/{siteId}/schedules/deep
Préparer la configuration, la modification ou la reprise du contrôle automatique Deep d’un site, et obtenir le lien où la personne l’autorise.
- Autorisation :
deep - Outil MCP :
lockpick_prepare_deep_schedule
Corps
| Champ | Type | Requis |
|---|---|---|
cadence |
daily, weekly, monthly |
Non |
runHourUtc |
entier ou null | Non |
data
| Champ | Type | Toujours présent |
|---|---|---|
requestId |
chaîne | Oui |
siteId |
chaîne | Oui |
depth |
chaîne | Oui |
cadence |
daily, weekly, monthly |
Oui |
runHourUtc |
entier ou null | Oui |
approvalUrl |
chaîne | Oui |
expiresAt |
chaîne | Oui |
pollAfterSeconds |
entier | Oui |
POST /agent/sites/{siteId}/schedules/deep/pause
Mettre en pause le contrôle automatique Deep d’un site.
- Autorisation :
deep - Outil MCP :
lockpick_pause_deep_schedule
data
| Champ | Type | Toujours présent |
|---|---|---|
scheduleId |
chaîne | Oui |
siteId |
chaîne | Oui |
depth |
pulse, deep |
Oui |
status |
active, paused, archived |
Oui |
cadence |
daily, weekly, monthly |
Oui |
runHourUtc |
entier ou null | Oui |
nextRunAt |
chaîne | Oui |
consentUntil |
chaîne | Oui |
lastOutcome |
chaîne ou null | Oui |
GET /agent/schedule-requests/{requestId}
Où en est un contrôle automatique Deep en attente de la personne.
- Autorisation :
read - Outil MCP :
lockpick_get_schedule_request
data
| Champ | Type | Toujours présent |
|---|---|---|
requestId |
chaîne | Oui |
siteId |
chaîne | Oui |
depth |
chaîne | Oui |
cadence |
daily, weekly, monthly |
Oui |
runHourUtc |
entier ou null | Oui |
state |
pending, approved, declined, failed, expired |
Oui |
expiresAt |
chaîne | Oui |
failure |
chaîne ou null | Oui |
schedule |
objet ou null | Oui |
GET /agent/sites/{siteId}/shares
Les résultats Pulse d’un site qui ont un lien de partage public actif.
- Autorisation :
read - Outil MCP :
lockpick_list_shares
data
| Champ | Type | Toujours présent |
|---|---|---|
siteId |
chaîne | Oui |
shares |
liste d’objets | Oui |
POST /agent/scans/{scanId}/share
Publier un résultat Pulse terminé à un lien public, ou remplacer son lien.
- Autorisation :
pulse - Outil MCP :
lockpick_share_scan
Corps
| Champ | Type | Requis |
|---|---|---|
replace |
booléen | Non |
data
| Champ | Type | Toujours présent |
|---|---|---|
scanId |
chaîne | Oui |
url |
chaîne ou null | Oui |
createdAt |
chaîne | Oui |
DELETE /agent/scans/{scanId}/share
Arrêter le partage d’un résultat Pulse ; son lien public cesse de fonctionner.
- Autorisation :
pulse - Outil MCP :
lockpick_unshare_scan
data
| Champ | Type | Toujours présent |
|---|---|---|
scanId |
chaîne | Oui |
unshared |
booléen | Oui |
POST /agent/sites/{siteId}/pulse
Lancer une analyse Pulse sur un site.
- Autorisation :
pulse - Outil MCP :
lockpick_start_pulse
Corps
| Champ | Type | Requis |
|---|---|---|
idempotencyKey |
chaîne | Oui |
baselineScanId |
chaîne | Non |
data
| Champ | Type | Toujours présent |
|---|---|---|
scan |
objet | Oui |
charged |
objet | Oui |
allowance |
objet | Oui |
replayed |
booléen | Oui |
POST /agent/sites/{siteId}/deep-verifications
Émettre une preuve de propriété par DNS ou par fichier avant une analyse Deep.
- Autorisation :
deep - Outil MCP :
lockpick_start_deep_verification
Corps
| Champ | Type | Requis |
|---|---|---|
method |
dns, file, meta |
Oui |
idempotencyKey |
chaîne | Oui |
data
| Champ | Type | Toujours présent |
|---|---|---|
verificationId |
chaîne | Oui |
siteId |
chaîne | Oui |
origin |
chaîne | Oui |
method |
dns, file, meta |
Oui |
state |
pending, verified, expired, exhausted, revoked |
Oui |
expiresAt |
chaîne | Oui |
verifiedUntil |
chaîne ou null | Oui |
attemptsRemaining |
entier | Oui |
retryAfterSeconds |
entier ou null | Oui |
value |
chaîne | Oui |
location |
chaîne | Oui |
POST /agent/sites/{siteId}/deep-verifications/{verificationId}/verify
Vérifier une preuve de propriété publiée. Chaque vérification utilise une de ses tentatives.
- Autorisation :
deep - Outil MCP :
lockpick_check_deep_verification
data
| Champ | Type | Toujours présent |
|---|---|---|
verificationId |
chaîne | Oui |
siteId |
chaîne | Oui |
origin |
chaîne | Oui |
method |
dns, file, meta |
Oui |
state |
pending, verified, expired, exhausted, revoked |
Oui |
expiresAt |
chaîne | Oui |
verifiedUntil |
chaîne ou null | Oui |
attemptsRemaining |
entier | Oui |
retryAfterSeconds |
entier ou null | Oui |
POST /agent/sites/{siteId}/deep-operations
Préparer une analyse Deep et obtenir le lien où la personne l’autorise.
- Autorisation :
deep - Outil MCP :
lockpick_prepare_deep
Corps
| Champ | Type | Requis |
|---|---|---|
verificationId |
chaîne | Oui |
idempotencyKey |
chaîne | Oui |
data
| Champ | Type | Toujours présent |
|---|---|---|
operationId |
chaîne | Oui |
siteId |
chaîne | Oui |
origin |
chaîne | Oui |
assessmentLevel |
chaîne | Oui |
verificationId |
chaîne | Oui |
cost |
objet | Oui |
allowance |
objet | Oui |
approvalState |
pending, approved, expired, denied |
Oui |
approvalUrl |
chaîne | Oui |
expiresAt |
chaîne | Oui |
POST /agent/deep-operations/{operationId}/start
Lancer une analyse Deep autorisée par la personne.
- Autorisation :
deep - Outil MCP :
lockpick_start_deep
data
| Champ | Type | Toujours présent |
|---|---|---|
scan |
objet | Oui |
charged |
objet | Oui |
allowance |
objet | Oui |
replayed |
booléen | Oui |
POST /agent/free-site-switch
Retirer un site pour que le Pulse gratuit du mois puisse passer à un autre.
- Autorisation :
sitesetpulse - Outil MCP :
lockpick_switch_free_site
Corps
| Champ | Type | Requis |
|---|---|---|
removeSiteId |
chaîne | Oui |
checkId |
chaîne | Non |
idempotencyKey |
chaîne | Oui |
confirmRemoval |
booléen | Oui |
data
| Champ | Type | Toujours présent |
|---|---|---|
removedSiteId |
chaîne | Oui |
removedSiteHost |
chaîne | Oui |
replacementSiteId |
chaîne ou null | Oui |
allowance |
objet | Oui |
restoreUrl |
chaîne | Oui |
startedScanId |
chaîne ou null | Oui |
charged |
objet | Oui |
replayed |
booléen | Oui |
GET /agent/scans
Une page d’analyses, les plus récentes en premier, avec des filtres.
- Autorisation :
read - Outil MCP :
lockpick_list_scans
Paramètres de requête
| Champ | Type | Requis |
|---|---|---|
siteId |
chaîne | Non |
kind |
pulse, box (Deep, nom hérité) |
Non |
assessmentLevel |
pulse, standard, deep |
Non |
status |
queued, running, cancelling, succeeded, incomplete, failed, cancelled |
Non |
limit |
entier | Non |
cursor |
chaîne | Non |
data
| Champ | Type | Toujours présent |
|---|---|---|
items |
liste d’objets | Oui |
nextCursor |
chaîne ou null | Oui |
Chaque élément
| Champ | Type | Toujours présent |
|---|---|---|
id |
chaîne | Oui |
kind |
pulse, box (Deep, nom hérité) |
Oui |
projectId |
chaîne | Oui |
target |
chaîne | Oui |
status |
queued, running, cancelling, succeeded, incomplete, failed, cancelled |
Oui |
mode |
autonomous, authenticated, active ou null |
Oui |
createdAt |
chaîne ou null | Oui |
finishedAt |
chaîne ou null | Oui |
webPath |
chaîne | Oui |
assessmentLevel |
pulse, standard, deep ou null |
Oui |
headline |
objet | Oui |
webUrl |
chaîne | Oui |
suggestedPollAfterSeconds |
entier ou null | Oui |
GET /agent/scans/{scanId}
Une analyse avec son statut et son résumé.
- Autorisation :
read - Outil MCP :
lockpick_get_scan
data
| Champ | Type | Toujours présent |
|---|---|---|
id |
chaîne | Oui |
kind |
pulse, box (Deep, nom hérité) |
Oui |
projectId |
chaîne | Oui |
target |
chaîne | Oui |
status |
queued, running, cancelling, succeeded, incomplete, failed, cancelled |
Oui |
mode |
autonomous, authenticated, active ou null |
Oui |
createdAt |
chaîne ou null | Oui |
finishedAt |
chaîne ou null | Oui |
webPath |
chaîne | Oui |
assessmentLevel |
pulse, standard, deep ou null |
Oui |
headline |
objet | Oui |
webUrl |
chaîne | Oui |
suggestedPollAfterSeconds |
entier ou null | Oui |
docsUrl |
chaîne | Non |
dismissals |
objet | Non |
baselineRunId |
chaîne ou null | Oui |
open |
objet | Oui |
findingCount |
entier | Oui |
progress |
objet ou null | Oui |
coverage |
objet | Oui |
caveats |
liste de chaînes | Oui |
outcome |
objet ou null | Oui |
exposureCheck |
objet | Non |
coverageReceipt |
objet | Non |
GET /agent/scans/{scanId}/findings
Une page de points à corriger d’une analyse.
- Autorisation :
read - Outil MCP :
lockpick_list_findings - Envoyez
x-lockpick-agent-features: finding-codepour recevoir lecodede chaque constat (LP-et six caractères, tel que le rapport web l'affiche). Sans l'en-tête, la réponse n'a pas decode, la forme qu'attendent les anciens clients.
Paramètres de requête
| Champ | Type | Requis |
|---|---|---|
state |
attention, information, unknown, pass |
Non |
severity |
critical, high, medium, low, info |
Non |
all |
booléen ou true, false |
Non |
limit |
entier | Non |
cursor |
chaîne | Non |
data
| Champ | Type | Toujours présent |
|---|---|---|
items |
liste d’objets | Oui |
nextCursor |
chaîne ou null | Oui |
Chaque élément
| Champ | Type | Toujours présent |
|---|---|---|
dismissal |
objet | Non |
id |
chaîne | Oui |
code |
chaîne | Non |
runId |
chaîne | Oui |
kind |
pulse, box (Deep, nom hérité) |
Oui |
severity |
critical, high, medium, low, info |
Oui |
state |
attention, information, unknown, pass |
Oui |
category |
chaîne | Oui |
title |
chaîne | Oui |
meaning |
chaîne | Oui |
fix |
chaîne ou null | Oui |
confidence |
chaîne | Oui |
evidence |
liste de chaînes | Oui |
sources |
liste de chaînes | Oui |
steps |
liste de chaînes | Oui |
webPath |
chaîne | Oui |
webUrl |
chaîne | Oui |
evidenceTrust |
chaîne | Oui |
evidenceTruncated |
booléen | Oui |
verdict |
confirmed, needs_review, not_actionable ou null |
Non |
certainty |
high, medium, low ou null |
Non |
exploitability |
direct, conditional, hygiene, none ou null |
Non |
proof |
objet ou null | Non |
proofGap |
chaîne ou null | Non |
urgency |
now, week, later, none |
Non |
howSure |
confirmed, likely, possible ou null |
Non |
lifecycle |
objet ou null | Non |
GET /agent/scans/{scanId}/findings/{findingId}
Un point à corriger avec ses preuves masquées.
- Autorisation :
read - Outil MCP :
lockpick_get_finding - Envoyez
x-lockpick-agent-features: finding-codepour recevoir lecodede chaque constat (LP-et six caractères, tel que le rapport web l'affiche). Sans l'en-tête, la réponse n'a pas decode, la forme qu'attendent les anciens clients.
data
| Champ | Type | Toujours présent |
|---|---|---|
dismissal |
objet | Non |
id |
chaîne | Oui |
code |
chaîne | Non |
runId |
chaîne | Oui |
kind |
pulse, box (Deep, nom hérité) |
Oui |
severity |
critical, high, medium, low, info |
Oui |
state |
attention, information, unknown, pass |
Oui |
category |
chaîne | Oui |
title |
chaîne | Oui |
meaning |
chaîne | Oui |
fix |
chaîne ou null | Oui |
confidence |
chaîne | Oui |
evidence |
liste de chaînes | Oui |
sources |
liste de chaînes | Oui |
steps |
liste de chaînes | Oui |
webPath |
chaîne | Oui |
webUrl |
chaîne | Oui |
evidenceTrust |
chaîne | Oui |
evidenceTruncated |
booléen | Oui |
verdict |
confirmed, needs_review, not_actionable ou null |
Non |
certainty |
high, medium, low ou null |
Non |
exploitability |
direct, conditional, hygiene, none ou null |
Non |
proof |
objet ou null | Non |
proofGap |
chaîne ou null | Non |
urgency |
now, week, later, none |
Non |
howSure |
confirmed, likely, possible ou null |
Non |
lifecycle |
objet ou null | Non |
GET /agent/scans/{scanId}/repair-brief
Une partie du brief de correction d’une analyse.
- Autorisation :
read - Outil MCP :
lockpick_get_repair_brief
Paramètres de requête
| Champ | Type | Requis |
|---|---|---|
findingId |
chaîne | Non |
agent |
claude-code, codex, cursor, vscode, opencode, lovable, bolt, replit, v0 |
Non |
cursor |
chaîne | Non |
data
| Champ | Type | Toujours présent |
|---|---|---|
scanId |
chaîne | Oui |
findingIds |
liste de chaînes | Oui |
saved |
booléen | Oui |
markdown |
chaîne | Oui |
nextCursor |
chaîne ou null | Oui |
complete |
booléen | Oui |
webUrl |
chaîne | Oui |
GET /agent/scans/{scanId}/comparison
Ce qui a changé entre une analyse et celle qu’elle recontrôle.
- Autorisation :
read - Outil MCP :
lockpick_compare_scans - Envoyez
x-lockpick-agent-features: finding-codepour recevoir lecodede chaque constat (LP-et six caractères, tel que le rapport web l'affiche). Sans l'en-tête, la réponse n'a pas decode, la forme qu'attendent les anciens clients.
data
| Champ | Type | Toujours présent |
|---|---|---|
runId |
chaîne | Oui |
baselineRunId |
chaîne | Oui |
error |
chaîne ou null | Oui |
changes |
liste d’objets | Oui |
webUrl |
chaîne | Oui |
POST /agent/scans/{scanId}/dns-rechecks
Relancer le contrôle DNS gratuit d’une analyse. N’envoie rien au site.
- Autorisation :
pulse - Outil MCP :
lockpick_recheck_dns
Corps
| Champ | Type | Requis |
|---|---|---|
findingId |
chaîne | Oui |
idempotencyKey |
chaîne | Oui |
data
| Champ | Type | Toujours présent |
|---|---|---|
scanId |
chaîne | Oui |
findingIds |
liste de chaînes | Oui |
pending |
objet ou null | Oui |
checkedAt |
chaîne ou null | Oui |
outcomes |
liste d’objets | Oui |
nextAllowedAt |
chaîne ou null | Oui |
failedAt |
chaîne ou null | Oui |
originalGradeUnchanged |
booléen | Oui |
GET /agent/scans/{scanId}/dns-rechecks/latest
Le dernier contrôle DNS relancé d’une analyse.
- Autorisation :
read - Outil MCP :
lockpick_get_dns_recheck
data
| Champ | Type | Toujours présent |
|---|---|---|
scanId |
chaîne | Oui |
findingIds |
liste de chaînes | Oui |
pending |
objet ou null | Oui |
checkedAt |
chaîne ou null | Oui |
outcomes |
liste d’objets | Oui |
nextAllowedAt |
chaîne ou null | Oui |
failedAt |
chaîne ou null | Oui |
originalGradeUnchanged |
booléen | Oui |
POST /agent/scans/{scanId}/deep-rechecks
Vérifier ce correctif : relire uniquement ce sur quoi un point à corriger Deep a été vu. Gratuit, limité chaque jour.
- Autorisation :
deep - Outil MCP :
lockpick_recheck_finding
Corps
| Champ | Type | Requis |
|---|---|---|
findingId |
chaîne | Oui |
idempotencyKey |
chaîne | Oui |
data
| Champ | Type | Toujours présent |
|---|---|---|
scanId |
chaîne | Oui |
findingId |
chaîne | Oui |
pending |
objet ou null | Oui |
latest |
objet ou null | Oui |
failedAt |
chaîne ou null | Oui |
remainingToday |
entier | Oui |
workspaceRemainingToday |
entier | Oui |
webUrl |
chaîne | Oui |
originalGradeUnchanged |
booléen | Oui |
GET /agent/scans/{scanId}/deep-rechecks/{findingId}
Le dernier Vérifier ce correctif d’un point à corriger Deep.
- Autorisation :
read - Outil MCP :
lockpick_get_finding_recheck
data
| Champ | Type | Toujours présent |
|---|---|---|
scanId |
chaîne | Oui |
findingId |
chaîne | Oui |
pending |
objet ou null | Oui |
latest |
objet ou null | Oui |
failedAt |
chaîne ou null | Oui |
remainingToday |
entier | Oui |
workspaceRemainingToday |
entier | Oui |
webUrl |
chaîne | Oui |
originalGradeUnchanged |
booléen | Oui |
POST /agent/quick-checks
Lancer un contrôle rapide gratuit d’une page d’accueil.
- Autorisation :
pulse - Outil MCP :
lockpick_quick_check
Corps
| Champ | Type | Requis |
|---|---|---|
url |
chaîne | Oui |
idempotencyKey |
chaîne | Oui |
data
| Champ | Type | Toujours présent |
|---|---|---|
checkId |
chaîne | Oui |
status |
queued, running, succeeded, failed |
Oui |
reused |
booléen | Oui |
headline |
objet | Oui |
summary |
chaîne ou null | Oui |
checks |
liste d’objets | Oui |
webUrl |
chaîne | Oui |
suggestedPollAfterSeconds |
entier ou null | Oui |
POST /agent/repository-checks
Vérifier un dépôt GitHub public (un skill, un plugin, un serveur MCP ou une application) avant de l’installer.
- Autorisation :
pulse - Outil MCP :
lockpick_check_repository
Corps
| Champ | Type | Requis |
|---|---|---|
url |
chaîne | Oui |
mode |
skill, app |
Non |
depth |
free, deep |
Non |
idempotencyKey |
chaîne | Oui |
data
| Champ | Type | Toujours présent |
|---|---|---|
checkId |
chaîne | Oui |
status |
queued, running, succeeded, failed |
Oui |
reused |
booléen | Oui |
repository |
objet | Oui |
mode |
skill, app ou null |
Oui |
kind |
chaîne ou null | Oui |
verdict |
safe, caution, do_not_install ou null |
Oui |
appRisk |
low, elevated, high ou null |
Oui |
score |
entier ou null | Oui |
summary |
chaîne ou null | Oui |
plainSummary |
chaîne ou null | Oui |
findings |
liste d’objets | Oui |
moreFindings |
entier | Oui |
coverage |
objet ou null | Oui |
failure |
not-found, ref-not-found, empty, too-large, rate-limited, unavailable, timeout, engine-error ou null |
Oui |
webUrl |
chaîne | Oui |
suggestedPollAfterSeconds |
entier ou null | Oui |
GET /agent/repository-checks/{checkId}
Une vérification de dépôt et ses constats.
- Autorisation :
read - Outil MCP :
lockpick_get_repository_check
data
| Champ | Type | Toujours présent |
|---|---|---|
checkId |
chaîne | Oui |
status |
queued, running, succeeded, failed |
Oui |
reused |
booléen | Oui |
repository |
objet | Oui |
mode |
skill, app ou null |
Oui |
kind |
chaîne ou null | Oui |
verdict |
safe, caution, do_not_install ou null |
Oui |
appRisk |
low, elevated, high ou null |
Oui |
score |
entier ou null | Oui |
summary |
chaîne ou null | Oui |
plainSummary |
chaîne ou null | Oui |
findings |
liste d’objets | Oui |
moreFindings |
entier | Oui |
coverage |
objet ou null | Oui |
failure |
not-found, ref-not-found, empty, too-large, rate-limited, unavailable, timeout, engine-error ou null |
Oui |
webUrl |
chaîne | Oui |
suggestedPollAfterSeconds |
entier ou null | Oui |
GET /agent/quick-checks/{checkId}
Un contrôle rapide et son résultat.
- Autorisation :
read - Outil MCP :
lockpick_get_quick_check
data
| Champ | Type | Toujours présent |
|---|---|---|
checkId |
chaîne | Oui |
status |
queued, running, succeeded, failed |
Oui |
reused |
booléen | Oui |
headline |
objet | Oui |
summary |
chaîne ou null | Oui |
checks |
liste d’objets | Oui |
webUrl |
chaîne | Oui |
suggestedPollAfterSeconds |
entier ou null | Oui |
GET /agent/docs/search
Rechercher dans la documentation publique de Lockpick.
- Autorisation :
read - Outil MCP :
lockpick_search_docs
Paramètres de requête
| Champ | Type | Requis |
|---|---|---|
query |
chaîne | Oui |
limit |
entier | Non |
data
| Champ | Type | Toujours présent |
|---|---|---|
query |
chaîne | Oui |
results |
liste d’objets | Oui |
GET /agent/docs/page
Une page de la documentation publique en Markdown, par parties si elle est longue.
- Autorisation :
read - Outil MCP :
lockpick_read_doc
Paramètres de requête
| Champ | Type | Requis |
|---|---|---|
path |
chaîne | Non |
cursor |
chaîne | Non |
data
| Champ | Type | Toujours présent |
|---|---|---|
path |
chaîne | Oui |
title |
chaîne | Oui |
description |
chaîne ou null | Oui |
url |
chaîne | Oui |
markdownUrl |
chaîne | Oui |
markdown |
chaîne | Oui |
nextCursor |
chaîne ou null | Oui |
complete |
booléen | Oui |
Connexion par appareil
Comment lockpick login obtient une clé : il demande un code, la personne l’autorise dans le navigateur, et l’interrogation renvoie la clé.
POST /device/code
Démarrer une connexion par appareil et obtenir un code à autoriser dans le navigateur.
- Autorisation : aucune, fait partie de la connexion
Corps
| Champ | Type | Requis |
|---|---|---|
clientName |
chaîne | Non |
hostname |
chaîne | Non |
platform |
chaîne | Non |
version |
chaîne | Non |
scopes |
liste de pulse, sites, deep, local |
Non |
data
| Champ | Type | Toujours présent |
|---|---|---|
deviceCode |
chaîne | Oui |
userCode |
chaîne | Oui |
verificationUri |
chaîne | Oui |
verificationUriComplete |
chaîne | Oui |
expiresIn |
entier | Oui |
interval |
entier | Oui |
POST /device/token
Interroger une connexion par appareil jusqu’à ce que la personne l’autorise, puis recevoir la clé.
- Autorisation : aucune, fait partie de la connexion
Corps
| Champ | Type | Requis |
|---|---|---|
deviceCode |
chaîne | Oui |
Anciennes routes
Les routes CLI d’origine, utilisées par la CLI 0.2. Elles restent inchangées, et les nouvelles intégrations doivent utiliser l’API de l’agent ci-dessus.
Routes CLI d’origine
GET /projects/{projectId}/dismissals
Gérez les constats acceptés et leurs motifs pour ce projet. Annuler réactive un constat ; une modification des preuves ou des règles exige un nouvel examen. Les audits locaux gardent votre code et le rapport sur votre machine. Une autorisation en ligne reste nécessaire.
- Autorisation :
read
data
| Champ | Type | Toujours présent |
|---|---|---|
version |
nombre | Oui |
projectId |
chaîne | Oui |
dismissals |
liste d’objets | Oui |
POST /projects/{projectId}/dismissals
Gérez les constats acceptés et leurs motifs pour ce projet. Annuler réactive un constat ; une modification des preuves ou des règles exige un nouvel examen. Les audits locaux gardent votre code et le rapport sur votre machine. Une autorisation en ligne reste nécessaire.
- Autorisation :
sites
Corps
| Champ | Type | Requis |
|---|---|---|
version |
nombre | Oui |
projectId |
chaîne | Oui |
dismissals |
liste d’objets | Oui |
data
| Champ | Type | Toujours présent |
|---|---|---|
imported |
entier | Oui |
POST /projects/{projectId}/local-assessments/authorize
Autoriser une évaluation locale avant d’inspecter le dépôt. Aucun code source ni résultat n’est envoyé.
- Autorisation :
local
Corps
| Champ | Type | Requis |
|---|---|---|
cliVersion |
chaîne | Oui |
scannerVersion |
chaîne | Oui |
rulesetVersion |
chaîne | Oui |
reportSchemaVersion |
chaîne | Oui |
checks |
list of tracked-secrets, public-environment, browser-artifacts, supabase-client, supabase-migrations, git-history, docker-files, docker-values, actions-injection, source-maps, php-version, actions-policy, compose-policy, hosting-config |
Oui |
data
| Champ | Type | Toujours présent |
|---|---|---|
admissionId |
chaîne | Oui |
projectId |
chaîne | Oui |
workspaceId |
chaîne | Oui |
policyVersion |
chaîne | Oui |
startBy |
chaîne | Oui |
checks |
liste d’objets | Oui |
GET /me
La personne, l’espace de travail et la clé derrière cet identifiant.
- Autorisation :
read
data
| Champ | Type | Toujours présent |
|---|---|---|
user |
objet | Oui |
workspace |
objet | Oui |
key |
objet | Oui |
DELETE /me
Révoquer la clé présentée.
- Autorisation : toute clé valide
data
| Champ | Type | Toujours présent |
|---|---|---|
revoked |
booléen | Oui |
GET /projects
Sites (projets) avec leurs dernières analyses Pulse et Deep.
- Autorisation :
read
Chaque élément de data
| Champ | Type | Toujours présent |
|---|---|---|
id |
chaîne | Oui |
name |
chaîne | Oui |
status |
chaîne | Oui |
baseDomain |
chaîne ou null | Oui |
latestPulse |
objet ou null | Oui |
latestDeep |
objet ou null | Non |
latestBox |
objet ou null | Oui |
webPath |
chaîne | Oui |
webUrl |
chaîne | Non |
GET /projects/{projectId}/status
Derniers résultats d’un site et ce qui a changé.
- Autorisation :
read
data
| Champ | Type | Toujours présent |
|---|---|---|
project |
objet | Oui |
latestPulse |
objet ou null | Oui |
latestDeep |
objet ou null | Non |
latestBox |
objet ou null | Oui |
lastComparison |
objet ou null | Oui |
fixes |
objet ou null | Non |
caveats |
liste de chaînes | Oui |
POST /projects/{projectId}/pulse
Lancer une analyse Pulse sur un site, ou un nouveau contrôle de la dernière.
- Autorisation :
pulse - Répond 201 en cas de succès
Corps
| Champ | Type | Requis |
|---|---|---|
idempotencyKey |
chaîne | Oui |
data
| Champ | Type | Toujours présent |
|---|---|---|
id |
chaîne | Oui |
kind |
pulse, box (Deep, nom hérité) |
Oui |
projectId |
chaîne | Oui |
target |
chaîne | Oui |
status |
queued, running, cancelling, succeeded, incomplete, failed, cancelled |
Oui |
mode |
autonomous, authenticated, active ou null |
Oui |
createdAt |
chaîne ou null | Oui |
finishedAt |
chaîne ou null | Oui |
webPath |
chaîne | Oui |
assessmentLevel |
pulse, standard, deep ou null |
Non |
headline |
objet | Non |
webUrl |
chaîne | Non |
suggestedPollAfterSeconds |
entier ou null | Non |
dismissals |
objet | Non |
baselineRunId |
chaîne ou null | Oui |
open |
objet | Oui |
findingCount |
entier | Oui |
progress |
objet ou null | Oui |
coverage |
objet | Oui |
caveats |
liste de chaînes | Oui |
outcome |
objet ou null | Non |
exposureCheck |
objet ou null | Non |
coverageReceipt |
objet ou null | Non |
POST /projects/{projectId}/deep
Lancer l’analyse Deep d’une version avec une clé CI créée pour ce site, avec l’autorisation Deep.
- Autorisation :
deep - Répond 201 en cas de succès
Corps
| Champ | Type | Requis |
|---|---|---|
idempotencyKey |
chaîne | Oui |
data
| Champ | Type | Toujours présent |
|---|---|---|
id |
chaîne | Oui |
kind |
pulse, box (Deep, nom hérité) |
Oui |
projectId |
chaîne | Oui |
target |
chaîne | Oui |
status |
queued, running, cancelling, succeeded, incomplete, failed, cancelled |
Oui |
mode |
autonomous, authenticated, active ou null |
Oui |
createdAt |
chaîne ou null | Oui |
finishedAt |
chaîne ou null | Oui |
webPath |
chaîne | Oui |
assessmentLevel |
pulse, standard, deep ou null |
Non |
headline |
objet | Non |
webUrl |
chaîne | Non |
suggestedPollAfterSeconds |
entier ou null | Non |
dismissals |
objet | Non |
baselineRunId |
chaîne ou null | Oui |
open |
objet | Oui |
findingCount |
entier | Oui |
progress |
objet ou null | Oui |
coverage |
objet | Oui |
caveats |
liste de chaînes | Oui |
outcome |
objet ou null | Non |
exposureCheck |
objet ou null | Non |
coverageReceipt |
objet ou null | Non |
GET /runs
Analyses Pulse et Deep, les plus récentes en premier.
- Autorisation :
read
Paramètres de requête
| Champ | Type | Requis |
|---|---|---|
projectId |
chaîne | Non |
kind |
pulse, box (Deep, nom hérité) |
Non |
assessmentLevel |
pulse, standard, deep |
Non |
status |
queued, running, cancelling, succeeded, incomplete, failed, cancelled |
Non |
limit |
entier | Non |
Chaque élément de data
| Champ | Type | Toujours présent |
|---|---|---|
id |
chaîne | Oui |
kind |
pulse, box (Deep, nom hérité) |
Oui |
projectId |
chaîne | Oui |
target |
chaîne | Oui |
status |
queued, running, cancelling, succeeded, incomplete, failed, cancelled |
Oui |
mode |
autonomous, authenticated, active ou null |
Oui |
createdAt |
chaîne ou null | Oui |
finishedAt |
chaîne ou null | Oui |
webPath |
chaîne | Oui |
assessmentLevel |
pulse, standard, deep ou null |
Non |
headline |
objet | Non |
webUrl |
chaîne | Non |
suggestedPollAfterSeconds |
entier ou null | Non |
GET /runs/{runId}
Une analyse avec son résumé et ses totaux.
- Autorisation :
read
data
| Champ | Type | Toujours présent |
|---|---|---|
id |
chaîne | Oui |
kind |
pulse, box (Deep, nom hérité) |
Oui |
projectId |
chaîne | Oui |
target |
chaîne | Oui |
status |
queued, running, cancelling, succeeded, incomplete, failed, cancelled |
Oui |
mode |
autonomous, authenticated, active ou null |
Oui |
createdAt |
chaîne ou null | Oui |
finishedAt |
chaîne ou null | Oui |
webPath |
chaîne | Oui |
assessmentLevel |
pulse, standard, deep ou null |
Non |
headline |
objet | Non |
webUrl |
chaîne | Non |
suggestedPollAfterSeconds |
entier ou null | Non |
dismissals |
objet | Non |
baselineRunId |
chaîne ou null | Oui |
open |
objet | Oui |
findingCount |
entier | Oui |
progress |
objet ou null | Oui |
coverage |
objet | Oui |
caveats |
liste de chaînes | Oui |
outcome |
objet ou null | Non |
exposureCheck |
objet ou null | Non |
coverageReceipt |
objet ou null | Non |
GET /runs/{runId}/findings
Points à corriger d’une analyse.
- Autorisation :
read
Paramètres de requête
| Champ | Type | Requis |
|---|---|---|
severity |
critical, high, medium, low, info |
Non |
state |
attention, information, unknown, pass |
Non |
all |
true, false |
Non |
Chaque élément de data
| Champ | Type | Toujours présent |
|---|---|---|
dismissal |
objet | Non |
id |
chaîne | Oui |
code |
chaîne | Non |
runId |
chaîne | Oui |
kind |
pulse, box (Deep, nom hérité) |
Oui |
severity |
critical, high, medium, low, info |
Oui |
state |
attention, information, unknown, pass |
Oui |
category |
chaîne | Oui |
title |
chaîne | Oui |
meaning |
chaîne | Oui |
fix |
chaîne ou null | Oui |
confidence |
chaîne | Oui |
evidence |
liste de chaînes | Oui |
sources |
liste de chaînes | Oui |
steps |
liste de chaînes | Oui |
webPath |
chaîne | Oui |
webUrl |
chaîne | Non |
verdict |
confirmed, needs_review, not_actionable ou null |
Non |
certainty |
high, medium, low ou null |
Non |
exploitability |
direct, conditional, hygiene, none ou null |
Non |
proof |
objet ou null | Non |
proofGap |
chaîne ou null | Non |
urgency |
now, week, later, none |
Non |
howSure |
confirmed, likely, possible ou null |
Non |
lifecycle |
objet ou null | Non |
GET /runs/{runId}/findings/{findingId}
Un point à corriger avec ses preuves masquées.
- Autorisation :
read
data
| Champ | Type | Toujours présent |
|---|---|---|
dismissal |
objet | Non |
id |
chaîne | Oui |
code |
chaîne | Non |
runId |
chaîne | Oui |
kind |
pulse, box (Deep, nom hérité) |
Oui |
severity |
critical, high, medium, low, info |
Oui |
state |
attention, information, unknown, pass |
Oui |
category |
chaîne | Oui |
title |
chaîne | Oui |
meaning |
chaîne | Oui |
fix |
chaîne ou null | Oui |
confidence |
chaîne | Oui |
evidence |
liste de chaînes | Oui |
sources |
liste de chaînes | Oui |
steps |
liste de chaînes | Oui |
webPath |
chaîne | Oui |
webUrl |
chaîne | Non |
verdict |
confirmed, needs_review, not_actionable ou null |
Non |
certainty |
high, medium, low ou null |
Non |
exploitability |
direct, conditional, hygiene, none ou null |
Non |
proof |
objet ou null | Non |
proofGap |
chaîne ou null | Non |
urgency |
now, week, later, none |
Non |
howSure |
confirmed, likely, possible ou null |
Non |
lifecycle |
objet ou null | Non |
GET /runs/{runId}/repair-brief
Les corrections d’une analyse dans un seul brief Markdown.
- Autorisation :
read
Paramètres de requête
| Champ | Type | Requis |
|---|---|---|
findingId |
chaîne | Non |
agent |
claude-code, codex, cursor, vscode, opencode, lovable, bolt, replit, v0 |
Non |
data
| Champ | Type | Toujours présent |
|---|---|---|
runId |
chaîne | Oui |
findingIds |
liste de chaînes | Oui |
saved |
booléen | Oui |
markdown |
chaîne | Oui |
webUrl |
chaîne | Non |
GET /runs/{runId}/comparison
Ce qui a changé entre une analyse et la précédente.
- Autorisation :
read
data
| Champ | Type | Toujours présent |
|---|---|---|
runId |
chaîne | Oui |
baselineRunId |
chaîne | Oui |
error |
chaîne ou null | Oui |
changes |
liste d’objets | Oui |
webUrl |
chaîne | Non |
GET /runs/{runId}/export
Les résultats d’une analyse en PDF, en mots simples ou technique, encodés en base64.
- Autorisation :
read
Paramètres de requête
| Champ | Type | Requis |
|---|---|---|
dialect |
plain, technical |
Oui |
data
| Champ | Type | Toujours présent |
|---|---|---|
filename |
chaîne | Oui |
mimeType |
chaîne | Oui |
base64 |
chaîne | Oui |
Cette page vous a-t-elle été utile ?
Merci. Cela nous aide à améliorer cette page.