Saltar al contenido principal
TransConvert

API de TransConvert

Convierte imágenes y documentos mediante programación con un único endpoint HTTP sencillo.

image API de conversión de imágenes description API de conversión de documentos picture_as_pdf API de conversión de PDF movie API de conversión de vídeo music_note API de conversión de audio compress API de compresión de imágenes compress API de compresión de PDF
rocket_launch

Guía rápida

De cero a tu primer archivo convertido en tres pasos.

1

Consigue tu clave de API

Regístrate (o mejora una cuenta existente) a Basic, Lite, Pro o Team y luego genera una clave desde la página de tu cuenta; puedes volver a consultarla en cualquier momento.

2

Envía una solicitud

Envía tu archivo mediante POST al endpoint que se indica a continuación como multipart/form-data, con tu clave en la cabecera Authorization y category + target configurados.

3

Recupera tu archivo

Una respuesta 200 son los bytes en bruto del archivo convertido: guarda el cuerpo de la respuesta directamente. Cualquier otra cosa es un error JSON que explica qué salió mal.

key

Autenticación

Cada solicitud necesita una clave de API, enviada como token Bearer en la cabecera Authorization.

Header
Authorization: Bearer tc_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Disponible en los planes Basic, Lite, Pro y Team. Genera una clave desde tu cuenta →

Prueba tu clave

Una forma rápida de confirmar que una clave funciona antes de escribir código de integración real; por sí sola esto no convertirá nada (no hay archivo adjunto), pero un 400 no_file en lugar de un 401 confirma que la clave en sí es válida.

curl -X POST -H "Authorization: Bearer tc_live_your_key_here" -F "category=image" https://transconvert.com/api/v1/convert.php
dns

El endpoint

Un único endpoint gestiona todas las conversiones. Envía una solicitud POST multipart/form-data con tu archivo y los campos que se indican a continuación.

POST https://transconvert.com/api/v1/convert.php

Parámetros

Field Description
AuthorizationObligatorio. "Bearer tc_live_...".
categoryObligatorio. "image" o "document"; para comprimir en lugar de convertir, consulta Comprimir más abajo.
targetObligatorio. El código del formato de salida, p. ej. "PNG", "DOCX"; consulta Formatos compatibles más abajo.
fileObligatorio. El archivo que se va a convertir (subida multipart).
pdf_modeOpcional, solo para la categoría image. "pages" (predeterminado, rasteriza cada página) o "extract" (extrae tal cual las imágenes incrustadas); solo es relevante cuando el origen es un PDF.
pdf_pagesOpcional, solo para la categoría image. "all" (predeterminado) o "first".
pdf_qualityOpcional, solo para la categoría image. "normal" (predeterminado, 150 DPI) o "high" (300 DPI).

Conversiones habituales

Una referencia rápida para los pares más populares: el mismo endpoint los gestiona todos, solo cambia la combinación de category/target.

Source → target category target
PNG → JPGimageJPG
JPG → PNGimagePNG
HEIC → JPGimageJPG
WEBP → PNGimagePNG
JPG → PDFimagePDF
PDF → JPGimageJPG
DOCX → PDFdocumentPDF
PDF → DOCXdocumentDOCX
PPTX → PDFdocumentPDF
XLSX → PDFdocumentPDF

Respuesta

En caso de éxito (200): los bytes en bruto del archivo convertido, con las cabeceras Content-Type y Content-Disposition configuradas para él. En caso de error: un cuerpo JSON con la forma {"error": {"code": "...", "message": "..."}} y un código de estado HTTP correspondiente; consulta Errores más abajo.

Header Value
Content-TypeEl tipo MIME real del archivo convertido (p. ej. image/png, application/pdf).
Content-Dispositionattachment; filename="..." — un nombre de archivo sugerido, igual que en cualquier descarga.
Content-LengthTamaño del cuerpo de la respuesta en bytes.
compress

Comprimir

Reduce el tamaño de un archivo sin cambiar su formato: el mismo formato de entrada y salida. Un par de categorías independiente de la conversión, image-compress y document-compress, cada una con sus propias opciones a continuación.

image-compress

Mismo formato de entrada y salida (JPG/PNG/WEBP/GIF); target_percent indica el tamaño al que debe aproximarse el resultado respecto al original, no un ajuste de calidad fijo.

