LogoLogoDocumentation API
LogoLogoDocumentation API
Accueil
Vue d'ensembleAuthentification et idempotenceGénération d'imagesModification d'imagesConversion d'imagesGénération de graphiquesJobs et attente bornéeCréditsErreursLimites de débit et concurrenceJournal des versions de l'API
Documentation API

Génération de graphiques

Générer un graphique prêt à publier à partir d'un tableau de données

POST /api/v1/charts/generations accepte multipart/form-data. Scope requis : charts:generate. Le service lit votre tableau, choisit ou applique les types de graphique demandés et renvoie une figure PNG finalisée. Aucun flux ni état intermédiaire n'est exposé ; interrogez le job comme les autres.

Champs du formulaire

ChampTypeRequisDéfautRègles
datafileoui—CSV, TSV, TXT, XLSX ou XLS ; 5 Mo maximum ; la première ligne doit contenir des noms de colonnes uniques
promptstringnon—Ce qu'il faut montrer ou souligner, jusqu'à 8 000 caractères
chart_typesstringnonautomatiqueSéparés par des virgules ou répétés ; jusqu'à 4 des types ci-dessous
journal_stylestringnondefaultdefault, nature, science, cell, plos ou acs
figure_widthstringnondoublesingle (une colonne) ou double (deux colonnes)
color_palettestringnonokabe_itookabe_ito, wong, tol_bright ou tol_muted

Les fichiers illisibles, trop volumineux ou dont les noms de colonnes sont dupliqués ou vides renvoient 400 INVALID_REQUEST (HTTP 413 pour les envois trop volumineux).

Types de graphique

Conversion d'images

Convertir des images en SVG, PPTX, PNG, PDF ou TIFF

Jobs et attente bornée

Interroger le travail asynchrone et lire des résultats assainis

Table des matières

Champs du formulaire
Types de graphique
Crédits
Sortie
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édits

Chaque job de graphique coûte 10 crédits, réservés à l'acceptation et débités uniquement en cas de succès ; un job échoué libère la réservation.

Sortie

result.files contient exactement un PNG à la résolution d'impression, avec width et height. Les dimensions dépendent du style de revue et de la largeur de colonne, la taille en pixels varie donc.

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=Comparer les groupes de traitement et marquer la significativité' \
  -F 'chart_types=boxplot' \
  -F 'journal_style=nature' \
  -F 'figure_width=single'

JavaScript

const form = new FormData();
form.set('data', file);
form.set('prompt', 'Comparer les groupes de traitement et marquer la significativité');
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": "Comparer les groupes de traitement et marquer la significativité", "chart_types": "boxplot"},
    )

Le tableau envoyé est une entrée privée du job et n'apparaît jamais dans les réponses de job ou de journal. Les sources acceptées sont supprimées après un résultat terminal.