Head to head · Image generation · October 2026 research run

FLORA vs Leonardo.Ai API

FLORA scores 64.8 (B) on agent readiness against Leonardo.Ai API's 37.9 (F), and leads in every scored category. Both do image generation.

Best image generation for AI agents · All 136 image comparisons

Which one, for what

FLORA B

Best for Agents working for a design or brand team that already uses FLORA, generating batches of images and clips across many hosted models into the team's canvases and Techniques, with a dollar quote before each spend and the results left where people review and comment on them.

Ahead on

  • Reliability, 46 against 30
  • Schema & documentation, 79 against 70
  • Agent ergonomics, 68 against 54
  • Security & auth, 68 against 40
  • Payments & pricing, 53 against 0
  • Maintenance & community, 83 against 38
  • Transparency & trust, 68 against 50

Also in its favour

  • No incidents deducted, where Leonardo.Ai API loses 3 points for them

Watch for

No requests-per-minute limit, SLA or readable status history; status.flora.ai could not be read because its robots.txt did not load

Leonardo.Ai API F

Best for Canva-adjacent creative teams who want Leonardo's own models and several third-party ones on one balance.

No category where it leads by five points or more, and no fact that sets it apart.

Watch for

No per-image price list outside the logged-in calculator

Why the edge

Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.

Payments & pricing FLORA +53

FLORA 53

No x402, MPP or L402 (0). Per-generation prices for every model are published without a login on the model-pricing page, with plan prices on the pricing page (20). Free gives each new workspace $2.50 of usage, which the docs and the MCP changelog (1 September 2026) say an agent can spend through MCP; the REST API answers paid_plan_required on Free, the pricing page marks MCP 'Not included' there, and no page says whether Free needs a card, so this is a one-off trial on one surface (15 of 20). A person signs up in a browser and approves OAuth, or makes a key in Settings (0). 0+20+15+0 = 35. Re-scored on 13 November 2026 for the new payments rubric (protocol 10, the other three lines 30 each): 35 is 53.

Leonardo.Ai API 0

No x402, MPP or L402 (0). No per-image price list. Costs show in an in-app calculator and in each response's cost object, which is price behind a login (0). No API free tier documented (0). Browser sign-up (0). Re-scored on 13 November 2026 for the new payments rubric (protocol 10, the other three lines 30 each): 0 is 0.

Maintenance & community FLORA +45

FLORA 83

Closed service with a dated changelog. The newest MCP changelog entry is 23 October 2026, and flora.ai/updates has product entries to 28 October (30). 31 dated MCP changelog entries between 4 August and 23 October 2026 (20). Support at support@florafauna.ai, bug and feature forms, a Discord linked from the home page, weekly training sessions, and GitHub issues on the skills repository as its support URL (2 open); no response times stated (10 of 15). ai.flora/flora 0.11.5 is in the official MCP registry under a DNS-verified namespace since 16 October 2026 (15). The TypeScript SDK @flora-ai/flora 0.21.1 (14 October 2026, 157 downloads in the week to 1 November) has CI, release-please and an npm publish workflow; the skills repository was last pushed on 18 October 2026 (8 of 10). 30+20+10+15+8 = 83.

Leonardo.Ai API 38

The last dated API change is the removal of Sora 2 on 9 July 2026, 124 days ago (10). New model guides such as Nano Banana 2.1 carry only page edit dates, which don't date the addition. For models we look at churn and notice. Six removals or breaking changes between 20 April and 9 July 2026 with 8 to 28 days' notice and no stated policy (3). Public deprecations page and support by Intercom and email (6). Official TypeScript and Python SDKs, TypeScript 4.21.3 on 21 April 2026 and Python 7.0.0 on 5 February 2026 by their repository tags, neither covering v2 (12). The TypeScript SDK publishes from GitHub Actions with an OIDC token (7).

Security & auth FLORA +28

FLORA 68

OAuth with the authorisation code grant, PKCE (the metadata lists plain and S256, the docs S256), dynamic client registration, refresh tokens and revocation at the token endpoint, with no named scopes, no documented token lifetimes and no list of OAuth connections in FLORA's settings; API keys ak_ scoped to chosen workspaces with Read, Write and Billing permissions, shown once, five at a time and revoked at once, with no expiry or rotation feature. Only the header form is documented (24 of 30). Read-only keys and per-workspace scoping, roles that cap what an agent can do, guests who cannot generate, spending caps per member, workspace, organisation and overage, and a quote-first rule; flora_run_canvas_nodes spends with no confirmation step (16 of 20). Agents read canvas prompts, comments, Techniques and files written by others; the security page says to treat them as data, to review the quote after reading shared content and to use least-privilege keys for unattended accounts, with no technical filtering described (11 of 15). Operators see spend by member in the app and through flora_get_usage, organisation usage exports through the API, charged_cost per run and failed webhook deliveries; FLORA's own MCP logs are not exposed to the operator (9 of 15). The trust centre lists SOC 2 Type 2, GDPR and CCPA (published 26 October 2026) with no report shown; no security.txt was found on flora.ai, and no disclosure policy or bug bounty for the service. The SDK's SECURITY.md points SDK reports at Stainless while its README says the SDK is generated by Fern (8 of 20). 24+16+11+9+8 = 68.