Field Description
categoryDebe ser "image-compress".
target_percentOpcional, 1-100 (valor predeterminado 60). Tamaño objetivo como porcentaje aproximado del original: cuanto menor sea el número, mayor será la compresión.
fileObligatorio. JPG, PNG, WEBP o GIF.
cURL
curl -X POST \
  https://transconvert.com/api/v1/convert.php \
  -H "Authorization: Bearer tc_live_your_key_here" \
  -F "category=image-compress" \
  -F "target_percent=50" \
  -F "file=@photo.jpg" \
  -o compressed.jpg

document-compress

PDF de entrada, PDF de salida, mediante la recompresión propia de Ghostscript: nunca devuelve un archivo más grande que el subido (si la recompresión no ayuda, se recurre al original).

Field Description
categoryDebe ser "document-compress".
levelOpcional: "low", "medium" (predeterminado), "high" o "none". Una compresión mayor sacrifica más calidad visual, sobre todo en imágenes o escaneos incrustados.
grayscaleOpcional. "1" para convertir también a escala de grises; omítelo para mantener el color completo.
fileObligatorio. Un PDF que no esté abierto ni protegido con contraseña (si lo está, usa primero Desbloquear PDF en el sitio web).
cURL
curl -X POST \
  https://transconvert.com/api/v1/convert.php \
  -H "Authorization: Bearer tc_live_your_key_here" \
  -F "category=document-compress" \
  -F "level=high" \
  -F "file=@report.pdf" \
  -o compressed.pdf
Header Value
X-Original-SizeEl tamaño del archivo subido en bytes, antes de la compresión.
X-Saved-PercentAproximadamente cuánto más pequeño es el resultado respecto al original, como porcentaje entero (puede ser 0).
movie

Vídeo y audio (asíncrono)

Las conversiones de vídeo y audio pueden tardar minutos, demasiado tiempo para mantener abierta una única solicitud síncrona — estas usan un flujo de envío y consulta en lugar del endpoint anterior. Envía un archivo, recibe enseguida un job_id y luego consulta su estado hasta que termine.

Enviar un trabajo

Misma forma de POST multipart que el endpoint principal, en una URL distinta.

POST https://transconvert.com/api/v1/convert-async.php
Field Description
AuthorizationObligatorio. "Bearer tc_live_...".
category«video» o «audio».
targetObligatorio — p. ej. «MP4», «MOV», «MP3», «WAV».
fileObligatorio. El archivo que se va a convertir (subida multipart).
webhook_urlOpcional. Una URL http(s) a la que se enviará (POST) el resultado del trabajo al finalizar, en lugar de solo consultar job-status.php. Debe resolver a una dirección pública.
cURL
curl -X POST \
  https://transconvert.com/api/v1/convert-async.php \
  -H "Authorization: Bearer tc_live_your_key_here" \
  -F "category=video" \
  -F "target=MP4" \
  -F "file=@clip.mov"

Respuesta (202 Accepted)

{ "job_id": "job_242e1555d78d166807aa56502f15d118", "status": "queued" }

Consultar el estado

Consulta esto cada pocos segundos con el job_id que recibiste. «status» es uno de queued, processing, completed o failed.

GET https://transconvert.com/api/v1/job-status.php?job_id=job_...
{
  "job_id": "job_242e1555d78d166807aa56502f15d118",
  "status": "completed",
  "category": "video",
  "target_format": "MP4",
  "created_at": "2026-08-26 19:17:47",
  "download_url": "/api/v1/job-status.php?job_id=job_...&download=1",
  "filename": "clip.mp4"
}

Webhooks (opcional)

Si indicó un webhook_url al enviar la solicitud, enviaremos ese mismo cuerpo JSON una vez que el trabajo termine, con éxito o error, reintentando varias veces si su endpoint no responde. job-status.php sigue funcionando como respaldo de todos modos.

POST your webhook_url
{
  "job_id": "job_242e1555d78d166807aa56502f15d118",
  "status": "completed",
  "category": "video",
  "target_format": "MP4",
  "created_at": "2026-08-26 19:17:47",
  "download_url": "https://transconvert.com/api/v1/job-status.php?job_id=job_...&download=1",
  "filename": "clip.mp4"
}

Descargar el resultado

