LogoLogoDocumentação da API
LogoLogoDocumentação da API
Página inicial
Visão geralAutenticação e idempotênciaGeração de imagensEdição de imagensConversão de imagensGeração de gráficosJobs e espera limitadaCréditosErrosLimites de requisição e concorrênciaChangelog da API
Documentação da API

Geração de gráficos

Gerar um gráfico pronto para publicação a partir de uma tabela de dados

POST /api/v1/charts/generations aceita multipart/form-data. Scope necessário: charts:generate. O serviço lê sua tabela, escolhe ou aplica os tipos de gráfico informados e retorna uma figura PNG finalizada. Não há streaming nem estados intermediários; consulte o job como qualquer outro.

Campos do formulário

CampoTipoObrigatórioPadrãoRegras
datafilesim—CSV, TSV, TXT, XLSX ou XLS; máximo de 5 MB; a primeira linha deve ter nomes de coluna únicos
promptstringnão—O que mostrar ou destacar, até 8.000 caracteres
chart_typesstringnãoautomáticoSeparados por vírgula ou repetidos; até 4 dos tipos abaixo
journal_stylestringnãodefaultdefault, nature, science, cell, plos ou acs
figure_widthstringnãodoublesingle (uma coluna) ou double (duas colunas)
color_palettestringnãookabe_itookabe_ito, wong, tol_bright ou tol_muted

Arquivos que não podem ser lidos, excedem o limite de tamanho ou têm nomes de coluna duplicados ou vazios retornam 400 INVALID_REQUEST (HTTP 413 para uploads grandes demais).

Tipos de gráfico

Conversão de imagens

Converter imagens para SVG, PPTX, PNG, PDF ou TIFF

Jobs e espera limitada

Consultar trabalho assíncrono e ler resultados higienizados

Sumário

Campos do formulário
Tipos de gráfico
Créditos
Saída
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 job de gráfico custa 10 créditos, reservados na aceitação e liquidados apenas em caso de sucesso; jobs com falha liberam a reserva.

Saída

result.files contém exatamente um PNG em resolução de impressão, com width e height. As dimensões seguem o estilo do periódico e a largura da coluna, então o tamanho em pixels varia.

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 os grupos de tratamento e marcar a significância' \
  -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 os grupos de tratamento e marcar a significância');
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 os grupos de tratamento e marcar a significância", "chart_types": "boxplot"},
    )

A tabela enviada é entrada privada do job e nunca é retornada em respostas de job ou de log. Fontes aceitas são removidas após um resultado terminal.