Quickstart
Create your first key and make a request in a few minutes.
Authentication
How API keys, Bearer auth, and scopes work.
API Reference
Every endpoint, parameter, and response shape.
Generate diagrams
Describe a process in words, get a diagram back.
Base URL
All endpoints are reached at a single base URL. Every request must use HTTPS.What you can do
Diagrams
Create diagrams from a natural-language prompt or by importing standard BPMN 2.0, organize them in folders, and export back to BPMN 2.0.
Folders
Organize diagrams into nestable folders, each with optional AI-steering context.
Generation
Generate a brand-new diagram from a natural-language prompt, then fetch a rendered PNG or SVG image in a light or dark theme.
Who can use it
The API is available on paid plans only.Pro — personal key
A Pro user gets a personal key that acts on their own personal diagrams and folders.
Team — org key
A member of a Team organization gets an org key that acts on that organization’s diagrams and folders.
Server-to-server only
Making a request
Authenticate every request with your secret key in theAuthorization header using the Bearer scheme.
Key concepts
Scopes
Scopes
Each key holds a subset of scopes. A request missing a required scope returns
See Authentication for details.
403 with code insufficient_scope.| Scope | Grants |
|---|---|
diagrams:read | Read diagrams and render their images |
diagrams:write | Create, update, and delete diagrams |
folders:read | Read folders |
folders:write | Create, update, and delete folders |
generate | Generate diagrams from a prompt |
Pagination
Pagination
List endpoints are cursor-based.Each response includes:An invalid or expired cursor returns
Number of items per page,
1–100. Defaults to 20.Opaque cursor from a previous response. To get the next page, pass
next_cursor as cursor.The page of resources, newest first (
created_at descending).Whether more results exist after this page.
The cursor to fetch the next page, or
null when there are no more.400 with code invalid_cursor.Rate limits & quotas
Rate limits & quotas
Limits are applied per key:
- Burst: 120 requests per 60 seconds.
- AI generation quota: 500 generations per rolling 30 days.
RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset (seconds) headers. On a 429, a Retry-After (seconds) header is included.Rate-limit errors use type rate_limit_error with code rate_limit_exceeded or quota_exceeded.Errors
Errors
Every error response uses the same envelope:Every response includes an
X-Request-Id header; 401 responses also include WWW-Authenticate: Bearer.error.type | HTTP | Codes |
|---|---|---|
invalid_request_error | 400 | invalid_json, missing_parameter, invalid_parameter, payload_too_large, invalid_cursor |
authentication_error | 401 | missing_api_key, invalid_api_key, revoked_api_key, expired_api_key |
permission_error | 403 | plan_required, insufficient_scope |
not_found_error | 404 | resource_not_found |
conflict_error | 409 | — |
validation_error | 422 | validation_failed |
rate_limit_error | 429 | rate_limit_exceeded, quota_exceeded |
api_error | 500 | internal_error |
Live keys (
jfi_sk_live_...) target production; test keys (jfi_sk_test_...) target staging. Both use the same base URL and behave identically.Next steps
Quickstart
Get a key and make your first call.
Authentication
Bearer auth, scopes, and key safety.
API Reference
Full endpoint documentation.