Cuando el estado sea «completed», la respuesta incluye una download_url — la misma URL de estado con &download=1 añadido. Solicitarla transmite entonces los bytes en bruto del archivo convertido, con las mismas cabeceras que cualquier otro endpoint de esta página. El resultado se elimina en el momento en que se descarga, o automáticamente tras un breve período de conservación si nunca se descarga.

scheduleLos resultados de los trabajos se eliminan inmediatamente después de la descarga, o automáticamente tras un breve período de conservación si nunca se descargan — descárgalos cuanto antes.

terminal

Ejemplos

La misma solicitud en cuatro lenguajes: elige el que mejor encaje con tu stack. Cada uno convierte un photo.jpg local a PNG y guarda el resultado.

TransConvert
curl -X POST \
  https://transconvert.com/api/v1/convert.php \
  -H "Authorization: Bearer tc_live_your_key_here" \
  -F "category=image" \
  -F "target=PNG" \
  -F "file=@photo.jpg" \
  -o converted.png
error

Errores

Cada error devuelve un JSON con un "code" sobre el que tu código puede ramificarse, además de un "message" legible por humanos. Algunos errores incluyen campos adicionales (quota_exceeded incluye, por ejemplo, "limit" y "used").

429 Too Many Requests
{
  "error": {
    "code": "quota_exceeded",
    "message": "Monthly API allowance of 5000 conversion-minutes reached.",
    "limit": 5000,
    "used": 5000
  }
}
Status & code When it happens
401 missing_keyNo se envió ninguna cabecera Authorization.
401 invalid_keyLa clave no existe, o ha sido revocada.
403 account_suspendedLa cuenta propietaria de esta clave está suspendida.
403 plan_requiredLa cuenta está en el plan Free: el acceso a la API requiere Basic, Lite, Pro o Team.
400 invalid_category"category" no era "image" ni "document".
400 missing_target"target" estaba vacío.
400 no_fileNo se envió ningún archivo, o la subida falló; el campo debe llamarse "file".
413 file_too_largeEl archivo supera el tamaño máximo de subida permitido por tu plan.
429 quota_exceededSe agotó la asignación mensual de minutos de conversión del plan. Se restablece al inicio del siguiente mes natural.
429 concurrency_limitYa hay demasiadas conversiones en curso a la vez para esta cuenta (se comparte con el sitio web); espera a que termine una y vuelve a intentarlo.
400/415/422/500/503 conversion_failedEl propio archivo no se pudo convertir; "message" explica el motivo. El código de estado varía según la causa: 400/415/422 significan que el archivo o el destino no funcionarán por más intentos que hagas; 500/503 indican un problema del lado del servidor, y en concreto 503 merece un breve reintento.
405 method_not_allowedMétodo HTTP incorrecto: este endpoint solo acepta POST.
400 invalid_target«target» no es un formato de salida compatible para esa categoría.
404 job_not_foundNo existe ningún trabajo con ese id para esta cuenta (también se devuelve para el job_id de otra cuenta — su existencia nunca se revela).
410 result_goneEl trabajo se completó, pero su resultado ya se ha eliminado (los resultados se eliminan inmediatamente después de la descarga, o automáticamente tras un breve período de conservación).
500 storage_failedEl servidor no pudo guardar el archivo subido para procesarlo en segundo plano. Puedes reintentarlo sin problema.

Gestión de errores y reintentos

Ramifica tu lógica según el campo JSON "code", no según el texto de "message" (la redacción puede cambiar con el tiempo, el código no). concurrency_limit merece un breve reintento tras unos segundos (se libera en cuanto termina una de tus conversiones en curso); quota_exceeded no se resolverá por sí solo hasta el mes siguiente, así que no lo reintentes en un bucle. conversion_failed es el único código en el que el estado HTTP sigue importando: un 503 es un problema transitorio del servidor que merece un breve reintento, mientras que 400/415/422/500 significan que esa combinación exacta de archivo/destino no tendrá éxito por más veces que la reenvíes. Comprobar el tamaño de un archivo en el cliente antes de subirlo evita desperdiciar una solicitud en un file_too_large garantizado.

speed

Planes y límites

La API comparte sus límites con el mismo plan que ya usas en el sitio web; no hay nada independiente que configurar.

bolt

Basic

bolt2000 minutos de conversión / mes

upload_fileArchivos de hasta 2 GB

sync_alt50 solicitud(es) a la vez

speed30 solicitudes/minuto

bolt

Lite

bolt3000 minutos de conversión / mes

