# Fix list: Adobe Firefly API From Anchor Terminal's listing at https://www.anchorterminal.com/tools/adobe-firefly, the October 2026 research run, assessed 1 October 2026. Grade D, 49.2 out of 100. This is everything the published grade says the listing lacks, the biggest possible gain to the total first. It comes from the reason given for each score, the checklist each category was scored against (https://www.anchorterminal.com/benchmark/#checklist), the provenance checks, the deductions, what we couldn't check and what the review panel asked for. A fix counts at the next check, once it's public. For a coding agent working on Adobe Firefly API: work through the items below in the product, its docs and its public pages. Each category gives the reason for its score, with the points each checklist item earned, and the checklist itself, so the gap is the items that earned less than their points. Change the product, not the wording, and keep a note of what you changed and where it's published. ## 1. Payments & pricing, 0 out of 100, up to 12.5 more on the total Why it scored 0: No x402, MPP or L402 (0). No public price list, access through an enterprise contract with Adobe sales (0). No free tier (0). A person has to negotiate a contract before any key exists (0). The checklist (https://www.anchorterminal.com/benchmark/#checklist-payments): The published rubric, also on the [x402 page](https://www.anchorterminal.com/x402/). - 40, a machine payment protocol (x402, MPP or L402) on the tool's own endpoints. 10 to 30 when it covers only some endpoints or only goes through a third party, and the note says which. - 20, per-call or per-unit pricing published without a login. 10 for public plan-only pricing, 0 for "contact sales" or prices behind a login. - 20, a free tier or trial that doesn't need a card. - 20, autonomous onboarding, meaning an agent can get access without a person signing up in a browser (keyless use, x402, a programmatic key API). Payment platforms and agent wallets rarely charge for their own API over a machine protocol, so the first line has steps for them, and the highest one that applies counts. 40 when x402, MPP or L402 runs on all their own endpoints, 30 when it runs on part of their own API, 25 when their merchants can accept one, 20 for running a facilitator, 15 for paying as a buyer, and 0 when the only protocol is their own. Merchant acceptance sits above a facilitator because the platform's own customers can charge agents through it, while a facilitator settles for sellers who wire up the protocol themselves. The counter-argument (a facilitator does more for the protocol as a whole) has a point. Each note says which step applied. Open-source software you run yourself is scored on its hosted or paid option if it has one. A free, self-hosted package with nothing to buy gets 20, 20 and 20 for the last three lines, and 0 to 40 for the first only if it ships a payment protocol. ## 2. Reliability, 55 out of 100, up to 9 more on the total Why it scored 55: status.adobe.com renders only with JavaScript, on 1 and 2 October alike. Its data feed at data.status.adobe.com answers with numbered service tokens and no names, and events from 2024, so we couldn't confirm a Firefly Services component (10) or read its history (5). IsDown tracks 199 Adobe components and lists no Adobe-posted Firefly incident in 90 days, but it doesn't break Firefly out either, so we don't count it. Default limits of 4 requests a minute and 9,000 a day per organisation, raised through an account manager (15). The usage notes say a 429 comes back over the limit and advise retrying on the retry-after header or with exponential backoff, and the OpenAPI spec declares a retry-after header (15). No SLA published (0). Image generation and, since 24 April 2026, Upscale are GA (10). The checklist (https://www.anchorterminal.com/benchmark/#checklist-reliability): Hosted APIs, MCP servers, models and platforms. - 20, a public status page with component history (Statuspage, Instatus, BetterStack or the vendor's own). - 0 to 30, the incident record for the last 90 days on that page. 30 for a clean record or trivial incidents only, 20 for minor incidents only, 10 for one major outage (an hour or more of a core API down, or errors across the board), 0 for several. 5 when there's no history we could read, and the note says so. - 15, rate limits documented with numbers. - 15, documented 429 or overload handling (Retry-After, backoff guidance), and idempotency keys or safe-retry guidance where writes are involved. - 10, an SLA published for any paid tier. - 10, the surface agents use is generally available, not beta or preview. Local packages, SDKs, frameworks and stdio MCP servers. - 20, installs from an official package with supported runtimes stated. - 25, a public CI and test suite, passing on the default branch. - 0 to 25, open crash or regression issues relative to activity (25 for few and handled, 0 for many, old and unanswered). - 15, semver discipline and breaking changes called out in a changelog. - 15, version 1.0 or later, or declared stable. Protocols are read from their reference implementations, the public facilitators or servers, spec stability and test vectors. ## 3. Agent ergonomics, 57 out of 100, up to 7 more on the total Why it scored 57: Async jobs return result URLs, not bytes (20). Variation count and size controls (15). Error codes documented in the reference, 422 for a retired model header (12). No idempotency key, though a job can be cancelled at `/v3/cancel/{jobId}`. Every generation is a job to poll at `/v3/status/{jobId}` (6). Two headers plus a token exchange before the first call. The only SDK, `@adobe/firefly-apis` 2.0.1, was published on 24 June 2025 and calls the synchronous `/v3/images/generate`, `/expand` and `/fill` paths that the changelog lists as removed on 3 October 2025. It has no Image 5, composite or upscale methods (4). The checklist (https://www.anchorterminal.com/benchmark/#checklist-ergonomics): - 0 to 25, context cost. For MCP, the number and size of the tool definitions (25 for ten or fewer compact tools, 15 for 11 to 30, 5 for more than 30, plus up to 10 back for toolsets, dynamic loading or read-only subsets). For APIs, whether responses can be sized (field selection, limits, summaries). - 20, pagination, filtering and output-size controls. - 20, actionable, documented error responses, codes and messages an agent can recover from. - 20, idempotency or safe retries, and for MCP the `readOnlyHint` and `destructiveHint` annotations. - 15, sensible defaults, few required parameters, and official SDKs in at least two languages. Models are read for tool use, structured output, prompt caching, context length, batch and SDKs. Frameworks for how much code and how many defaults a tool-calling agent with MCP needs. ## 4. Maintenance & community, 23 out of 100, up to 6.7 more on the total Why it scored 23: The changelog's newest entry is Upscale going GA on 24 April 2026, 161 days ago (10). For models we look at churn and notice. The changelog has entries on 24 and 25 March and 24 April 2026, none in the last 90 days. The Upscale GA renamed `creative_upsampler_v1` and rejected the old value with 422 in the same entry, and Image 5's `/v4` endpoint has no dated changelog entry (5). Public changelog and enterprise support through an account manager (6). The one official SDK, `@adobe/firefly-apis` 2.0.1 from 24 June 2025, hasn't kept up with the 2026 endpoints (0). The SDK repo's CI builds pull requests with the test step commented out, and nothing has been published in 15 months (2). The checklist (https://www.anchorterminal.com/benchmark/#checklist-maintenance): - 0 to 30, time since the last release, or the last published model or API change for a closed service. 30 within 30 days, 20 within 90, 10 within 180, 0 older. - 20, at least three releases or dated changelog entries in the last 90 days. - 0 to 25, responsiveness. Issues and pull requests answered on GitHub (the open issues and how recent the replies are). For closed services, a public changelog and a support or community channel that answers, 0 to 15. - 15, presence in the official MCP registry under a verified namespace (MCP servers), or current official SDKs (APIs and models). - 10, package health, current dependencies and CI. Models are read for deprecation notice periods and model churn rather than release counts. ## 5. Security & auth, 63 out of 100, up to 6.5 more on the total Why it scored 63: OAuth server-to-server credentials from the Adobe Developer Console, exchanged at Adobe IMS for 24-hour bearer tokens, so no long-lived secret travels with each call (30). Credentials sit in a Developer Console project tied to the organisation's product profile (10). Returns generated images only (10). No per-call audit log found (0). Security programme (13): security.txt valid per the provenance check (5), a public bug bounty on Intigriti that names Adobe Firefly in scope, though not the API host (5), and public security bulletins at helpx.adobe.com/security (3). Adobe's compliance overview pairs no certification with Firefly, and the compliance list is a JavaScript table our reader couldn't load on 1 or 2 October, so no certification is counted (0). The checklist (https://www.anchorterminal.com/benchmark/#checklist-security): - 0 to 30, the credential model. 30 for OAuth 2.1 with scopes, or scoped and revocable keys with rotation. 20 for plain revocable API keys. 10 for one all-powerful key. 10 off when a secret can travel in a URL query string as a documented option. - 0 to 20, read-only or least-privilege modes, and confirmation or approval for destructive actions. - 0 to 15, prompt-injection posture where the tool returns untrusted content (documented mitigations or guidance). A tool that returns no untrusted content gets 10. - 0 to 15, audit logs or per-call visibility for the operator. - 0 to 20, a security programme. security.txt or a disclosure policy, a bug bounty, SOC 2 or ISO 27001, advisories handled in public. Models are read for retention, whether API data trains models (and whether that's off by default), zero-retention options and certifications. Frameworks for telemetry defaults, approval hooks, guardrails and sandboxing. ## 6. Schema & documentation, 78 out of 100, up to 3.6 more on the total Why it scored 78: OpenAPI 3.1 spec in the AdobeDocs/ffs-firefly-api repository, re-read on 2 October with 14 operations and 104 schemas (25). No llms.txt (0). Endpoint guides state what each endpoint is for, little on when not to use one (13). Typed inputs with 41 enums and required fields, with the model picked by an `x-model-version` header (13). 71 examples, and every operation lists its 4xx and 5xx responses, with example bodies for 422 validation and 451 content-policy errors (12). Dated changelog that flags breaking changes (15). The checklist (https://www.anchorterminal.com/benchmark/#checklist-schema): APIs and MCP servers. - 25, a machine-readable contract (a public OpenAPI file or similar; for MCP, typed JSON Schema inputs on every tool). - 10, llms.txt or Markdown docs served for agents. - 0 to 20, descriptions that say what a tool is for, when to use it and when not to, read from the tool definitions in the source or the API reference. - 0 to 15, typed inputs with enums, constraints and required fields, and no free-form JSON blobs. - 0 to 15, examples and documented error responses. - 15, versioning and a public changelog. Models are read from the API reference, the OpenAPI file, llms.txt, the structured-output and tool-use docs and the model cards. Frameworks from docs a model can follow, typed interfaces, examples and the API reference. ## 7. Transparency & trust, 71 out of 100, up to 2.5 more on the total Made of editorial 42, provenance 100. Why it scored 71: Closed models under Adobe's terms (15). Adobe says it doesn't train Firefly on Creative Cloud or Experience Cloud subscribers' personal content. The OpenAPI spec says uploaded images stay usable for 7 days and result download URLs expire after one hour, which are access windows rather than deletion periods. We found no retention period for prompts, uploads or outputs, and no API-specific data statement (12). The changelog dates removals and breaking changes, such as the October 2025 removal of synchronous v3 endpoints and the April 2026 Upscale rename (15). No subprocessor list or data locations found for Firefly Services (0). The checklist (https://www.anchorterminal.com/benchmark/#checklist-transparency): - 0 to 30, source availability and licence clarity. 30 for open source under an OSI licence, 15 for closed with clear terms, 0 for unclear terms. - 0 to 30, data handling and retention statements that agree with each other (privacy policy, DPA, retention periods, subprocessors). - 0 to 20, a deprecation policy or notices with dates. - 0 to 20, telemetry disclosed with an opt-out (local software), or subprocessors and data locations disclosed (hosted). The other half of Transparency and trust is the provenance score, computed from checked facts (below). The category score is the mean of the two. ## Deductions Each comes off the total. A fixed and documented problem counts for less at the next check. - 2026-04-24: the Upscale GA removed the `creative_upsampler_v1` header value, which now returns 422, on the day the change was announced. The repository history shows the rename first appears that day in both the spec and the changelog. The endpoint was a month-old beta and the entry gives a migration path, so the smallest deduction. https://developer.adobe.com/firefly-services/docs/firefly-api/getting-started/changelog/ ## What we couldn't check What we couldn't read counted as absent. Publishing it on a page a plain HTTP fetch can read (not only in a browser) lets the next check count it. - unchecked: status history. status.adobe.com renders only with JavaScript, its data feed at data.status.adobe.com carries numbered service tokens with no names, and IsDown doesn't separate Firefly, so reliability scores 5 for history and nothing for a Firefly component - unchecked: certifications. Adobe's compliance list is a JavaScript table we couldn't load on 1 or 2 October, and the compliance overview names no certification for Firefly, so SOC 2 or ISO 27001 coverage of Firefly Services isn't counted - No retention period for API prompts, uploads or outputs was found. The spec gives only access windows, 7 days for uploads and one hour for result URLs - Whether Adobe told enterprise customers about the April 2026 Upscale rename before it shipped. The public docs show no earlier notice - The listing's lastRelease of 2025-06-24 was the SDK's release date. The changelog's newest entry is 2026-04-24, corrected in patch ## Weaknesses - Enterprise contract only. No self-serve sign-up and no public price list - Default limit of 4 requests a minute per organisation - Changelog's newest entry is 2026-04-24, and Image 5's endpoint isn't in it - The only SDK, `@adobe/firefly-apis` 2.0.1 from June 2025, calls synchronous paths the changelog lists as removed in October 2025 - Every generation is an async job you have to poll, and there's no llms.txt ## What costs an agent a turn today The notes we give agents before they call it. Each one is a workaround an agent shouldn't need. - Call the REST async endpoints directly. `@adobe/firefly-apis` 2.0.1 targets the removed synchronous paths and has no Image 5 or upscale methods - Cache the IMS token and refresh it before its 24 hours run out - Poll `/v3/status/{jobId}`, back off on 429 using the retry-after header, and download results within the hour their URLs stay valid - Send `precise_upsampler_v1` to Upscale. `creative_upsampler_v1` returns 422 since 2026-04-24 - Image 5 lives at `/v4/images/generate-async`. Image 3 and 4 stay on `/v3/images/generate-async` ## What the review panel asked for - Self-serve API keys - An SDK that matches the spec - publish a per-image rate card ## When it's done Send what changed and where it's published as a dispute (https://www.anchorterminal.com/builders/#disputes, or `POST https://www.anchorterminal.com/api/v1/contact` with `"kind": "dispute"`). Disputes are answered in public, and the listing is checked again by the same checklist. Paying for an audit or a listing claim changes nothing here.