---
seo_title: SDK di conversione file per 10 linguaggi | EnConvert
meta_desc: SDK ufficiali EnConvert per Node.js, Python, Go, Java, PHP, Ruby, C#, Rust, Kotlin e Swift. Client tipizzati per la conversione file e la web intelligence V2.
keywords: sdk conversione file, libreria client api, sdk enconvert, sdk conversione file python, api conversione file node js, client api pdf go, libreria java conversione documenti, sdk php convertitore file, gem ruby conversione file, sdk url in pdf, sdk web scraping, libreria client conversione documenti
---

# SDK di conversione file

Librerie client ufficiali per l'API EnConvert, pubblicate per dieci linguaggi: Node.js, Python, Go, Java, PHP, Ruby, C#, Rust, Kotlin e Swift. Ogni SDK copre le stesse due superfici dietro un'unica chiave API. La superficie di conversione trasforma file e URL in altri formati, mentre la superficie di web intelligence V2 percepisce, scopre, cerca, distilla, ingerisce e sorveglia pagine web live. Ogni client espone quegli endpoint come metodi tipizzati, gestisce l'autenticazione e restituisce URL di download pre-firmati.

<div class="alert alert-info">
<strong>Stesso formato wire ovunque.</strong> Ogni SDK chiama gli stessi endpoint REST pubblici documentati in questo sito, quindi puoi combinare chiamate SDK e chiamate HTTP grezze sullo stesso progetto e con la stessa chiave.
</div>

---

## SDK disponibili

| Linguaggio | Pacchetto | Installazione | Sorgente |
|----------|---------|---------|--------|
| 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` | Dipendenza da 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` | Dipendenza da 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) |

Tutti e dieci sono rilasciati con licenza MIT.

---

## Scegli il tuo linguaggio

