---
seo_title: CSV in JSON API | CSV-Dateien in JSON konvertieren | EnConvert
meta_desc: Konvertieren Sie CSV in JSON mit POST /v1/convert/csv-to-json. Die erste Zeile liefert die Keys, jede Zeile wird ein JSON-Objekt; alle Werte bleiben Strings.
keywords: csv zu json api, csv in json umwandeln api, csv to json converter api, csv datei in json array umwandeln, csv zeilen zu json objekten, csv parsen json api, csv upload json konvertieren, rest api csv nach json
---

# CSV in JSON API

Konvertieren Sie eine CSV-Datei mit einem einzigen Request an `POST /v1/convert/csv-to-json` in ein JSON-Array. Die erste Zeile wird als Spaltenüberschriften verwendet, und jede weitere Zeile wird zu einem JSON-Objekt im Ausgabe-Array; alle Werte bleiben Strings (keine Typinferenz). Antworten liefern standardmäßig rohe JSON-Bytes oder bei `direct_download=false` Metadaten mit einer Presigned-Download-URL.

---

## Endpunkt

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

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

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

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

---

## 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 `.csv`-Datei. Die erste Zeile muss die Spaltenüberschriften enthalten. UTF-8-kodiert. |
| `output_filename` | `string` | Nein | Eingabedateiname | Eigener Ausgabedateiname. Die Endung `.json` wird automatisch angehängt. |
| `direct_download` | `boolean` | Nein | `true` | Bei `true` werden rohe JSON-Bytes zurückgegeben. Bei `false` Metadaten mit einer Presigned-Download-URL. |

---

## Konvertierungsregeln

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

Wird zu:

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

- Die erste Zeile wird als Spaltenüberschriften behandelt
- Trennzeichen ist das Komma (nicht konfigurierbar)
- **Alle Werte bleiben Strings** in der JSON-Ausgabe -- es findet keine Typinferenz statt. Die Zahl `30` im CSV wird zu `"30"` im JSON, nicht zu `30`.
- Die Ausgabe ist formatiertes (pretty-printed) JSON mit 2 Leerzeichen Einrückung

---

## Antwort

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

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

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

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

---

## Codebeispiele

### Python

```python
import requests

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

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

### Node.js

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

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

### Go

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

req, _ := http.NewRequest("POST", "https://api.enconvert.com/v1/convert/csv-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)
```

---

## Fehlerantworten

| Status | Bedingung |
|--------|-----------|
| `400 Bad Request` | Datei ist keine `.csv`-Datei |
| `400 Bad Request` | CSV-Datei ist leer oder enthält keine gültigen Zeilen |
| `400 Bad Request` | Ungültige CSV-Kodierung (UTF-8 erwartet) |
| `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 |
| Typinferenz | Keine (alle Werte sind Strings) |
| Monatliche Konvertierungen | Planabhängig |

## Häufig gestellte Fragen

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

Senden Sie einen `multipart/form-data`-POST-Request an `/v1/convert/csv-to-json` mit Ihrer `.csv`-Datei im Feld `file`, authentifiziert mit einem `X-API-Key`-Header oder einem JWT `Authorization: Bearer`-Token. Die erste Zeile muss die Spaltenüberschriften enthalten.

### Warum werden Zahlen aus meinem CSV im JSON als Strings zurückgegeben?

Es findet keine Typinferenz statt. Alle Werte bleiben in der JSON-Ausgabe Strings. Die Zahl `30` im CSV wird zu `"30"` im JSON, nicht zu `30`.

### Kann ich ein anderes Trennzeichen als das Komma verwenden?

Nein. Das Trennzeichen ist immer ein Komma und nicht konfigurierbar.

### Kann ich statt roher JSON-Bytes eine Presigned-Download-URL erhalten?

Ja. Setzen Sie `direct_download=false`, um Metadaten mit `presigned_url`, `object_key`, `filename`, `file_size` und `conversion_time_seconds` zu erhalten.

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

Ein `400` wird zurückgegeben, wenn die Datei keine `.csv`-Datei ist, das CSV leer ist oder keine gültigen Zeilen enthält oder die Kodierung nicht UTF-8 ist. Zu große Dateien geben `413 Payload Too Large` zurück.
