> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/cli/fr/pour-le-devops-et-les-administrateurs/automate/json-output.md).

# Lire les résultats en JSON

Obtenir les résultats de Devolutions CLI en JSON ou YAML, dans une seule enveloppe pour chaque commande, afin que les scripts puissent vérifier la réussite et les erreurs de façon fiable.

La sortie texte par défaut est écrite pour les personnes : sa présentation diffère d’une commande à l’autre et peut changer. Pour un script, demandez JSON ou YAML. Chaque commande répond alors avec la même enveloppe, pour les réussites et pour les erreurs, donc votre script vérifie un seul champ pour savoir ce qui s’est passé.

## Choisir le format de sortie

<table><thead><tr><th width="250">OPTION</th><th>CE QUE VOUS OBTENEZ</th></tr></thead><tbody><tr><td><code>--output text</code> (par défaut)</td><td>Texte lisible, différent pour chaque commande. Ne l’analysez pas.</td></tr><tr><td><code>--output json</code> or <code>--json</code></td><td>L’enveloppe JSON, avec retrait.</td></tr><tr><td><code>--output yaml</code> or <code>--yaml</code></td><td>La même enveloppe, en YAML.</td></tr></tbody></table>

Ces options fonctionnent avec chaque commande. N’en utilisez qu’une par commande : `--json` avec `--yaml`, ou `--json` avec `--output yaml`, arrête la commande avec l’erreur `conflictingOptions`. `--json` avec `--output json` est accepté.

```bash
devo vault list --json
```

## L’enveloppe

```json
{
  "status": "success",
  "command": "vault.list",
  "operationId": null,
  "data": [ ],
  "warnings": [],
  "errors": []
}
```

<table><thead><tr><th width="180">CHAMP</th><th>CE QU’IL CONTIENT</th></tr></thead><tbody><tr><td><code>status</code></td><td><code>success</code>, <code>partial</code> ou <code>error</code>. Vérifiez ce champ en premier. <code>partial</code> signifie que la commande s’est terminée, mais que certains éléments ont échoué : <code>data</code> contient ce qui a réussi, <code>errors</code> liste ce qui a échoué, et le code de sortie est <code>0</code>.</td></tr><tr><td><code>command</code></td><td>La commande qui s’est exécutée, sous forme de chemin en notation pointée tel que <code>vault.list</code> ou <code>entry.references</code>. Les alias et les valeurs d’option ne la changent pas.</td></tr><tr><td><code>operationId</code></td><td>Un identificateur quand la commande en a produit un, sinon <code>null</code>.</td></tr><tr><td><code>data</code></td><td>Le résultat. Sa forme dépend de la commande.</td></tr><tr><td><code>warnings</code></td><td>Avis qui n’ont pas arrêté la commande.</td></tr><tr><td><code>errors</code></td><td>Un élément par erreur. Vide quand <code>status</code> vaut <code>success</code> ; non vide quand il vaut <code>partial</code> ou <code>error</code>.</td></tr></tbody></table>

Chaque élément de `errors` a ces champs :

<table><thead><tr><th width="180">CHAMP</th><th>CE QU’IL CONTIENT</th></tr></thead><tbody><tr><td><code>code</code></td><td>Un code d’erreur stable, tel que <code>missingParameter</code> ou <code>conflictingOptions</code>. Basez les décisions de votre script sur ce champ.</td></tr><tr><td><code>message</code></td><td>Une explication pour les personnes. Sa formulation peut changer, donc ne vous y fiez pas pour une correspondance.</td></tr><tr><td><code>target</code></td><td>L’option, l’argument ou la ressource dont parle l’erreur, quand on la connaît.</td></tr><tr><td><code>blockerStatus</code>, <code>stageStatuses</code></td><td>Détails du runtime de l’espace de travail, quand l’erreur en provient.</td></tr></tbody></table>

Une ligne de commande que Devolutions CLI ne peut pas analyser, comme une commande mal orthographiée, retourne aussi l’enveloppe, avec des erreurs codées `usageError`, et parfois un élément `usageSuggestion` qui propose la bonne orthographe.

## L’utiliser dans un script

Vérifiez d’abord le code de sortie, puis lisez l’enveloppe. Un résultat `partial` se termine avec `0`, donc signalez aussi `errors` quand le code de sortie est `0`. Par exemple, avec `jq` :