- **[Node.js / TypeScript](/it/docs/guides/integrations/sdks/nodejs.md)**: Node 18+, zero dipendenze runtime, build ESM e CJS duali, definizioni di tipo complete.
- **[Python](/it/docs/guides/integrations/sdks/python.md)**: Python 3.9+, dataclass tipizzate, marcatore `py.typed` incluso per mypy.
- **[Go](/it/docs/guides/integrations/sdks/go.md)**: Go 1.21+, solo libreria standard, nessuna dipendenza di terze parti.
- **[Java](/it/docs/guides/integrations/sdks/java.md)**: Java 17+, una sola dipendenza (Gson), HTTP tramite l'`HttpClient` del JDK.
- **[PHP](/it/docs/guides/integrations/sdks/php.md)**: PHP 8.1+, installato con Composer, autoload PSR-4.
- **[Ruby](/it/docs/guides/integrations/sdks/ruby.md)**: Ruby 3.0+, distribuito come gem `enconvert`.
- **[C# / .NET](/it/docs/guides/integrations/sdks/csharp.md)**: .NET 8+, metodi async ovunque, tipi riferimento nullable abilitati.
- **[Rust](/it/docs/guides/integrations/sdks/rust.md)**: un client bloccante costruito su `reqwest`, quindi non serve alcun runtime async.
- **[Kotlin](/it/docs/guides/integrations/sdks/kotlin.md)**: JDK 17+, data class idiomatiche e `kotlinx.serialization`.
- **[Swift](/it/docs/guides/integrations/sdks/swift.md)**: macOS 12+, iOS 15+, tvOS 15+ e watchOS 8+, con metodi async await.

Non stai scrivendo codice? La [CLI](/it/docs/guides/integrations/cli.md) copre la stessa API dal terminale, il [server MCP](/it/docs/guides/integrations/mcp-setup.md) la collega a Claude, Cursor e Windsurf, e il [nodo n8n](/it/docs/guides/integrations/n8n.md) la inserisce in un workflow.

---

## Perché usare un SDK?

Chiamare direttamente l'API REST funziona, e gli SDK aggiungono quattro cose in più:

- **Opzioni type-safe.** Autocompletamento dell'editor per ogni parametro di ogni endpoint, così un errore di battitura nel nome di un campo fallisce già in compilazione o all'import invece di tornare come un `422`.
- **Recupero automatico dei timeout.** I render URL-to-PDF pesanti e i documenti di grandi dimensioni a volte superano il timeout del reverse-proxy anche quando la conversione riesce sul server. Gli SDK generano un `job_id` lato client, lo inviano con la richiesta e ripiegano silenziosamente sul polling di `GET /v1/convert/status/{job_id}` se la chiamata originale restituisce 5xx. Tu non scrivi codice aggiuntivo.
- **Download in streaming.** Punta un metodo verso un percorso locale e l'SDK trasmette la risposta direttamente su disco con backpressure, così l'uso della memoria resta costante per quanto grande sia l'output.
- **Errori coerenti.** Una piccola gerarchia di eccezioni ti permette di intercettare per classe invece di analizzare i codici di stato a mano.

---

## Le due superfici

Ogni SDK divide i suoi metodi allo stesso modo.

| Superficie | Cosa fa | Riferimento REST |
|---------|--------------|----------------|
| Conversione | Documenti, immagini, formati dati, URL e interi siti web convertiti in altri formati | [Panoramica degli endpoint](/it/docs/endpoints.md) |
| Web intelligence (V2) | Perceive, discover, lookup, distill, ingest e watch su pagine web live | [V1 e V2](/it/docs/concepts/v1-and-v2.md) |

Ogni render V2 porta con sé anche un punteggio `render_quality` da 0.0 a 1.0. Una pagina bloccata, un interstiziale di sfida anti-bot o uno shell vuoto di una single-page app tornano segnalati con un punteggio basso e con degli avvisi invece di passare in silenzio come contenuto reale, così una lettura sbagliata non entra mai di nascosto nel contesto di un agente.

---

## Ottieni una chiave API

Ogni SDK ha bisogno di una chiave API privata (`sk_...`). Generane una dalla [dashboard](/it/dashboard) e passala al costruttore, leggendola da una variabile d'ambiente o dal tuo secret manager. Non scrivere mai una chiave privata hardcoded e non distribuirla nel codice lato client. Il codice del browser dovrebbe invece usare una chiave pubblica (`pk_`) con un JWT, come descritto in [Chiavi pubbliche e JWT](/it/docs/authentication.md#public-keys-and-jwt).

---

## Domande frequenti

### Quali linguaggi hanno un SDK ufficiale per la conversione di file?

Dieci: Node.js e TypeScript, Python, Go, Java, PHP, Ruby, C# e .NET, Rust, Kotlin e Swift. Tutti e dieci sono ufficiali, con licenza MIT, e seguono la stessa API REST, quindi una funzionalità che arriva nell'API è raggiungibile da ciascuno di essi.

### Perché usare un SDK invece di chiamare direttamente l'API REST di conversione file?

Gli SDK aggiungono opzioni type-safe con autocompletamento dell'editor, recupero automatico dei timeout per le conversioni lunghe, download in streaming direttamente su disco e una gerarchia di errori coerente, così puoi intercettare per classe di eccezione senza analizzare i codici di stato.

### Come gestisce l'SDK le conversioni che superano il timeout del reverse-proxy?

L'SDK genera un `job_id` lato client, lo invia con la richiesta e ripiega sul polling di `GET /v1/convert/status/{job_id}` se la richiesta originale restituisce 5xx. Restituisce il risultato appena il job risulta riuscito e solleva un errore se il job risulta fallito.

### Posso combinare chiamate SDK e richieste HTTP grezze?

Sì. Ogni SDK chiama gli stessi endpoint REST pubblici documentati in questo sito, quindi le chiamate SDK e quelle HTTP scritte a mano possono condividere un solo progetto e una sola chiave.

### Gli SDK coprono gli endpoint di web intelligence V2?

Sì. Tutti e dieci espongono un namespace V2 che copre perceive, discover, lookup, distill, ingest e watch, accanto ai metodi di conversione file. Consulta la [V1 e V2](/it/docs/concepts/v1-and-v2.md) per capire cosa fa ciascun endpoint.

### Che tipo di chiave API serve a un SDK?

Una chiave API privata (`sk_...`), generata dalla dashboard e passata al costruttore. Leggila da una variabile d'ambiente invece di scriverla hardcoded, e non includerla mai nel codice lato client. Il codice del browser dovrebbe invece usare una chiave pubblica con un JWT.

### Esiste un SDK per il mio linguaggio se non è nell'elenco?

Non ancora, e non ti serve. L'API è REST puro con body JSON e multipart, quindi qualsiasi client HTTP va bene. Parti dalla [panoramica degli endpoint](/it/docs/endpoints.md) e dalla [guida all'autenticazione](/it/docs/authentication.md).
