# Handschrift zu Excel

Wandeln Sie handschriftliche Tabellen, Protokolle oder Aufzeichnungen mit optimierter Erkennung in bearbeitbare XLSX-Arbeitsmappen um.

Offizielle Dokumentation: https://img2excel.net/de/docs/api/handwriting-to-excel

`POST /api/v1/handwriting-to-excel`

Wandeln Sie handschriftliche Tabellen, Protokolle oder Aufzeichnungen mit optimierter Erkennung in bearbeitbare XLSX-Arbeitsmappen um. Der synchrone Endpunkt wartet auf den Abschluss. Fehlgeschlagene Konvertierungen verbrauchen keine Credits.

Verwenden Sie ein scharfes, gleichmäßig beleuchtetes Bild mit der vollständigen Tabelle. Prüfen Sie erkannte Namen, Datumsangaben und Zahlen vor der Verwendung.

## Anfrage

### Header

| Header | Erforderlich | Beschreibung |
| --- | --- | --- |
| `Authorization` | Ja | `Bearer $IMG2EXCEL_API_KEY`. Verwenden Sie einen serverseitigen API-Schlüssel. |
| `Content-Type` | Ja | `multipart/form-data` mit boundary. Lassen Sie Ihren HTTP-Client den Header beim Datei-Upload setzen. |
| `Idempotency-Key` | Nein | Idempotenzschlüssel mit maximal 200 Zeichen. Für jeden Upload empfohlen; bei Wiederholungen denselben Wert verwenden. |

### Anfragekörper

| Feld | Typ | Erforderlich | Beschreibung |
| --- | --- | --- | --- |
| `file` | Binärdatei | Ja | Ein PNG-, JPG- oder JPEG-Bild, maximal 4 MB. |

Senden Sie das Bild als Datei-Upload, nicht als JSON oder Bild-URL. Der Endpunkt wählt das Erkennungsprofil automatisch.

## Anfragebeispiele

Führen Sie die Beispiele serverseitig mit gesetztem `IMG2EXCEL_API_KEY` aus. Python benötigt `pip install requests`; Node.js benötigt Version 20 oder neuer.


### cURL

```bash
curl --fail-with-body --max-time 330 -i https://img2excel.net/api/v1/handwriting-to-excel \
  -H "Authorization: Bearer $IMG2EXCEL_API_KEY" \
  -H "Idempotency-Key: handwriting-to-excel-001" \
  -F "file=@handwritten-log.jpg"
```


### Python

```python
import os
import requests

with open("handwritten-log.jpg", "rb") as image:
    response = requests.post(
        "https://img2excel.net/api/v1/handwriting-to-excel",
        headers={
            "Authorization": f"Bearer {os.environ['IMG2EXCEL_API_KEY']}",
            "Idempotency-Key": "handwritten-log-001",
        },
        files={"file": ("handwritten-log.jpg", image, "image/jpeg")},
        timeout=330,
    )

response.raise_for_status()
job = response.json()
print(job["result"]["download_url"])
```


### Node.js

```ts
import { readFile } from 'node:fs/promises';

const file = await readFile('handwritten-log.jpg');
const form = new FormData();
form.set('file', new File([file], 'handwritten-log.jpg', { type: 'image/jpeg' }));

const response = await fetch('https://img2excel.net/api/v1/handwriting-to-excel', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.IMG2EXCEL_API_KEY}`,
    'Idempotency-Key': 'handwritten-log-001',
  },
  body: form,
  signal: AbortSignal.timeout(330_000),
});

if (!response.ok) throw new Error(await response.text());
const job = await response.json();
console.log(job.result.download_url);
```




## Antwort

**200 OK** — Konvertierung abgeschlossen. Laden Sie die Excel-Datei über `result.download_url` herunter. Die Beispiel-URL ist ein Platzhalter.

```json
{
  "id": "job_0123456789abcdef0123456789abcdef",
  "type": "handwriting-to-excel",
  "status": "succeeded",
  "credits_reserved": 2,
  "credits_used": 2,
  "created_at": "2026-10-04T09:00:00.000Z",
  "completed_at": "2026-10-04T09:00:08.000Z",
  "result": {
    "filename": "table_result.xlsx",
    "content_type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
    "size_bytes": 17330,
    "download_url": "https://signed-storage-url.example/...",
    "download_url_expires_in": 900
  }
}
```

**422 Unprocessable Entity** — Konvertierung fehlgeschlagen. Die Antwort enthält die Auftrags-ID, `status: "failed"`, `error.code` und `error.message`. Es werden keine Credits verbraucht.

Passt der Idempotenzschlüssel zu einer bestehenden Konvertierung, wird `Idempotent-Replayed: true` zurückgegeben. Abgeschlossene Aufträge liefern `200`, abgelaufene Ergebnisse `410`. Wartende oder laufende Aufträge liefern bei Wiederholung `202` mit `Location`. Fragen Sie diese URL ab, statt eine neue Konvertierung zu erstellen.

Alle Antwortfelder stehen unter [Aufträge und Fehler](https://img2excel.net/de/docs/api/jobs). Synchrone und asynchrone Aufrufe teilen pro Konvertierungstyp dieselben Aufträge, Kontolimits und Idempotenzschlüssel.

Der synchrone Endpunkt wartet auf die Konvertierung. Setzen Sie das HTTP-Client-Timeout auf 330 Sekunden. Bei einem Verbindungs-Timeout wiederholen Sie den Aufruf mit demselben `Idempotency-Key`. Ein neuer Schlüssel startet eine neue Konvertierung.

## Asynchrone Konvertierung (optional)

Mit `POST /api/v1/handwriting-to-excel/jobs` können Sie ohne Warten senden. Felder und Authentifizierung bleiben gleich. Ein neuer Auftrag liefert `202`, seine ID und `Location`. Fragen Sie `GET /api/v1/jobs/{job_id}` alle 2–3 Sekunden ab, bis `succeeded`, `failed` oder `expired` erreicht ist. Laden Sie bei Erfolg `result.download_url` herunter. Siehe [Aufträge und Fehler](https://img2excel.net/de/docs/api/jobs).

---

OpenAPI 3.1: https://img2excel.net/api/openapi.json
Vollständige API-Dokumentation: https://img2excel.net/de/docs/api/text/llms-full.txt