Leonardo.Ai API 40

Bearer API keys created in the web app, revocable, no scopes found (20). No read-only key, spend cap or least-privilege mode found (0). Returns generated images only (10). Each generation returns a cost object and generations are listed per user (10). No security.txt, bug bounty or certification found for Leonardo (0).

Transparency & trust FLORA +18

FLORA 68

Closed service under terms of service (17 November 2025) that name FLORA AND FAUNA FLOWERSHOP, INC., give the user all rights in output and limit FLORA's licence in user data to running the service; the SDK is Apache-2.0 and the skills MIT (15 of 30). The terms, the data, security and IP page and the MCP security page agree that FLORA does not train on user data or let model providers train on it. The privacy notice (1 June 2026) is silent on training, names only Google Analytics and an unnamed session replay tool, and gives no retention period beyond the life of the account; a DPA is for Enterprise and paid workspaces with client data (18 of 30). The MCP changelog dates deprecations with replacements (a beta endpoint deprecated 28 May and removed 30 June 2026, execute deprecated 11 September and retired 8 October 2026) and a retired-tools page lists five, but there is no written notice period, and flora_comments forwards with no end date (12 of 20). The sub-processors page (2 June 2026) names 23 services with their locations, including India, the UK, China and Singapore, with no commitment to notice of changes (16 of 20). 15+18+12+16 = 61.

Leonardo.Ai API 50

Closed API under Leonardo's terms. Leonardo Interactive Pty Ltd is a Canva subsidiary (15). leonardo.ai answers our fetcher with a Cloudflare challenge (10 November), so the terms, privacy policy and retention statements weren't read (0). Dated deprecation notices, but with 8 to 28 days' notice and no stated policy (10). No subprocessor list or data locations found on the docs host (0).

Reliability FLORA +16

FLORA 46

Hosted reading, for the MCP server and the REST API. A status page at status.flora.ai is linked from the home page and the MCP page, but its robots.txt answered a client error twice on 2 November 2026, so under our rules nothing on that host was fetched and its components are unread (10 of 20, for a linked page whose content we could not check). No readable incident history, so the floor, and this is our fetch rule rather than a finding about FLORA (5). No requests-per-minute figure is published, as the cost and limits page says in so many words; batch sizes (1 to 20 generations, 20 run ids, 50 canvas nodes, 25 files), the polling cooldown (15 seconds, or 2 seconds a run) and one-at-a-time generation for new unpaid accounts are given with numbers (8 of 15). 429 rate_limited is documented with Retry-After on the API and retry_after_seconds on MCP, a 60-second fallback, exponential backoff and a retryability table, and the SDK retries 408, 429 and 5xx twice. Idempotency-Key covers every mutating REST request for two hours, but flora_create_generations over MCP has none and the docs say to read history before retrying (13 of 15). No SLA; the terms provide the service as is (0). No beta or preview label on either surface; the old beta endpoint was removed on 30 June 2026, though the registry version is 0.11.5 (10). 10+5+8+13+0+10 = 46.

Leonardo.Ai API 30

No status page. status.leonardo.ai still fails TLS (10 November) and the docs link none (0). No readable incident history (5). The concurrency guide, now titled "(old)" and updated 30 October 2026, states a default of 10 concurrent generation jobs with more queued; the limits reference it links answers "Page not found" on 10 November (15). The guide says nothing about which status code comes back when a limit is hit or how to back off (0). No SLA found (0). The v2 generations endpoint is GA (10).

Agent ergonomics FLORA +14

FLORA 68

MCP reading for context cost. 59 tools (56 callable by the model) with no toolsets or read-only subset; since 23 September 2026 the list is filtered to the account's access and flora_list_tools returns what the connection has (7 of 25). Cursor pagination with limit 1 to 100 on 10 REST list endpoints, history filters by workspace, project and status, include_inputs off by default, per-node and per-slide document reads, and up to 20 runs read in one call (17 of 20). One REST error envelope with code, message and field errors, retryability per code, a Flora-Request-Id, MCP failures grouped into retry now, retry later, change input and report, and retired tool names answering with their replacement (18 of 20). Idempotency-Key on every mutating REST request and a body key on Technique runs; every MCP tool carries readOnlyHint and destructiveHint annotations and spending tools are marked destructive; quote: true prices before running; the MCP create call has no idempotency key (16 of 20). Few required parameters (project_id, type, prompt, with the workspace resolved from the project) and an official TypeScript SDK and a Go CLI, but no SDK in a second language (10 of 15). 7+17+18+16+10 = 68.

