---
seo_title: SDKs de Conversión de Archivos para 10 Lenguajes | EnConvert
meta_desc: SDKs oficiales de EnConvert para Node.js, Python, Go, Java, PHP, Ruby, C#, Rust, Kotlin y Swift. Clientes tipados de conversión de archivos e inteligencia web V2.
keywords: sdk de conversión de archivos, librería cliente de api, sdk de enconvert, sdk de conversión de archivos en python, convertir archivos con api en node js, cliente go para api de pdf, librería java de conversión de documentos, sdk de php para convertir archivos, gema ruby de conversión, sdk para convertir url a pdf, sdk de web scraping, librería cliente de conversión de documentos
---

# SDKs de Conversión de Archivos

Librerías cliente oficiales para la API de EnConvert, publicadas para diez lenguajes: Node.js, Python, Go, Java, PHP, Ruby, C#, Rust, Kotlin y Swift. Todos los SDKs cubren las mismas dos superficies detrás de una única clave de API. La superficie de conversión transforma archivos y URLs en otros formatos, y la superficie de inteligencia web V2 percibe, descubre, busca, extrae, ingiere y monitoriza páginas web en vivo. Cada cliente expone esos endpoints como métodos tipados, gestiona la autenticación y devuelve URLs de descarga prefirmadas.

<div class="alert alert-info">
<strong>El mismo formato de transmisión en todas partes.</strong> Cada SDK llama a los mismos endpoints REST públicos documentados en este sitio, así que puedes combinar llamadas del SDK y llamadas HTTP en crudo contra el mismo proyecto y la misma clave.
</div>

---

## SDKs disponibles

| Lenguaje | Paquete | Instalación | Fuente |
|----------|---------|---------|--------|
| 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` | Dependencia de 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` | Dependencia de 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) |

Los diez se publican con licencia MIT.

---

## Elige tu lenguaje

