---
seo_title: SDKs für Dateikonvertierung: 10 Sprachen | EnConvert
meta_desc: Offizielle EnConvert-SDKs für Node.js, Python, Go, Java, PHP, Ruby, C#, Rust, Kotlin und Swift. Typisierte Clients für Dateikonvertierung und Web-Intelligenz.
keywords: sdk dateikonvertierung, api client bibliothek dateien konvertieren, enconvert sdk, python sdk dateien konvertieren, node js dateikonvertierung api, go client url zu pdf, java bibliothek dokumentkonvertierung, php sdk dateikonverter, ruby gem dateikonvertierung, sdk url zu pdf, web scraping sdk, client bibliothek dokumentkonvertierung
---

# SDKs für Dateikonvertierung

Offizielle Client-Bibliotheken für die EnConvert-API, veröffentlicht für zehn Sprachen: Node.js, Python, Go, Java, PHP, Ruby, C#, Rust, Kotlin und Swift. Jedes SDK deckt dieselben beiden Oberflächen hinter einem einzigen API-Schlüssel ab. Die Konvertierungs-Oberfläche wandelt Dateien und URLs in andere Formate um, und die V2-Oberfläche für Web-Intelligenz nimmt Live-Webseiten wahr (perceive), ermittelt URLs (discover), sucht im Web (lookup), destilliert strukturierte Daten (distill), ingestiert ganze Sites (ingest) und überwacht Seiten auf Änderungen (watch). Jeder Client stellt diese Endpunkte als typisierte Methoden bereit, übernimmt die Authentifizierung und liefert vorsignierte Download-URLs zurück.

<div class="alert alert-info">
<strong>Überall dasselbe Wire-Format.</strong> Jedes SDK spricht dieselben öffentlichen REST-Endpunkte an, die auf dieser Website dokumentiert sind. Du kannst SDK-Aufrufe und rohe HTTP-Aufrufe gegen dasselbe Projekt und denselben Schlüssel mischen.
</div>

---

## Verfügbare SDKs

