LogoLogoDocumentación de la API
LogoLogoDocumentación de la API
Página de inicio
Visión generalAutenticación e idempotenciaGeneración de imágenesEdición de imágenesConversión de imágenesGeneración de gráficosTrabajos y espera acotadaCréditosErroresLímites de peticiones y concurrenciaRegistro de cambios de la API
Documentación de la API

Generación de gráficos

Generar un gráfico listo para publicar a partir de una tabla de datos

POST /api/v1/charts/generations acepta multipart/form-data. Scope requerido: charts:generate. El servicio lee tu tabla, elige o aplica los tipos de gráfico indicados y devuelve una figura PNG terminada. No se expone streaming ni estados intermedios; consulta el trabajo como cualquier otro.

Campos del formulario

CampoTipoObligatorioPredeterminadoReglas
datafilesí—CSV, TSV, TXT, XLSX o XLS; máximo 5 MB; la primera fila debe contener nombres de columna únicos
promptstringno—Qué mostrar o destacar, hasta 8.000 caracteres
chart_typesstringnoautomáticoSeparados por comas o repetidos; hasta 4 de los tipos siguientes
journal_stylestringnodefaultdefault, nature, science, cell, plos o acs
figure_widthstringnodoublesingle (una columna) o double (dos columnas)
color_palettestringnookabe_itookabe_ito, wong, tol_bright o tol_muted

Los archivos que no se pueden analizar, superan el límite de tamaño o tienen nombres de columna duplicados o vacíos devuelven 400 INVALID_REQUEST (HTTP 413 si el archivo es demasiado grande).

Tipos de gráfico

Conversión de imágenes

Convertir imágenes a SVG, PPTX, PNG, PDF o TIFF

Trabajos y espera acotada

Sondear trabajo asíncrono y leer resultados depurados

Tabla de contenidos

Campos del formulario
Tipos de gráfico
Créditos
Salida
cURL
JavaScript
Python

bar, line, scatter, boxplot, violin, histogram, heatmap, regression, errorbar, timeseries, volcano, kaplan_meier, forest, dot, radar, upset, dendrogram, qq, ogive, funnel, density, roc, sankey, stem_leaf, correlation, pca, manhattan, bland_altman, waterfall, dose_response, growth_curve, standard_curve, raincloud, beeswarm, ecdf, ma_plot, enrichment, enzyme_kinetics, calendar_heatmap, choropleth, stacked_area, ridgeline, bubble, hexbin, paired_dot, precision_recall, calibration_curve, confusion_matrix.

Créditos

Cada trabajo de gráfico cuesta 10 créditos, reservados al aceptarse y liquidados solo si tiene éxito; un trabajo fallido libera la reserva.

Salida

result.files contiene exactamente un PNG en resolución de impresión, con width y height. Las dimensiones dependen del estilo de revista y del ancho de columna, por lo que el tamaño en píxeles varía.

cURL

curl https://sci-draw.com/api/v1/charts/generations \
  -H 'Authorization: Bearer sd_YOUR_KEY' \
  -H 'Idempotency-Key: study-12-figure-2' \
  -H 'Prefer: wait=30' \
  -F 'data=@results.csv;type=text/csv' \
  -F 'prompt=Comparar los grupos de tratamiento y marcar la significancia' \
  -F 'chart_types=boxplot' \
  -F 'journal_style=nature' \
  -F 'figure_width=single'

JavaScript

const form = new FormData();
form.set('data', file);
form.set('prompt', 'Comparar los grupos de tratamiento y marcar la significancia');
form.set('chart_types', 'boxplot');
const response = await fetch('https://sci-draw.com/api/v1/charts/generations', {
  method: 'POST',
  headers: { Authorization: `Bearer ${apiKey}`, 'Idempotency-Key': crypto.randomUUID() },
  body: form,
});

Python

with open("results.csv", "rb") as table:
    response = requests.post(
        "https://sci-draw.com/api/v1/charts/generations",
        headers={"Authorization": f"Bearer {api_key}", "Idempotency-Key": str(uuid.uuid4())},
        files={"data": ("results.csv", table, "text/csv")},
        data={"prompt": "Comparar los grupos de tratamiento y marcar la significancia", "chart_types": "boxplot"},
    )

La tabla subida es una entrada privada del trabajo y nunca se devuelve en respuestas de trabajos ni de registros. Las fuentes aceptadas se eliminan tras un resultado terminal.