---
seo_title: JSON in CSV API | JSON-Arrays in CSV konvertieren | EnConvert
meta_desc: Konvertieren Sie JSON in CSV mit POST /v1/convert/json-to-csv. Erfordert ein JSON-Array von Objekten; Header stammen aus den Keys des ersten Objekts. Kommagetrennt.
keywords: json zu csv api, json in csv umwandeln api, json array in csv konvertieren, json to csv converter api, json objekte als csv exportieren, rest api json nach csv, json datei in csv umwandeln
---

# JSON in CSV API

Konvertieren Sie eine JSON-Datei mit einem einzigen Request an `POST /v1/convert/json-to-csv` in CSV. Die Eingabe muss ein JSON-Array von Objekten sein; die Spaltenüberschriften werden aus den Keys des ersten Objekts abgeleitet, und die Zeilen sind kommagetrennt mit `QUOTE_MINIMAL`-Quoting. Standardmäßig besteht die Antwort aus rohen CSV-Bytes; setzen Sie `direct_download=false`, um stattdessen Metadaten mit einer Presigned-Download-URL zu erhalten.

---

## Endpunkt

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

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

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

**Ausgabeformat:** `.csv` (`text/csv`)

---

## Authentifizierung

Erfordert entweder einen privaten API-Key oder ein von einem 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 ein JSON-Array von Objekten enthalten. UTF-8-kodiert. |
| `output_filename` | `string` | Nein | Eingabedateiname | Eigener Ausgabedateiname. Die Endung `.csv` wird automatisch angehängt. |
| `direct_download` | `boolean` | Nein | `true` | Bei `true` werden rohe CSV-Bytes zurückgegeben. Bei `false` Metadaten mit einer Presigned-Download-URL. |

---

## Konvertierungsregeln

```json
[
  {"name": "Alice", "age": 30, "city": "London"},
  {"name": "Bob", "age": 25, "city": "Paris"}
]
```

Wird zu:

```csv
name,age,city
Alice,30,London
Bob,25,Paris
```

- Die Eingabe **muss** ein JSON-Array von Objekten sein (Liste von Dictionaries)
- Spaltenüberschriften werden **ausschließlich aus den Keys des ersten Objekts** abgeleitet
- Trennzeichen ist das Komma (nicht konfigurierbar)
- Quoting folgt `QUOTE_MINIMAL` -- Werte mit Kommas, Anführungszeichen oder Zeilenumbrüchen werden in Anführungszeichen gesetzt
- Verschachtelte Objekte oder Arrays in Werten werden als ihre String-Repräsentation serialisiert (nicht abgeflacht)

<div class="alert alert-warning">
<strong>Wichtig:</strong> Wenn Objekte im Array unterschiedliche Keys haben, werden zusätzliche Keys späterer Objekte stillschweigend verworfen. Fehlende Keys erzeugen leere Werte. Stellen Sie für beste Ergebnisse sicher, dass alle Objekte denselben Satz an Keys haben.
</div>

---

## Antwort

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

```
HTTP 200 OK
Content-Type: text/csv
Content-Disposition: inline; filename="data_20260405_123456789.csv"
```

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

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

---

## Codebeispiele

### Python

```python
import requests

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

with open("data.csv", "wb") as out:
    out.write(response.content)
```

### Node.js

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

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

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

### PHP

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

### Go

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

req, _ := http.NewRequest("POST", "https://api.enconvert.com/v1/convert/json-to-csv", 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 muss für die CSV-Konvertierung ein Array von Objekten sein |
| `400 Bad Request` | JSON-Array ist leer |
| `400 Bad Request` | JSON-Array muss Objekte (Dictionaries) enthalten |
| `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 |
| Eingabestruktur | Nur Array von Objekten |
| Monatliche Konvertierungen | Planabhängig |

## Häufig gestellte Fragen

### Wie konvertiere ich ein JSON-Array in CSV über eine REST API?

Senden Sie einen `multipart/form-data`-POST-Request an `/v1/convert/json-to-csv` mit einer `.json`-Datei, die ein Array von Objekten enthält, im Feld `file`, authentifiziert mit einem `X-API-Key`-Header oder einem JWT `Authorization: Bearer`-Token. Die Antwort ist kommagetrenntes CSV.

### Was passiert, wenn die JSON-Objekte unterschiedliche Keys haben?

Die Spaltenüberschriften stammen ausschließlich aus den Keys des ersten Objekts. Zusätzliche Keys späterer Objekte werden stillschweigend verworfen, und fehlende Keys erzeugen leere Werte. Stellen Sie daher für beste Ergebnisse sicher, dass alle Objekte denselben Key-Satz teilen.

### Werden verschachtelte JSON-Objekte in CSV-Spalten abgeflacht?

Nein. Verschachtelte Objekte oder Arrays in Werten werden als ihre String-Repräsentation serialisiert und nicht in separate Spalten abgeflacht.

### Kann ich das CSV-Trennzeichen ändern?

Nein. Das Trennzeichen ist immer ein Komma und nicht konfigurierbar. Quoting folgt `QUOTE_MINIMAL`, sodass Werte mit Kommas, Anführungszeichen oder Zeilenumbrüchen automatisch in Anführungszeichen gesetzt werden.

### Warum gibt die JSON-zu-CSV-API 400 Bad Request zurück?

Ein `400` wird zurückgegeben, wenn die Datei keine `.json`-Datei ist, das JSON ungültig ist, das JSON kein Array von Objekten ist oder das Array leer ist. Zu große Dateien geben `413 Payload Too Large` zurück.
