---
seo_title: JSON zu TOML API | JSON-Dateien in TOML konvertieren | EnConvert
meta_desc: JSON in TOML konvertieren via POST /v1/convert/json-to-toml. Eine .json-Datei hochladen und TOML direkt oder per Presigned URL erhalten. Null-Werte ergeben 400.
keywords: json in toml umwandeln api, json zu toml konvertieren, json to toml api, json datei in toml umwandeln, json config zu toml api, json zu toml rest api, json zu toml curl, json zu toml python
---

# JSON-zu-TOML-API

Die JSON-zu-TOML-API konvertiert eine JSON-Datei mit einem einzigen Request an `POST /v1/convert/json-to-toml` in das TOML-Format. Laden Sie eine `.json`-Datei per Multipart-Formulardaten hoch und erhalten Sie das konvertierte TOML direkt, oder setzen Sie `direct_download=false`, um Metadaten mit einer Presigned Download-URL zu erhalten. JSON-Arrays werden unter einem `items`-Schlüssel und Skalarwerte unter einem `value`-Schlüssel eingebettet, da TOML eine Tabelle auf oberster Ebene erfordert.

---

## Endpunkt

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

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

**Akzeptierte Eingabe:** `.json`-Dateien (UTF-8-kodiert)

**Ausgabeformat:** `.toml` (`application/toml`)

---

## Authentifizierung

Erfordert entweder einen privaten API-Key oder ein per Public Key ausgestelltes JWT-Token.

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

Oder:

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

---

## Request-Parameter

| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|-----------|------|----------|---------|-------------|
| `file` | file | Ja | -- | Die zu konvertierende `.json`-Datei. Muss UTF-8-kodiert sein. Darf keine `null`-Werte enthalten. |
| `output_filename` | `string` | Nein | Name der Eingabedatei | Eigener Ausgabedateiname. Die Endung `.toml` wird automatisch angehängt. |
| `direct_download` | `boolean` | Nein | `true` | Bei `true` werden die TOML-Rohbytes zurückgegeben. Bei `false` werden Metadaten mit einer Presigned Download-URL zurückgegeben. |

---

## Konvertierungsregeln

- **JSON-Objekt** wird direkt übernommen:
  ```json
  {"database": {"host": "localhost", "port": 5432}}
  ```
  Wird zu:
  ```toml
  [database]
  host = "localhost"
  port = 5432
  ```

- **JSON-Array** wird unter einem `items`-Schlüssel eingebettet (TOML erfordert eine Tabelle auf oberster Ebene):
  ```json
  [1, 2, 3]
  ```
  Wird zu:
  ```toml
  items = [1, 2, 3]
  ```

- **Skalarwert** wird unter einem `value`-Schlüssel eingebettet:
  ```json
  42
  ```
  Wird zu:
  ```toml
  value = 42
  ```

<div class="alert alert-warning">
<strong>Wichtig:</strong> TOML unterstützt keine <code>null</code>-Werte. Enthält Ihr JSON <code>null</code>-Werte, schlägt die Konvertierung mit einem 400-Fehler fehl. Entfernen oder ersetzen Sie <code>null</code>-Werte vor der Konvertierung.
</div>

---

## Response

### Direkter Download (`direct_download=true`, Standard)

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

### Metadaten-Response (`direct_download=false`)

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

---

## Codebeispiele

### Python

```python
import requests

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

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

### Node.js

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

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

const toml = await response.text();
```

### PHP

```php
$ch = curl_init("https://api.enconvert.com/v1/convert/json-to-toml");
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.json", "application/json")]
]);
$toml = curl_exec($ch);
curl_close($ch);
```

### Go

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

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

---

## Fehlerantworten

| Status | Bedingung |
|--------|-----------|
| `400 Bad Request` | Datei ist keine `.json`-Datei |
| `400 Bad Request` | Ungültiger JSON-Inhalt |
| `400 Bad Request` | JSON-zu-TOML-Konvertierung fehlgeschlagen (typischerweise wegen `null`-Werten) |
| `401 Unauthorized` | Fehlender oder ungültiger API-Key / JWT-Token |
| `402 Payment Required` | Monatliches Ops-Kontingent aufgebraucht |
| `413 Payload Too Large` | Datei überschreitet die maximale Dateigröße des Plans |

---

## Limits

| Limit | Wert |
|-------|-------|
| Maximale Dateigröße | Planabhängig (Founding: 5 MB) |
| Eingabekodierung | Nur UTF-8 |
| Null-Werte | Nicht unterstützt (TOML-Einschränkung) |
| Monatliche Konvertierungen | Planabhängig |

---

## Häufig gestellte Fragen

### Wie konvertiere ich JSON per REST API in TOML?

Senden Sie einen `multipart/form-data`-POST-Request an `POST /v1/convert/json-to-toml` mit Ihrer `.json`-Datei im Feld `file`, authentifiziert über einen `X-API-Key`-Header oder ein JWT-Token via `Authorization: Bearer`. Standardmäßig enthält der Response-Body die TOML-Rohbytes.

### Warum schlägt meine JSON-zu-TOML-Konvertierung mit einem 400-Fehler fehl?

TOML unterstützt keine `null`-Werte; JSON mit `null` schlägt daher mit `400 Bad Request` fehl. Ein `400` wird auch zurückgegeben, wenn der Upload keine `.json`-Datei ist oder der JSON-Inhalt ungültig ist.

### Kann ich ein JSON-Array oder einen Skalarwert in TOML konvertieren?

Ja. Da TOML eine Tabelle auf oberster Ebene erfordert, wird ein JSON-Array unter einem `items`-Schlüssel und ein Skalarwert unter einem `value`-Schlüssel eingebettet.

### Wie erhalte ich eine Download-URL statt der TOML-Rohdatei?

Setzen Sie `direct_download=false` im Request. Die API gibt dann JSON-Metadaten zurück, darunter `presigned_url`, `object_key`, `filename`, `file_size` und `conversion_time_seconds`.

### Welches Dateigrößenlimit gilt für JSON-zu-TOML-Konvertierungen?

Die maximale Dateigröße ist planabhängig (Founding-Plan: 5 MB). Dateien über dem Limit Ihres Plans liefern `413 Payload Too Large`.