{% tabs %}
{% tab title="Bash" %}

```bash
if result=$(devo vault list --json); then
  echo "$result" | jq -r '.data[].name'
  # A partial result exits with 0 and still lists errors.
  echo "$result" | jq -r '.errors[] | "\(.code): \(.message)"' >&2
else
  echo "$result" | jq -r '.errors[] | "\(.code): \(.message)"' >&2
  exit 1
fi
```

{% endtab %}

{% tab title="PowerShell" %}

```powershell
$result = devo vault list --json | ConvertFrom-Json
# 'partial' and 'error' both list their errors.
$result.errors | ForEach-Object { Write-Warning "$($_.code): $($_.message)" }
if ($result.status -eq 'error') {
    exit 1
}
# 'success' or 'partial': data holds what succeeded.
$result.data | ForEach-Object { $_.name }
```

{% endtab %}
{% endtabs %}

Les codes de sortie sont énumérés dans [Codes de sortie et erreurs](/cli/fr/reference/exit-codes-and-errors.md).

## Sortie standard et sortie d’erreur

<table><thead><tr><th width="200">FLUX</th><th>CE QUI Y VA</th></tr></thead><tbody><tr><td><strong>Sortie standard</strong></td><td>L’enveloppe, en JSON ou en YAML, pour les réussites et les erreurs. En texte, le résultat. En texte, les erreurs de <code>devo login</code> et des commandes disponibles seulement sur Devolutions Cloud ou seulement sur Devolutions Server vont aussi ici, sous la forme <code>&#x3C;code>: &#x3C;message></code>.</td></tr><tr><td><strong>Sortie d’erreur</strong></td><td>En texte, la plupart des erreurs, sous la forme <code>&#x3C;code>: &#x3C;message></code>. Les avis sur ce que fait Devolutions CLI, comme <code>Starting Devolutions CLI daemon...</code>, et les invites et messages de la connexion interactive.</td></tr></tbody></table>

Donc, en JSON ou YAML, lisez seulement la sortie standard : elle contient exactement une enveloppe. L’exception est `devo secret run`, décrite plus bas.

## Silencieux ou détaillé

Les avis sur ce que fait Devolutions CLI, comme le démarrage du processus en arrière-plan, sont écrits sur la sortie d’erreur :

* En sortie texte, ils apparaissent par défaut. `--quiet` les masque.
* Dans une sortie JSON ou YAML, elles sont masquées par défaut. `--verbose` les affiche, toujours sur la sortie d’erreur.

`--quiet` et `--verbose` ensemble arrêtent la commande avec `conflictingOptions`.

## Bon à savoir

* `devo secret run` n’enveloppe pas la sortie du programme qu’il démarre : la sortie du programme va vers votre terminal au fur et à mesure que le programme l’écrit, avec les valeurs secrètes masquées. La façon dont ses propres erreurs reviennent dépend du moment où elles surviennent :
  * Un lancement que Devolutions CLI refuse avant de résoudre quoi que ce soit, comme une référence dans les arguments de la commande (`secretLaunchArgumentReference`), un `--check` échoué, ou un programme qui ne peut pas démarrer, retourne l’enveloppe sur la sortie standard avec `--json` ou `--yaml`.
  * Une référence qui ne se résout pas est toujours écrite sur la sortie d’erreur sous la forme `<code>: <message>`, même avec `--json`, et le programme ne démarre pas.
  * Un programme arrêté par `--timeout-seconds` se termine avec `124` ; une exécution interrompue se termine avec `130`.
  * Sinon, `devo secret run` renvoie le code de sortie du programme lui-même. Consultez [Codes de sortie et erreurs](/cli/fr/reference/exit-codes-and-errors.md).
* Chaque commande et ses options se trouvent dans [Commandes](/cli/fr/reference/commands.md).

## Suivant

* [Run without prompts](/cli/fr/pour-le-devops-et-les-administrateurs/automate/non-interactive.md)
* [Exit codes and errors](/cli/fr/reference/exit-codes-and-errors.md)
* [Global options](/cli/fr/reference/global-options.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.devolutions.net/cli/fr/pour-le-devops-et-les-administrateurs/automate/json-output.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
