Skip to main content
Get from zero to a generated diagram in three steps: create a key, list your diagrams, then generate a new diagram from a natural-language prompt and poll for its image_url.
The Just Flow It API is server-to-server only. There is no CORS support — never embed an API key in a browser or mobile client. All requests go to https://justflow.it/api/v1.
1

Create an API key

API keys are created in the web app, not via the API.
  1. Open Just Flow It and go to Settings → API keys.
  2. Click Create key and choose the scopes you need (diagrams:read, diagrams:write, folders:read, folders:write, generate).
  3. Copy the key immediately — it is shown in plaintext only once at creation. Only a SHA-256 hash is stored server-side.
Keys look like jfi_sk_live_xxxxx (production) or jfi_sk_test_xxxxx (staging).
The API is available on paid plans only. A Pro user receives a personal key that acts on their personal diagrams and folders; a member of a Team organization receives an org key that acts on that org’s resources. Free-plan keys are rejected with 403 plan_required.
Store the key in an environment variable so it never lands in source control:
2

Make your first authenticated request

Authenticate with HTTP Bearer auth and list your diagrams. This call requires the diagrams:read scope.
A successful response is a 200 with a cursor-paginated list of diagrams:
To page through results, pass next_cursor back as the cursor query parameter on your next request.
Every error uses the same envelope, and the response carries an X-Request-Id header:
  • 401 missing_api_key / invalid_api_key / revoked_api_key / expired_api_key — check the Authorization header. 401 responses also include a WWW-Authenticate: Bearer header.
  • 403 plan_required — your plan does not include API access.
  • 403 insufficient_scope — the key is missing the diagrams:read scope.
3

Generate a diagram from a prompt

Diagram generation runs an LLM and a render, so it is asynchronous: you create a generation job, then poll it until it succeeds. This call requires the generate scope and counts against your monthly generation quota.
The request returns 202 Accepted with a Generation in the queued state, plus a Location header pointing to the poll URL and a Retry-After hint:
Now poll GET /v1/generations/{id} until status becomes succeeded (or failed). Honor the Retry-After hint between polls.
When the job succeeds, the 200 response populates diagram (the created, saved diagram) and image_url (the rendered image in the requested theme and format):
Already have a saved diagram and just need an image (or a different theme)? Call GET /v1/diagrams/{id}/image directly — it renders on demand and is cached, with no generation quota cost.

Next steps

Authentication

Key formats, the live vs test prefix, and the full list of scopes.

Errors

The error envelope, every type/code pairing, and X-Request-Id tracing.

Rate limits

The 120-req/60s burst, the 500-generations/30-day quota, and RateLimit-* headers.

Diagrams API

List, create, read, update, delete diagrams and render images on demand.