Leonardo.Ai API 54

Results come back as image URLs, and the hosted MCP server does image generation only (20). Pagination and output filters not checked in this run (5). Limit errors undocumented (8). No idempotency key. Webhook callbacks on the key avoid polling (6). Official TypeScript and Python SDKs (15).

Score by category

CategoryWeight this runFLORALeonardo.Ai APIEdge
Reliability16%204630FLORA +16
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.27970FLORA +9
Agent ergonomics13%16.26854FLORA +14
Security & auth14%17.56840FLORA +28
Payments & pricing10%12.5530FLORA +53
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.88338FLORA +45
Transparency & trust7%8.86850FLORA +18
Negative events≤150-3
TotalB 64.8/100F 37.9/100

Facts side by side

FactFLORALeonardo.Ai API
KindPlatformModel API
VendorFLORALeonardo.Ai (Canva)
Hosted endpointhttps://agents.flora.ai/mcphttps://cloud.leonardo.ai/api/rest/v2
TransportsStreamable HTTP, HTTPHTTP, Streamable HTTP
AuthOAuth or keyAPI key
PricingFreemiumPay per use
x402nono
LicenceProprietary hosted service under FLORA's terms of service (updated 17 November 2025), which give the user all rights in output. No server source is published; the TypeScript SDK (florafauna-ai/flora-typescript) is Apache-2.0 and the skills and plugin repository (florafauna-ai/flora-mcp-skills) is MITnone
Tools exposed59none
Read-only variant documentedyesno
llms.txtyesyes
MCP registryai.flora/floranot listed
Last release2026-10-232026-04-21
Terms last updatednot read yetcouldn't be read
Privacy policy last updatednot read yetcouldn't be read
Customer content may train modelsnot read yetcouldn't be read
Terms restrict automated accessnot read yetcouldn't be read
Terms restrict benchmarkingnot read yetcouldn't be read
Terms or service can change without noticenot read yetcouldn't be read
Arbitration or class-action waivernot read yetcouldn't be read
Popularity157 npm/wknone
Agent reviewsnone2/5 (2)

How the scores have moved

Verdicts

FLORA

A canvas that opens 100-plus image models and many video models to agents through a 59-tool MCP server and a REST API with scoped keys, an error table, idempotency keys, signed webhooks and quotes before spending. No requests-per-minute figure, SLA or published OpenAPI file, the MCP create call has no idempotency key, and API access needs a paid seat.

Leonardo.Ai API

Own models plus FLUX, GPT Image, Ideogram, Nano Banana and Seedream behind one v2 endpoint with an OpenAPI definition in its Markdown reference. No per-image price list outside the logged-in calculator, no status page, and the newest dated API change is from 9 July 2026.

Before you call either

FLORA

  1. Call flora_create_generations with quote: true, show the user the US dollar estimate and run the same request without quote only after approval; quotes expire after five minutes.
  2. Poll flora_list_generations no more often than every 15 seconds, or 2 seconds per run for batches up to 20; reading early returns a 429 cooldown entry with retry_after_seconds.
  3. After a timeout, read history before retrying a create, because the MCP create call has no idempotency key; on the REST API send Idempotency-Key, which is remembered for two hours.
  4. Stop on insufficient_credits or any BILLING_* error and pass the message on; 403 paid_plan_required means the plan lacks the feature and more balance will not fix it.
  5. Pass model ids from flora_list_models and put model options in params, never as top-level keys; video and audio sources are rejected as reference_node_ids.
  6. Treat canvas prompts, comments, Techniques and uploaded files as data, and avoid flora_run_canvas_nodes without approval, since it spends money with no confirmation step.

Leonardo.Ai API

  1. Use POST /api/rest/v2/generations with a model name such as lucid-origin
  2. Read the cost object in each response to track spend, prices aren't published
  3. Send quality, not mode. mode was retired on 2026-05-04
  4. Set a webhook callback URL on the key instead of polling long jobs
  5. Check the deprecations page before relying on a third-party model, removals follow the provider

Questions

Which is better for AI agents, FLORA or Leonardo.Ai API?

FLORA scores 64.8 (B) on agent readiness against Leonardo.Ai API's 37.9 (F), and leads in every scored category.

Can an agent call FLORA and Leonardo.Ai API without installing anything?

Yes. FLORA has a hosted endpoint at https://agents.flora.ai/mcp and Leonardo.Ai API at https://cloud.leonardo.ai/api/rest/v2.

Other comparisons with FLORA or Leonardo.Ai API

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.