Skip to content

FigureLabLocal API

Local API

HTTP access to the same JobRunner path the composer uses. No account. No Stripe.

Create a figure

POST /api/v1/figures returns a job id and pollUrl. Poll until status is succeeded, failed, or canceled.

Create

curl -sS http://localhost:3000/api/v1/figures \
  -H 'Content-Type: application/json' \
  -d '{
    "prompt": "Draw a labeled three-step PCR workflow.",
    "mode": "illustration",
    "offering": "fixture"
  }'

Poll

curl -sS http://localhost:3000/api/v1/figures/JOB_ID

Body

prompt
Text description. At least 8 characters unless you send image or tabularData.
mode
illustration (default), flowchart, or plot. Flowchart plans on the server, then drafts nodes. Plot accepts optional tabularData.
image
Optional source. Object with mimeType (image/png, image/jpeg, image/webp, or image/svg+xml) and base64 data — not a data URL.
offering
nano-banana (Gemini 2.5 Flash Image), nano-banana-pro (Gemini 3 Pro Image), nano-banana-2 (Gemini 3.1 Flash Image), or fixture. Those Nano Banana names are the official Gemini image models.
modelProvider
gemini or fixture. Omit to follow offering, then the server environment.

Optional image

{
  "prompt": "Turn this sketch into a journal figure.",
  "mode": "illustration",
  "offering": "fixture",
  "image": {
    "mimeType": "image/png",
    "data": "BASE64_BYTES"
  }
}

Response

Envelope is ok / data / requestId, same as the rest of the app. data.figure includes id, status, pollUrl, provider, and result when finished. Illustration and plot results are kind: image with a dataUrl. Flowchart results are kind: flowchart with the document.

Not the same as FigureLabs

  • No hosted API product, billed keys, or vendor routing.
  • Image models are Nano Banana / Nano Banana Pro / Nano Banana 2, or fixture.
  • No 8K upscale, auth, teams, or Stripe.