- **[Node.js / TypeScript](/es/docs/guides/integrations/sdks/nodejs.md)**: Node 18+, sin dependencias en tiempo de ejecución, builds duales ESM y CJS, definiciones de tipos completas.
- **[Python](/es/docs/guides/integrations/sdks/python.md)**: Python 3.9+, dataclasses tipadas y `py.typed` incluido para mypy.
- **[Go](/es/docs/guides/integrations/sdks/go.md)**: Go 1.21+, solo librería estándar, sin dependencias de terceros.
- **[Java](/es/docs/guides/integrations/sdks/java.md)**: Java 17+, una sola dependencia (Gson) y HTTP a través del propio `HttpClient` del JDK.
- **[PHP](/es/docs/guides/integrations/sdks/php.md)**: PHP 8.1+, se instala con Composer y se autocarga con PSR-4.
- **[Ruby](/es/docs/guides/integrations/sdks/ruby.md)**: Ruby 3.0+, empaquetado como la gema `enconvert`.
- **[C# / .NET](/es/docs/guides/integrations/sdks/csharp.md)**: .NET 8+, métodos asíncronos en toda la superficie y tipos de referencia anulables activados.
- **[Rust](/es/docs/guides/integrations/sdks/rust.md)**: un cliente bloqueante construido sobre `reqwest`, así que no hace falta ningún runtime asíncrono.
- **[Kotlin](/es/docs/guides/integrations/sdks/kotlin.md)**: JDK 17+, data classes idiomáticas y `kotlinx.serialization`.
- **[Swift](/es/docs/guides/integrations/sdks/swift.md)**: macOS 12+, iOS 15+, tvOS 15+ y watchOS 8+, con métodos async await.

¿No vas a escribir código? La [CLI](/es/docs/guides/integrations/cli.md) cubre la misma API desde una terminal, el [servidor MCP](/es/docs/guides/integrations/mcp-setup.md) la conecta con Claude, Cursor y Windsurf, y el [nodo de n8n](/es/docs/guides/integrations/n8n.md) la incorpora a un flujo de trabajo.

---

## ¿Por qué usar un SDK?

Llamar directamente a la API REST funciona, y los SDKs añaden cuatro cosas por encima:

- **Opciones con tipos seguros.** Autocompletado en el editor para cada parámetro de cada endpoint, de modo que un error tipográfico en el nombre de un campo falla en tiempo de compilación o de importación en lugar de volver como un `422`.
- **Recuperación automática de tiempos de espera.** Los renderizados pesados de URL a PDF y los documentos grandes a veces sobreviven al tiempo de espera del proxy inverso aunque la conversión termine bien en el servidor. Los SDKs generan un `job_id` del lado del cliente, lo envían con la solicitud y recurren de forma silenciosa al sondeo de `GET /v1/convert/status/{job_id}` si la llamada original devuelve 5xx. No escribes código extra.
- **Descargas en streaming.** Apunta un método a una ruta local y el SDK transmite la respuesta directamente al disco con contrapresión, de modo que el uso de memoria se mantiene plano por muy grande que sea la salida.
- **Errores consistentes.** Una pequeña jerarquía de excepciones te deja capturar por clase en vez de analizar códigos de estado a mano.

---

## Las dos superficies

Todos los SDKs reparten sus métodos de la misma manera.

| Superficie | Qué hace | Referencia REST |
|---------|--------------|----------------|
| Conversión | Documentos, imágenes, formatos de datos, URLs y sitios web completos convertidos a otros formatos | [Resumen de endpoints](/es/docs/endpoints.md) |
| Inteligencia web (V2) | Percibir, descubrir, buscar, extraer, ingerir y monitorizar páginas web en vivo | [V1 y V2](/es/docs/concepts/v1-and-v2.md) |

Cada renderizado de V2 lleva además una puntuación `render_quality` de 0.0 a 1.0. Una página bloqueada, un intersticial de desafío antibot o el shell vacío de una aplicación de una sola página vuelven marcados con una puntuación baja y avisos, en lugar de pasar en silencio como contenido real, así que una lectura defectuosa nunca entra sin ruido en el contexto de un agente.

---

## Obtén una clave de API

Cada SDK necesita una clave de API privada (`sk_...`). Genera una desde el [panel de control](/es/dashboard) y pásasela al constructor, leyéndola de una variable de entorno o de tu gestor de secretos. Nunca incrustes una clave privada en el código ni la publiques en código del lado del cliente. El código de navegador debe usar una clave pública (`pk_`) con un JWT, tal como se describe en [Claves públicas y JWT](/es/docs/authentication.md#public-keys-and-jwt).

---

## Preguntas frecuentes

### ¿Qué lenguajes tienen un SDK oficial de conversión de archivos?

Diez: Node.js y TypeScript, Python, Go, Java, PHP, Ruby, C# y .NET, Rust, Kotlin y Swift. Los diez son oficiales, tienen licencia MIT y siguen la misma API REST, así que cualquier funcionalidad que llegue a la API es accesible desde cualquiera de ellos.

### ¿Por qué usar un SDK en lugar de llamar directamente a la API REST de conversión de archivos?

Los SDKs añaden opciones con tipos seguros y autocompletado en el editor, recuperación automática de tiempos de espera para conversiones largas, descargas en streaming directas a disco y una jerarquía de errores consistente que te permite capturar por clase de excepción sin analizar códigos de estado.

### ¿Cómo gestiona el SDK las conversiones que superan el tiempo de espera del proxy inverso?

El SDK genera un `job_id` del lado del cliente, lo envía con la solicitud y recurre al sondeo de `GET /v1/convert/status/{job_id}` si la solicitud original devuelve 5xx. Devuelve el resultado en cuanto el trabajo queda registrado como exitoso y lanza un error si queda registrado como fallido.

### ¿Puedo combinar llamadas del SDK con solicitudes HTTP en crudo?

Sí. Todos los SDKs llaman a los mismos endpoints REST públicos documentados en este sitio, así que las llamadas del SDK y las llamadas HTTP hechas a mano pueden compartir un mismo proyecto y una misma clave.

### ¿Los SDKs cubren los endpoints de inteligencia web V2?

Sí. Los diez exponen un espacio de nombres V2 que cubre perceive, discover, lookup, distill, ingest y watch, junto a los métodos de conversión de archivos. Consulta el [V1 y V2](/es/docs/concepts/v1-and-v2.md) para saber qué hace cada endpoint.

### ¿Qué clave de API necesita un SDK?

Una clave de API privada (`sk_...`), generada desde el panel de control y pasada al constructor. Léela de una variable de entorno en lugar de incrustarla en el código, y nunca la empaquetes en código del lado del cliente. El código de navegador debe usar una clave pública con un JWT.

### ¿Hay un SDK para mi lenguaje si no aparece en la lista?

Todavía no, y no lo necesitas. La API es REST puro con cuerpos JSON y multipart, así que sirve cualquier cliente HTTP. Empieza por el [resumen de endpoints](/es/docs/endpoints.md) y la [guía de autenticación](/es/docs/authentication.md).