upload_fileArchivos de hasta 4 GB

sync_alt100 solicitud(es) a la vez

speed60 solicitudes/minuto

Más popular
workspace_premium

Pro

bolt5000 minutos de conversión / mes

upload_fileArchivos de hasta 10 GB

sync_altSolicitudes ilimitadas a la vez

speed120 solicitudes/minuto

group

Team

bolt10000 minutos de conversión / mes

upload_fileArchivos de hasta 20 GB

sync_altSolicitudes ilimitadas a la vez

speed240 solicitudes/minuto

tollSe comparte con el fondo mensual de créditos del equipo, si utiliza uno

Cuando se aplica un límite por minuto, cada respuesta incluye las cabeceras X-RateLimit-Limit y X-RateLimit-Remaining; una respuesta 429 también incluye Retry-After (en segundos) — úselas para reducir la velocidad antes de alcanzar el límite, en lugar de reaccionar solo tras un 429.

layers

Formatos compatibles

El mismo motor de conversión que usa el sitio web; nada es exclusivo de la API ni del sitio web.

image

category: image

Aceptados como origen:

JPG, PNG, GIF, WEBP, BMP, AVIF, PDF, PSD, TIFF, EPS, HEIC

Disponibles como destino:

JPG, PNG, GIF, WEBP, BMP, AVIF, PDF, ICO, PSD, TIFF, EPS

description

category: document

Aceptados como origen:

PDF, DOCX, DOC, PPTX, PPT, XLSX, XLS, RTF, ODT, ODP, ODS, HTML

Disponibles como destino:

PDF, DOCX, DOC, PPTX, PPT, XLSX, XLS, RTF, ODT, ODP, ODS

compress

category: image-compress

Origen y destino (mismo formato de entrada y salida):

JPG, PNG, WEBP, GIF

compress

category: document-compress

Origen y destino (mismo formato de entrada y salida):

PDF

movie

category: video (async)

Origen y destino (mismo formato de entrada y salida):

MP4, MOV, AVI, MKV, WEBM

music_note

category: audio (async)

Origen y destino (mismo formato de entrada y salida):

MP3, WAV, OGG, AAC, FLAC, M4A, WMA, OPUS, AIFF, AMR, AU, CAF, AC3, DTS, GSM, IRCAM, MP2, TTA, VOC, W64, WV, SPX, RM

infoEl vídeo y el audio (tanto la conversión como la compresión) están disponibles solo en el sitio web por ahora: una llamada HTTP síncrona no encaja bien con una tarea que puede tardar varios minutos.

help

Preguntas frecuentes

¿La API admite la conversión de vídeo o audio?

Todavía no: esas conversiones pueden tardar varios minutos, lo que no encaja bien con una única solicitud HTTP síncrona. Están disponibles en el sitio web hoy mismo; el soporte en la API podría llegar si alguna vez existe una versión asíncrona basada en tareas.

¿Qué le pasa a mi clave si bajo al plan Free?

El acceso a la API requiere Basic, Lite, Pro o Team. Si la cuenta pasa a Free (por cancelación, o porque una suscripción caduca), las claves existentes dejan de funcionar de inmediato. Vuelven a funcionar automáticamente si la cuenta regresa a un plan de pago; no es necesario generar una nueva.

¿Cuándo se restablece mi asignación mensual?

Al inicio de cada mes natural, no en tu fecha de facturación.

¿Existe un entorno de pruebas o modo sandbox?

Por ahora no: cada solicitud cuenta contra tu asignación mensual real. Usa archivos pequeños mientras integras la API para no agotarla.

¿Puedo ejecutar conversiones en paralelo?

Hasta el límite de concurrencia de tu plan (consulta Planes y límites más arriba); se comparte con cualquier conversión que estés ejecutando al mismo tiempo en el sitio web, no es una asignación exclusiva de la API.

¿La compresión garantiza un archivo más pequeño?

Para document-compress, sí: nunca devuelve un PDF más grande que el subido; si la recompresión de Ghostscript no ayudó, recibes el original sin cambios (X-Saved-Percent mostrará 0). Para image-compress, target_percent es un objetivo al que apunta el codificador, no una garantía estricta: un origen ya muy comprimido puede no reducirse mucho más.

¿Listo para empezar?

Genera una clave y haz tu primera solicitud en menos de un minuto.

Consigue tu clave de API