API de Conversión de Formatos de Datos#
Los endpoints de Formatos de Datos convierten archivos de datos estructurados entre JSON, XML, YAML, CSV y TOML, además de renderizar Markdown a HTML completamente estilizado. Cada conversión es una única solicitud POST con una carga de archivo multipart/form-data: envías tu archivo y recibes el resultado convertido como bytes en bruto, o solicitas en su lugar una URL de descarga prefirmada. Los once endpoints siguen la misma forma de solicitud, autenticación y modelo de errores, por lo que integrar un segundo formato después del primero toma minutos.
Conversiones admitidas#
| Conversión | Endpoint | Descripción |
|---|---|---|
| JSON a XML | POST /v1/convert/json-to-xml |
Convierte JSON a XML con los objetos como hijos de <root>, los arrays envueltos en elementos <item> y los escalares en <value>. |
| XML a JSON | POST /v1/convert/xml-to-json |
Convierte XML a JSON, asignando los atributos a claves con prefijo @, el contenido de texto a #text y los elementos hermanos repetidos a arrays. |
| JSON a YAML | POST /v1/convert/json-to-yaml |
Asignación directa a YAML en estilo de bloque, legible por humanos, preservando el orden de las claves y el unicode. |
| YAML a JSON | POST /v1/convert/yaml-to-json |
Analiza de forma segura archivos .yaml o .yml (sin ejecución de código arbitrario) en JSON formateado (pretty-printed) con sangría de 2 espacios. |
| JSON a CSV | POST /v1/convert/json-to-csv |
Convierte un array JSON de objetos a CSV delimitado por comas, con encabezados tomados de las claves del primer objeto. |
| CSV a JSON | POST /v1/convert/csv-to-json |
Convierte CSV a un array JSON donde la fila de encabezados se convierte en las claves y todos los valores permanecen como strings (sin inferencia de tipos). |
| JSON a TOML | POST /v1/convert/json-to-toml |
Convierte JSON a TOML, envolviendo los arrays bajo una clave items y los escalares bajo value; los valores null se rechazan con un 400. |
| TOML a JSON | POST /v1/convert/toml-to-json |
Convierte tablas y arrays de TOML a JSON formateado (pretty-printed), serializando los valores de fecha y hora como strings ISO-8601. |
| CSV a XML | POST /v1/convert/csv-to-xml |
Convierte CSV a XML con los encabezados de columna como nombres de etiqueta de elemento y cada fila como un <item> dentro de <root>. |
| XML a CSV | POST /v1/convert/xml-to-csv |
Aplana XML tabular (elementos hermanos repetidos con campos consistentes) en filas CSV delimitadas por comas. |
| Markdown a HTML | POST /v1/convert/markdown-to-html |
Renderiza archivos .md o .markdown en una página HTML completa y autocontenida, con CSS incrustado, tablas, bloques de código, soporte de tabla de contenidos (TOC) y modo oscuro. |
Convenciones compartidas#
- Autenticación: todos los endpoints aceptan una clave de API privada mediante la cabecera
X-API-Keyo un token JWTAuthorization: Bearerobtenido a partir de una clave pública. Consulta Autenticación. - Forma de la solicitud: todas las conversiones son POSTs síncronos
multipart/form-datacon un campofileobligatorio, además de los parámetros opcionalesoutput_filenameydirect_download. Consulta Trabajos síncronos y asíncronos. - Respuestas: por defecto (
direct_download=true) el archivo convertido se devuelve como bytes en bruto; condirect_download=falserecibes metadatos JSON que contienenpresigned_url,object_key,filename,file_sizeyconversion_time_seconds. - Requisitos de entrada: todas las entradas deben estar codificadas en UTF-8 y coincidir con la extensión de archivo esperada; el tamaño máximo de archivo depende del plan (plan Founding: 5 MB).
- Errores: los archivos inválidos o las conversiones fallidas devuelven
400, las credenciales faltantes o inválidas401, los límites de plan excedidos402, y los archivos demasiado grandes413. Consulta Códigos de Error.
Preguntas frecuentes#
¿Cómo autentico las solicitudes a los endpoints de conversión de formatos de datos?#
Los once endpoints aceptan una clave de API privada en la cabecera X-API-Key o un token JWT Authorization: Bearer obtenido a partir de una clave pública. Las mismas credenciales funcionan en todas las conversiones. Consulta Autenticación para más detalles.
¿Puedo obtener una URL de descarga en lugar de los bytes del archivo convertido?#
Sí. Todos los endpoints devuelven el archivo convertido como bytes en bruto por defecto; establece direct_download=false para recibir en su lugar metadatos JSON con presigned_url, object_key, filename, file_size y conversion_time_seconds.
¿Qué límites de tamaño de archivo y de entrada se aplican a las conversiones de formatos de datos?#
El tamaño máximo de archivo depende del plan (plan Founding: 5 MB), y los archivos que superan el límite de tu plan devuelven 413 Payload Too Large. Todas las entradas deben estar codificadas en UTF-8, y los recuentos mensuales de conversión también dependen del plan: superarlos devuelve 402 Payment Required.