---
seo_title: API TOML vers JSON | Convertir TOML en JSON | EnConvert
meta_desc: Convertissez du TOML en JSON via POST /v1/convert/toml-to-json. Envoyez un fichier .toml et recevez du JSON indenté, directement ou via une URL présignée.
keywords: api toml vers json, convertir toml en json, convertisseur toml json api, toml vers json api rest, parser toml en json api, toml en json python requests, toml en json curl, fichier config toml en json
---

# API TOML vers JSON

L'API TOML vers JSON convertit un fichier TOML au format JSON en une seule requête vers `POST /v1/convert/toml-to-json`. Envoyez un fichier `.toml` en multipart form data et recevez directement du JSON mis en forme, indenté avec 2 espaces, ou définissez `direct_download=false` pour obtenir des métadonnées avec une URL de téléchargement présignée. Les valeurs datetime TOML sont préservées sous forme de chaînes ISO-8601.

---

## Endpoint

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

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

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

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

---

## Authentification

Nécessite une clé API privée ou un token JWT obtenu à partir d'une clé publique.

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

Ou :

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

---

## Paramètres de requête

| Paramètre | Type | Obligatoire | Défaut | Description |
|-----------|------|----------|---------|-------------|
| `file` | file | Oui | -- | Le fichier `.toml` à 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` | À `true`, renvoie les octets JSON bruts. À `false`, renvoie des métadonnées avec une URL de téléchargement présignée. |

---

## Règles de conversion

Correspondance directe de TOML vers JSON :

```toml
[database]
host = "localhost"
port = 5432

[database.credentials]
user = "admin"
password = "secret"

features = ["auth", "logging"]
```

Devient :

```json
{
  "database": {
    "host": "localhost",
    "port": 5432,
    "credentials": {
      "user": "admin",
      "password": "secret"
    }
  },
  "features": ["auth", "logging"]
}
```

- Les tables TOML deviennent des objets JSON
- Les tableaux TOML deviennent des tableaux JSON
- Les valeurs datetime TOML sont sérialisées en chaînes ISO-8601
- La sortie est indentée avec 2 espaces, unicode préservé

---

## 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}/toml-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.toml", "rb") as f:
    response = requests.post(
        "https://api.enconvert.com/v1/convert/toml-to-json",
        headers={"X-API-Key": "sk_your_private_key"},
        files={"file": ("config.toml", f, "application/toml")}
    )

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

### Node.js

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

const response = await fetch("https://api.enconvert.com/v1/convert/toml-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/toml-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.toml")]
]);
$json = curl_exec($ch);
curl_close($ch);
```

### Go

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

req, _ := http.NewRequest("POST", "https://api.enconvert.com/v1/convert/toml-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 `.toml` |
| `400 Bad Request` | Contenu TOML invalide |
| `400 Bad Request` | La conversion TOML vers JSON a échoué |
| `401 Unauthorized` | Clé API ou token JWT manquant ou invalide |
| `402 Payment Required` | Quota mensuel d'ops épuisé |
| `413 Payload Too Large` | Le fichier dépasse la taille maximale du plan |

---

## Limites

| Limite | Valeur |
|-------|-------|
| Taille max. de fichier | Selon le plan (Founding : 5 MB) |
| Encodage d'entrée | UTF-8 uniquement |
| Conversions mensuelles | Selon le plan |

---

## Questions fréquentes

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

Envoyez une requête POST `multipart/form-data` vers `POST /v1/convert/toml-to-json` avec votre fichier `.toml` dans le champ `file`, en vous authentifiant via un en-tête `X-API-Key` ou un token JWT `Authorization: Bearer`. Par défaut, le corps de la réponse contient les octets JSON bruts.

### Comment les valeurs datetime TOML sont-elles représentées dans la sortie JSON ?

Les valeurs datetime TOML sont sérialisées en chaînes ISO-8601. Les tables TOML deviennent des objets JSON et les tableaux TOML des tableaux JSON, avec une indentation de 2 espaces et l'unicode préservé.

### Puis-je obtenir une URL de téléchargement présignée au lieu du JSON brut ?

Oui. Définissez `direct_download=false` et l'API renvoie des métadonnées JSON incluant `presigned_url`, `object_key`, `filename`, `file_size` et `conversion_time_seconds`.

### Pourquoi ma conversion TOML vers JSON renvoie-t-elle une erreur 400 ?

Un `400 Bad Request` est renvoyé lorsque le fichier envoyé n'est pas un `.toml`, que le contenu TOML est invalide ou que la conversion elle-même échoue. Le fichier doit aussi être encodé en UTF-8.
