Referencia de la API
Conversión de imágenes
Vectoriza una imagen a SVG o exporta a PNG, PDF, TIFF y PPTX, incluidos los diagramas de flujo.
Cuerpo JSON#
POST /images/conversions. Ámbito requerido: figures:generate.
| Campo | Tipo | Obligatorio | Valor predeterminado | Reglas |
|---|---|---|---|---|
| image | string | sí | — | Un file_id de PNG o JPEG o el SVG de un diagrama de flujo, hasta 20 MB; svg también acepta WebP |
| format | string | sí | — | svg, png, pdf, tiff o pptx |
| vector_mode | string | no | editable_text | Solo para svg: editable_text o full_vector |
| dpi | integer | no | 300 | No para svg: 300, 600 o 1000 |
| width | integer | no | 2048 | Solo para fuentes SVG de diagramas de flujo: lado largo en píxeles, 256–4096, máximo 8,388,608 píxeles en total |
Vectorización SVG#
- Cuesta 150 créditos y requiere un plan de pago; usa el mismo vectorizador que la edición en el lienzo del sitio web. La fuente es una imagen PNG, JPEG o WebP.
editable_textconserva el texto como texto SVG editable;full_vectortraza todos los elementos, incluido el texto, como rutas.- Se ejecuta como una tarea. Los créditos solo se reservan cuando se acepta la vectorización y los
creditsde la tarea se leen del registro contable. Una vectorización fallida devuelve sus créditos y respondeTASK_FAILEDpara esa clave. - Convertir una imagen ya vectorizada devuelve el SVG anterior sin coste para esta tarea.
- Si el vectorizador no está disponible temporalmente antes de iniciar la tarea, la respuesta es
503 SERVICE_UNAVAILABLEconRetry-After: vuelve a intentarlo con la misma clave.
PNG, PDF, TIFF y PPTX#
- Gratis, hasta 200 conversiones por cuenta y día. Se completan al instante: la respuesta es una tarea
succeeded. - Una conversión solo cuenta para el cupo diario después de que su entrada supere todas las comprobaciones y una vez por Idempotency-Key: repetir la misma clave no cuenta de nuevo. Al superar el cupo, la respuesta es
429 RATE_LIMITEDcondetails.reason = DAILY_CONVERSION_LIMITyRetry-Afterhasta que se reinicie la ventana diaria. - La fuente es una imagen PNG o JPEG o el SVG de un diagrama de flujo; no se acepta WebP:
UNSUPPORTED_SOURCE_FORMAT. - Un archivo cuyo resultado codificado superaría 24 MiB se rechaza con
400 INVALID_REQUESTyOUTPUT_TOO_LARGE; convierte una imagen más pequeña. dpise escribe en el archivo y determina el tamaño físico de página de PDF y PPTX; no se remuestrean los píxeles. Para obtener más píxeles, amplía primero.- PNG y TIFF requieren una fuente PNG; PDF y PPTX también aceptan JPEG. TIFF usa compresión Deflate sin pérdidas.
- El PPTX contiene una diapositiva con la imagen, no formas editables.
Exportación de diagramas de flujo#
El SVG de un diagrama de flujo se puede convertir a PNG, PDF, TIFF o PPTX. El servidor lo renderiza con fuentes Arial y Noto y width píxeles en el lado largo: 2048 por defecto, máximo 4096 y 8,388,608 píxeles en total; un gráfico cuadrado puede tener como máximo 2896 px. Una solicitud mayor devuelve 400 INVALID_REQUEST con RENDER_TOO_LARGE. El texto que las fuentes no pueden representar se rechaza con 400 INVALID_REQUEST y SVG_NOT_RENDERABLE, en lugar de dibujarse como cuadros vacíos. Si falla el renderizador, la respuesta es 503 SERVICE_UNAVAILABLE con SVG_RENDERER_UNAVAILABLE y Retry-After: reintenta con la misma clave. No se pueden usar otros archivos SVG como entrada.
cURL#
curl -X POST https://scifig.ai/api/v1/images/conversions \
-H "Authorization: Bearer $SCIFIG_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Prefer: wait=25" \
-H "Content-Type: application/json" \
-d '{
"image": "<file_id>",
"format": "pdf",
"dpi": 600
}'JavaScript#
const response = await fetch('https://scifig.ai/api/v1/images/conversions', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SCIFIG_API_KEY}`,
'Idempotency-Key': crypto.randomUUID(),
Prefer: 'wait=25',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"image": "<file_id>",
"format": "pdf",
"dpi": 600
}),
});
const result = await response.json();
console.log(response.status, result);Python#
import os
import uuid
import requests
headers = {
"Authorization": f"Bearer {os.environ['SCIFIG_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4()),
"Prefer": "wait=25",
}
response = requests.post(
"https://scifig.ai/api/v1/images/conversions",
headers=headers,
json={
"image": "<file_id>",
"format": "pdf",
"dpi": 600
},
timeout=60,
)
print(response.status_code, response.json())