| Sprache | Paket | Installation | Quelle |
|----------|---------|---------|--------|
| Node.js / TypeScript | `@enconvert/node-sdk` | `npm install @enconvert/node-sdk` | [enconvert/node-sdk](https://github.com/enconvert/node-sdk) |
| Python | `enconvert` | `pip install enconvert` | [conversionapi/python-sdk](https://github.com/conversionapi/python-sdk) |
| Go | `github.com/conversionapi/go-sdk` | `go get github.com/conversionapi/go-sdk` | [conversionapi/go-sdk](https://github.com/conversionapi/go-sdk) |
| Java | `com.enconvert:enconvert-sdk` | Dependency über Maven Central | [conversionapi/java-sdk](https://github.com/conversionapi/java-sdk) |
| PHP | `enconvert/enconvert-php` | `composer require enconvert/enconvert-php` | [conversionapi/php-sdk](https://github.com/conversionapi/php-sdk) |
| Ruby | `enconvert` | `gem install enconvert` | [conversionapi/ruby-sdk](https://github.com/conversionapi/ruby-sdk) |
| C# / .NET | `Enconvert` | `dotnet add package Enconvert` | [conversionapi/csharp-sdk](https://github.com/conversionapi/csharp-sdk) |
| Rust | `enconvert` | `cargo add enconvert` | [conversionapi/rust-sdk](https://github.com/conversionapi/rust-sdk) |
| Kotlin | `com.enconvert:enconvert-kotlin` | Dependency über Maven Central | [conversionapi/kotlin-sdk](https://github.com/conversionapi/kotlin-sdk) |
| Swift | `Enconvert` | Swift Package Manager | [conversionapi/swift-sdk](https://github.com/conversionapi/swift-sdk) |

Alle zehn stehen unter der MIT-Lizenz.

---

## Wähle deine Sprache

- **[Node.js / TypeScript](/de/docs/guides/integrations/sdks/nodejs.md)**: Node 18+, keine Laufzeit-Abhängigkeiten, duale ESM- und CJS-Builds, vollständige Typdefinitionen.
- **[Python](/de/docs/guides/integrations/sdks/python.md)**: Python 3.9+, typisierte Dataclasses, `py.typed` für mypy enthalten.
- **[Go](/de/docs/guides/integrations/sdks/go.md)**: Go 1.21+, nur Standardbibliothek, keine Fremdabhängigkeiten.
- **[Java](/de/docs/guides/integrations/sdks/java.md)**: Java 17+, eine einzige Abhängigkeit (Gson), HTTP über den `HttpClient` des JDK.
- **[PHP](/de/docs/guides/integrations/sdks/php.md)**: PHP 8.1+, Installation über Composer, PSR-4-Autoloading.
- **[Ruby](/de/docs/guides/integrations/sdks/ruby.md)**: Ruby 3.0+, ausgeliefert als `enconvert`-Gem.
- **[C# / .NET](/de/docs/guides/integrations/sdks/csharp.md)**: .NET 8+, durchgehend asynchrone Methoden, Nullable Reference Types aktiviert.
- **[Rust](/de/docs/guides/integrations/sdks/rust.md)**: ein blockierender Client auf Basis von `reqwest`, also ohne Async-Runtime nutzbar.
- **[Kotlin](/de/docs/guides/integrations/sdks/kotlin.md)**: JDK 17+, idiomatische Data-Klassen und `kotlinx.serialization`.
- **[Swift](/de/docs/guides/integrations/sdks/swift.md)**: macOS 12+, iOS 15+, tvOS 15+ und watchOS 8+, mit async/await-Methoden.

Du schreibst gerade keinen Code? Die [CLI](/de/docs/guides/integrations/cli.md) deckt dieselbe API vom Terminal aus ab, der [MCP-Server](/de/docs/guides/integrations/mcp-setup.md) bindet sie in Claude, Cursor und Windsurf ein, und der [n8n-Node](/de/docs/guides/integrations/n8n.md) bringt sie in einen Workflow.

---

## Warum ein SDK verwenden?

Die REST-API direkt aufzurufen funktioniert, und die SDKs legen vier Dinge obendrauf:

- **Typsichere Optionen.** Editor-Autovervollständigung für jeden Parameter jedes Endpunkts. Ein Tippfehler in einem Feldnamen schlägt schon zur Compile- oder Importzeit fehl, statt als `422` zurückzukommen.
- **Automatische Timeout-Recovery.** Aufwendige URL-zu-PDF-Renderings und große Dokumente überdauern manchmal den Reverse-Proxy-Timeout, obwohl die Konvertierung auf dem Server gelingt. Die SDKs erzeugen eine clientseitige `job_id`, senden sie mit der Anfrage und fallen still auf Polling von `GET /v1/convert/status/{job_id}` zurück, falls der ursprüngliche Aufruf 5xx liefert. Du schreibst dafür keine Zeile Code.
- **Streaming-Downloads.** Zeigt eine Methode auf einen lokalen Pfad, streamt das SDK die Antwort mit Backpressure direkt auf die Festplatte. Der Speicherverbrauch bleibt konstant, egal wie groß die Ausgabe ist.
- **Konsistente Fehler.** Eine kleine Exception-Hierarchie erlaubt das Abfangen nach Klasse, statt Statuscodes von Hand zu parsen.

---

## Die beiden Oberflächen

Jedes SDK teilt seine Methoden auf dieselbe Weise auf.

| Oberfläche | Was sie leistet | REST-Referenz |
|---------|--------------|----------------|
| Konvertierung | Dokumente, Bilder, Datenformate, URLs und ganze Websites in andere Formate umwandeln | [Endpunkt-Übersicht](/de/docs/endpoints.md) |
| Web-Intelligenz (V2) | Live-Webseiten wahrnehmen, ermitteln, nachschlagen, destillieren, ingestieren und überwachen | [V1 und V2](/de/docs/concepts/v1-and-v2.md) |

Jedes V2-Rendering trägt außerdem einen `render_quality`-Wert zwischen 0.0 und 1.0. Eine blockierte Seite, ein Bot-Challenge-Interstitial oder eine leere Single-Page-App-Hülle kommt mit niedrigem Wert und Warnungen markiert zurück, statt still als echter Inhalt durchzugehen. So gelangt ein schlechter Lesevorgang nie unbemerkt in den Kontext eines Agenten.

---

## Einen API-Schlüssel erhalten

Jedes SDK benötigt einen privaten API-Schlüssel (`sk_...`). Erzeuge einen im [Dashboard](/de/dashboard) und übergib ihn an den Konstruktor, indem du ihn aus einer Umgebungsvariable oder deinem Secret-Manager liest. Hardcode einen privaten Schlüssel niemals und liefere ihn niemals in clientseitigem Code aus. Browser-Code sollte stattdessen einen öffentlichen Schlüssel (`pk_`) mit einem JWT verwenden, wie unter [Öffentliche Schlüssel und JWT](/de/docs/authentication.md#public-keys-and-jwt) beschrieben.

---

## Häufig gestellte Fragen

### Für welche Sprachen gibt es ein offizielles SDK zur Dateikonvertierung?

Für zehn: Node.js und TypeScript, Python, Go, Java, PHP, Ruby, C# und .NET, Rust, Kotlin sowie Swift. Alle zehn sind offiziell, MIT-lizenziert und folgen derselben REST-API. Ein Feature, das in der API landet, ist damit aus jedem von ihnen erreichbar.

### Warum ein SDK verwenden, statt die REST-API zur Dateikonvertierung direkt aufzurufen?

Die SDKs bieten typsichere Optionen mit Editor-Autovervollständigung, automatische Timeout-Recovery für lange Konvertierungen, Streaming-Downloads direkt auf die Festplatte und eine konsistente Fehlerhierarchie, sodass du nach Exception-Klasse abfangen kannst, ohne Statuscodes zu parsen.

### Wie behandelt das SDK Konvertierungen, die den Reverse-Proxy-Timeout überschreiten?

Das SDK erzeugt eine clientseitige `job_id`, sendet sie mit der Anfrage und fällt auf Polling von `GET /v1/convert/status/{job_id}` zurück, falls die ursprüngliche Anfrage 5xx liefert. Es gibt das Ergebnis zurück, sobald der Job als erfolgreich verbucht ist, und wirft einen Fehler, sobald er als fehlgeschlagen verbucht ist.

### Kann ich SDK-Aufrufe mit rohen HTTP-Anfragen mischen?

Ja. Jedes SDK spricht dieselben öffentlichen REST-Endpunkte an, die auf dieser Website dokumentiert sind. SDK-Aufrufe und selbst gebaute HTTP-Aufrufe können sich also ein Projekt und einen Schlüssel teilen.

### Decken die SDKs die V2-Endpunkte für Web-Intelligenz ab?

Ja. Alle zehn stellen einen V2-Namensraum bereit, der perceive, discover, lookup, distill, ingest und watch abdeckt, zusätzlich zu den Methoden für die Dateikonvertierung. Was jeder Endpunkt leistet, steht in der [V1 und V2](/de/docs/concepts/v1-and-v2.md).

### Welchen API-Schlüssel benötigt ein SDK?

Einen privaten API-Schlüssel (`sk_...`), erzeugt im Dashboard und an den Konstruktor übergeben. Lies ihn aus einer Umgebungsvariable, statt ihn hart zu verdrahten, und bündle ihn niemals in clientseitigen Code. Browser-Code sollte stattdessen einen öffentlichen Schlüssel mit einem JWT verwenden.

### Gibt es ein SDK für meine Sprache, wenn sie nicht auf der Liste steht?

Noch nicht, und du brauchst auch keines. Die API ist schlichtes REST mit JSON- und Multipart-Bodies, also funktioniert jeder HTTP-Client. Starte bei der [Endpunkt-Übersicht](/de/docs/endpoints.md) und beim [Authentifizierungs-Leitfaden](/de/docs/authentication.md).
