---
seo_title: API YAML vers JSON | Convertir YAML en JSON | EnConvert
meta_desc: Convertissez du YAML en JSON via POST /v1/convert/yaml-to-json. Analyse sûre, entrée .yaml ou .yml, JSON indenté à 2 espaces. Premier document uniquement.
keywords: api yaml vers json, convertir yaml en json api, yml en json api, yaml to json api rest, parser yaml en json en toute sécurité, config yaml en json api, yaml multi documents en json
---

# API YAML vers JSON

Convertissez un fichier YAML en JSON avec une seule requête vers `POST /v1/convert/yaml-to-json`. L'endpoint accepte des entrées `.yaml` ou `.yml`, utilise une analyse sûre (pas d'exécution de code arbitraire) et produit du JSON formaté avec une indentation de 2 espaces. Les réponses renvoient les octets JSON bruts par défaut, ou des métadonnées avec une URL de téléchargement présignée lorsque `direct_download=false`.

---

## Endpoint

```
POST /v1/convert/yaml-to-json
```

**Content-Type :** `multipart/form-data`

**Entrée acceptée :** fichiers `.yaml` ou `.yml` (encodés en UTF-8)

**Format de sortie :** `.json` (`application/json`)

---

## Authentification

Nécessite soit une clé API privée, soit un jeton JWT issu d'une clé publique.

```
X-API-Key: sk_your_private_key
```

Ou :

```
Authorization: Bearer <jwt_token>
```

---

## Paramètres de la requête

| Paramètre | Type | Requis | Par défaut | Description |
|-----------|------|--------|------------|-------------|
| `file` | file | Oui | -- | Le fichier `.yaml` ou `.yml` à convertir. Doit être encodé en UTF-8. |
| `output_filename` | `string` | Non | Nom du fichier d'entrée | Nom de fichier de sortie personnalisé. L'extension `.json` est ajoutée automatiquement. |
| `direct_download` | `boolean` | Non | `true` | Lorsque `true`, renvoie les octets JSON bruts. Lorsque `false`, renvoie des métadonnées avec une URL de téléchargement présignée. |

---

## Règles de conversion

Correspondance directe de YAML vers JSON :

```yaml
database:
  host: localhost
  port: 5432
features:
- auth
- logging
enabled: true
```

Devient :

```json
{
  "database": {
    "host": "localhost",
    "port": 5432
  },
  "features": ["auth", "logging"],
  "enabled": true
}
```

- Utilise une **analyse sûre** -- pas de construction d'objets Python arbitraires à partir de balises YAML
- Les types YAML sont mappés naturellement : chaînes, nombres, booléens, nulls, tableaux, objets
- La sortie est indentée avec 2 espaces et l'unicode préservé

<div class="alert alert-info">
<strong>Note :</strong> Seul le premier document YAML est converti. Pour les fichiers YAML multi-documents séparés par <code>---</code>, seul le premier document sera traité.
</div>

---

## Réponse

### Téléchargement direct (`direct_download=true`, par défaut)

```
HTTP 200 OK
Content-Type: application/json
Content-Disposition: inline; filename="config_20260405_123456789.json"
```

### Réponse avec métadonnées (`direct_download=false`)

```json
{
    "presigned_url": "https://spaces.example.com/...",
    "object_key": "env/files/{project_id}/yaml-to-json/config_20260405_123456789.json",
    "filename": "config_20260405_123456789.json",
    "file_size": 1234,
    "conversion_time_seconds": 0.03
}
```

---

## Exemples de code

### Python

```python
import requests

with open("config.yaml", "rb") as f:
    response = requests.post(
        "https://api.enconvert.com/v1/convert/yaml-to-json",
        headers={"X-API-Key": "sk_your_private_key"},
        files={"file": ("config.yaml", f, "application/x-yaml")}
    )

with open("config.json", "wb") as out:
    out.write(response.content)
```

### Node.js

```javascript
const form = new FormData();
form.append("file", fs.createReadStream("config.yaml"));

const response = await fetch("https://api.enconvert.com/v1/convert/yaml-to-json", {
    method: "POST",
    headers: { "X-API-Key": "sk_your_private_key" },
    body: form
});

const json = await response.json();
```

### PHP

```php
$ch = curl_init("https://api.enconvert.com/v1/convert/yaml-to-json");
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ["X-API-Key: sk_your_private_key"],
    CURLOPT_POSTFIELDS => ["file" => new CURLFile("config.yaml")]
]);
$json = curl_exec($ch);
curl_close($ch);
```

### Go

```go
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
part, _ := writer.CreateFormFile("file", "config.yaml")
file, _ := os.Open("config.yaml")
io.Copy(part, file)
writer.Close()

req, _ := http.NewRequest("POST", "https://api.enconvert.com/v1/convert/yaml-to-json", body)
req.Header.Set("Content-Type", writer.FormDataContentType())
req.Header.Set("X-API-Key", "sk_your_private_key")
resp, _ := http.DefaultClient.Do(req)
```

---

## Réponses d'erreur

| Statut | Condition |
|--------|-----------|
| `400 Bad Request` | Le fichier n'est pas un fichier `.yaml` ou `.yml` |
| `400 Bad Request` | Contenu YAML invalide |
| `400 Bad Request` | Échec de la conversion YAML vers JSON |
| `401 Unauthorized` | Clé API / jeton JWT manquant ou invalide |
| `402 Payment Required` | Quota mensuel d'ops épuisé |
| `413 Payload Too Large` | Le fichier dépasse la taille maximale du forfait |

---

## Limites

| Limite | Valeur |
|--------|--------|
| Taille de fichier max | Dépend du forfait (Founding : 5 MB) |
| Encodage d'entrée | UTF-8 uniquement |
| Documents YAML | Premier document uniquement |
| Conversions mensuelles | Dépend du forfait |

## Questions fréquentes

### Comment convertir du YAML en JSON avec une API REST ?

Envoyez une requête POST `multipart/form-data` à `/v1/convert/yaml-to-json` avec votre fichier `.yaml` ou `.yml` dans le champ `file`, authentifiée avec un en-tête `X-API-Key` ou un jeton JWT `Authorization: Bearer`. La réponse est du JSON formaté avec une indentation de 2 espaces.

### Est-il sûr de convertir des fichiers YAML non fiables en JSON ?

L'endpoint utilise une analyse sûre, sans construction d'objets Python arbitraires à partir de balises YAML ni exécution de code arbitraire. Les types YAML sont mappés naturellement vers les chaînes, nombres, booléens, nulls, tableaux et objets JSON.

### Puis-je convertir des fichiers YAML multi-documents en JSON ?

Seul le premier document YAML est converti. Dans les fichiers contenant plusieurs documents séparés par `---`, tout ce qui suit le premier document n'est pas traité.

### Les fichiers .yml sont-ils acceptés au même titre que les .yaml ?

Oui. Les extensions `.yaml` et `.yml` sont toutes deux acceptées ; toute autre extension renvoie `400 Bad Request`. Les fichiers doivent être encodés en UTF-8.

### Puis-je obtenir une URL de téléchargement présignée au lieu des octets JSON bruts ?

Oui. Définissez `direct_download=false` pour recevoir des métadonnées avec `presigned_url`, `object_key`, `filename`, `file_size` et `conversion_time_seconds`.
