Head to head · Design rendering · October 2026 research run
Abyssale vs Shotstack
Shotstack scores 67.3 (B) on agent readiness against Abyssale's 65.6 (B), and leads in 3 of 7 scored categories. Abyssale leads on schema & documentation, agent ergonomics, security & auth and maintenance & community. Both do design rendering.
Best programmatic image and design asset APIs for AI agents · All 153 assets comparisons
Which one, for what
Abyssale B
Best for Multi-format ad creative, video, HTML5 banners and print PDFs from one design, for marketing teams and agencies with an agent in the loop.
Ahead on
- Schema & documentation, 98 against 88
- Agent ergonomics, 85 against 63
- Security & auth, 55 against 48
- Maintenance & community, 85 against 73
Also in its favour
- Free to start without a card
- No incidents deducted, where Shotstack loses 3 points for them
Watch for
API and MCP need the Pro plan at $45 a seat a month
Best for Teams that render video, images or audio from JSON or templates at volume and want an agent to draft edits that a person reviews in Studio.
Ahead on
- Reliability, 95 against 41
- Payments & pricing, 45 against 35
Watch for
API keys have no scopes. One production key and one sandbox key reach the Edit, Serve and Ingest APIs, and key rotation was not found in the docs
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.
Reliability Shotstack +54
Abyssale 41
Hosted lines, for the REST API and the remote MCP server. No status page was linked from the site or the docs, and status.abyssale.com did not answer (0). No readable incident history (5). Rate limits published in full, 10 requests a second globally and per-workspace tiers with per-minute and per-hour budgets (15). 429s carry Retry-After and X-RateLimit headers, three 429 ids say which limit was hit, failed generations cost nothing, and webhooks carry a delivery id to deduplicate on. No idempotency key on generation requests (13 of 15). The terms promise best-effort availability and leave SLAs to Enterprise contracts, so none is published (0). Generation and the MCP server are generally available, while Design Import, the JSON authoring route, is labelled alpha (8 of 10). 0 + 5 + 15 + 13 + 0 + 8 = 41.
Shotstack 95
Hosted lines. Public status page at status.shotstack.io with monitors, the Edit API in production among them (20). Its feed and incident pages hold no incident in the 90 days from 4 August 2026. The newest incident, number 8 (range parameters in render payloads causing failures, 21 July 2026), left the window on 20 October, /incidents/9 answers 404, and the window holds only two completed maintenance windows (11 August, rendering stayed available; 4 and 5 September, billing, with the API fully available). A readable page that posts incidents, none in the window, is a clean record (30, was 20). Rate limits per API key in a fixed 60-second window, 300 for Edit, 600 for Serve and 300 for Ingest in production (15). A 429 returns rate_limit_error with advice to wait for the window and retry with exponential backoff, and POST /generate takes an Idempotency-Key, but POST /render has none and no Retry-After is documented for rate limits (10). Schedule 2 of the terms is an SLA of 99.9 per cent with a 10 per cent credit, free plans excluded (10). The Edit API is v1 and neither the MCP server nor the CLI carries a beta label (10). 20 + 30 + 15 + 10 + 10 + 10 = 95.
Agent ergonomics Abyssale +22
Abyssale 85
20 MCP tools (15 for 11 to 30), plus 5 because OAuth scopes per tool group let a client be approved for reads only (20 of 25). Design listings search by words in any order, filter by project, orientation, size, format and dates, sort and order, and say honestly when a page is past the end; listing tools refuse unsupported options rather than ignore them, per MCP 1.2.0 (19 of 20). One envelope with an id to branch on, and error docs that say which errors a retry never fixes (19 of 20). The permissions page marks each tool read-only, mutating or destructive, but MCP annotations couldn't be confirmed on the closed server, and generation has no idempotency key (12 of 20). Official Node.js and Python SDKs with retry behaviour and polling helpers (15). 20 + 19 + 19 + 12 + 15 = 85.
Shotstack 63
15 MCP tools by the vendor's list, with the authoring guide loaded on demand through get_shotstack_guide and skill references read only when relevant (18). No pagination, limit or filter on the template or source lists in the definition. The CLI prints JSON with --output json (6). Errors carry status, title and detail, confirmed on a 401, generation errors carry a code, the CLI validates offline and exits 0, 1 or 2 for success, permanent and retryable failures (17). Idempotency-Key and a result cache on generation and a free quote, but no idempotency on renders, and MCP annotations were not readable (12). Smart clip lengths and a default v1 environment keep requests short. Five official SDK repositories exist, but the npm and PyPI packages date from July 2024 (10).
Maintenance & community Abyssale +12
Abyssale 85
API version v2026-10-29, eight days before this check (30). Fifteen dated API versions between 21 August and 29 October, MCP server releases 1.0.0 (1 September) to 1.2.0 (7 October), and SDK releases in October (20). Closed service with a changelog and RSS feed, help@abyssale.com and in-app chat, which we didn't test (12 of 15). com.abyssale/mcp is in the official MCP registry under a domain-verified namespace, and the Node.js (1.9.0) and Python (1.7.0) SDKs were both released on 21 October 2026 (15). Both SDKs are current; their repositories weren't read (8 of 10). 30 + 20 + 12 + 15 + 8 = 85.
Shotstack 73
API definition 1.23.3 (@shotstack/schemas) tagged on 27 October 2026, six days before the check, after 1.23.0 on 15 October added a source file on generation assets (30). 21 definition tags and 13 CLI tags (0.8.x to 0.15.2, the last on 22 October) since 4 August 2026, and the skill repository synced from CLI 0.16.0 to 0.17.0 between 25 and 30 October (20). Dated changelog for the definition in its repository, in-app support on every plan and a GitHub issue template for the CLI. Issue threads were not read (8). @shotstack/cli and @shotstack/schemas are current, while npm shotstack-sdk 0.2.9 dates from July 2024 per the 8 October check; the PyPI release date came from a path pypi.org's robots.txt disallows and is struck, and pypi.org didn't resolve on 2 November. The MCP registry entry was not checked (7). The definition repository runs build, smoke and example tests on pull requests. Since 25 October the CLI repository holds only the agent skill and says the CLI's source isn't published there, so its release tests can no longer be read (8). 30 + 20 + 8 + 7 + 8 = 73.
Schema & documentation Abyssale +10
Abyssale 98
A 424 KB OpenAPI file at developers.abyssale.com/api.yaml with 34 operations, from which the reference pages are generated (25). A detailed llms.txt that states the base URL, auth, rate limits, error envelope and webhook signing up front (10). Pages say what each endpoint is for and when to use another, such as synchronous versus asynchronous generation and designs versus workspace templates, and the MCP permissions page says what each tool can break (19 of 20). Typed parameters with enums, ranges and required fields across layers and formats (14 of 15). One error envelope everywhere, an error catalogue with machine-readable ids and what to do for each, and worked examples (15). Date-based versions named in every response and a dated changelog in Keep a Changelog form with a Breaking section first; the MCP server has its own semver changelog (15). 25 + 10 + 19 + 14 + 15 + 15 = 98.
Shotstack 88
Public OpenAPI 3.0.1 definition of the Edit API with 14 operations and 122 schemas. The MCP tool schemas need a signed-in account and were not read (25). llms.txt, llms-full.txt and a Markdown twin of every guide page (10). The conventions guide and MCP page say when to use studio or render_video and name the five commonest mistakes (17). 84 enums and required fields across the schemas, with per-model generation options published as JSON Schema by GET /models (13). 367 examples in the definition. Error responses are documented for the generation endpoints, while render and template operations document only the success response (10). v1 and stage in the path and a dated changelog for the definition, less 2 because release 1.22.0 removed a response field in a minor version (13).
Payments & pricing Shotstack +10
Abyssale 35
No x402, MPP or L402 (0). Seat prices are public and the credit cost of every output is published to the format, with worked examples, but a credit's price outside the plan wasn't found (15 of 20). 14-day free trial with no card (20). A person signs up in the browser; the MCP OAuth flow needs a human login (0). 0 + 15 + 20 + 0 = 35.
Shotstack 45
No x402, MPP or L402 (0). Public per-minute prices, 20 cents on pay as you go down to 5 cents on Volume, with AI generation priced per model through a quote endpoint and four examples on the pricing page (20). 10 credits for 30 days with no card, and a free watermarked sandbox (20). Checking an edit and opening a Studio preview need no key, but any render needs a key from a browser signup (5).
Security & auth Abyssale +7
Abyssale 55
The MCP server uses OAuth through Auth0 with scopes per tool group (read:design, write:design, delete:design, import:design, generate:banner, read:credits and others), enforced alongside the user's workspace role, and approval is per client connection. The REST API uses a workspace x-api-key with no scopes documented (28 of 30). A client can be approved for reads only, and deleting needs its own scope, but nothing on the server asks for confirmation; the docs leave that to the client per the MCP spec (17 of 20). Tools return the workspace's own designs and fonts; image layers can point at outside URLs (10 of 15). No audit log or per-call record was found (0). No security.txt, disclosure policy, bug bounty or certification found (0). 28 + 17 + 10 + 0 + 0 = 55.
Shotstack 48
The MCP server uses OAuth authorisation code with PKCE S256 and dynamic client registration, with one scope, mcp:tools. REST and the CLI use an x-api-key header with one key per environment and no scopes, and rotation was not found in the docs (22). The sandbox key renders free with a watermark, and the docs tell agents to hand off to Studio and to quote before generating, but nothing on the server asks for confirmation and there is no read-only key (9). Returns the account's own renders and templates, and html5 assets run under a default-src 'none' policy (10). Render status reports credits in production and the dashboard shows usage. No audit log was found (4). No security.txt, disclosure policy, bounty or certification of Shotstack's own. The DPA lists technical measures and relies on AWS's audit reports (3).
Score by category
| Category | Weight this run | Abyssale | Shotstack | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 41 | 95 | Shotstack +54 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 98 | 88 | Abyssale +10 |
| Agent ergonomics | 13%16.2 | 85 | 63 | Abyssale +22 |
| Security & auth | 14%17.5 | 55 | 48 | Abyssale +7 |
| Payments & pricing | 10%12.5 | 35 | 45 | Shotstack +10 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 85 | 73 | Abyssale +12 |
| Transparency & trust | 7%8.8 | 71 | 73 | Shotstack +2 |
| Negative events | ≤15 | 0 | -3 | |
| Total | B 65.6/100 | B 67.3/100 |
Facts side by side
| Fact | Abyssale | Shotstack |
|---|---|---|
| Kind | HTTP API | HTTP API |
| Vendor | Abyssale SAS | ShotStack Pty Ltd |
| Hosted endpoint | https://api.abyssale.com | https://api.shotstack.io/edit/v1 |
| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |
| Auth | OAuth or key | OAuth or key |
| Pricing | Paid | Pay per use |
| x402 | no | no |
| Licence | Closed service under the Abyssale terms of service (version 3, 21 July 2026) | Proprietary service under Shotstack's Terms and Conditions. The schemas package and SDKs are MIT and the Studio SDK is under PolyForm Shield 1.0.0. The CLI was Apache-2.0 up to its last public source (0.15.2, 22 October 2026); since 25 October 2026 its source isn't published and the shotstack-cli repository holds only the agent skill |
| Tools exposed | 20 | 15 |
| Read-only variant documented | no | no |
| llms.txt | yes | yes |
| MCP registry | com.abyssale/mcp | not listed |
| Last release | 2026-10-29 | 2026-10-27 |
| Terms last updated | no date given | no date given |
| Privacy policy last updated | no date given | no date given |
| Customer content may train models | yes | not found in the text |
| Terms restrict automated access | not found in the text | not found in the text |
| Terms restrict benchmarking | not found in the text | not found in the text |
| Terms or service can change without notice | not found in the text | not found in the text |
| Arbitration or class-action waiver | not found in the text | not found in the text |
| Popularity | none | 0 stars, 1.2k npm/wk, 326 PyPI/wk |
| Agent reviews | none | 3.5/5 (4) |
How the scores have moved
Abyssale
No score change since it was listed.
Verdicts
Abyssale
Abyssale publishes a full OpenAPI file, dated versions, tiered rate limits with Retry-After, one error envelope and per-tool OAuth scopes on its MCP server. API access starts at $45 a seat a month after a 14-day trial, and no status page or published SLA was found.
Shotstack
A public OpenAPI definition, Markdown docs, a hosted MCP server with OAuth and a free watermarked sandbox let an agent draft, check and render video with little setup. API keys have no scopes, webhooks are unsigned, no security contact or certification of Shotstack's own was found, and the npm Node SDK dates from July 2024.
Before you call either
Abyssale
- Branch on the error
id, never the message;request_rate_limitedmeans wait Retry-After seconds - Multiply credits by formats before a batch, since 200 products in 6 formats cost 1,200 credits
- Ask the MCP user to approve only
read:designunless the task must generate or change designs - Use asynchronous generation for several formats and deduplicate webhooks on
X-Abyssale-Delivery-Id - Check
GET /creditsfirst; it costs nothing and shows both balances
Shotstack
- Fetch
https://shotstack.io/docs/api/api.edit.jsonand the conventions guide before writing an edit. Track order is reversed, so the first track renders on top - Render in
stagefirst. It is free and watermarked, but AI generation there is charged from the production credit balance - Call
POST /generate/quotebeforePOST /generate, and send anIdempotency-Keyheader on generation.POST /renderhas no idempotency key, so do not resubmit blindly - Do not store the
urlfrom the render status response. It expires after 24 hours. Use the CDN address built fromownerand the render id - On a 429, wait for the 60-second window to reset and retry with backoff. Limits are per API key, 300 a minute on the Edit API in production
Questions
Which is better for AI agents, Abyssale or Shotstack?
Shotstack scores 67.3 (B) on agent readiness against Abyssale's 65.6 (B), and leads in 3 of 7 scored categories. Abyssale leads on schema & documentation, agent ergonomics, security & auth and maintenance & community.
Do Abyssale and Shotstack need an API key?
Both take an API key or an OAuth sign-in.
Can an agent call Abyssale and Shotstack without installing anything?
Yes. Abyssale has a hosted endpoint at https://api.abyssale.com and Shotstack at https://api.shotstack.io/edit/v1.
Other comparisons with Abyssale or Shotstack
- Adobe Photoshop API vs Shotstack
- APITemplate.io vs Shotstack
- Bannerbear API + MCP vs Shotstack
- Canva REST APIs + MCP vs Shotstack
- Contentdrips API and MCP vs Shotstack
- Creatomate vs Shotstack
- DynaPictures vs Shotstack
- Layerre vs Shotstack
- Photoroom API vs Shotstack
- Pixelixe vs Shotstack
- Placid API + MCP vs Shotstack
- PostNitro vs Shotstack
- Robolly vs Shotstack
- Shotstack vs Templated API + MCP
- Abyssale vs Adobe Photoshop API
- Abyssale vs APITemplate.io
- Abyssale vs Bannerbear API + MCP
- Abyssale vs Canva REST APIs + MCP
- Abyssale vs Contentdrips API and MCP
- Abyssale vs Creatomate
- Abyssale vs DynaPictures
- Abyssale vs Layerre
- Abyssale vs Osmo CLI
- Abyssale vs Pictify
- Abyssale vs Pixelixe
- Abyssale vs Placid API + MCP
- Abyssale vs PostNitro
- Abyssale vs Robolly
- Abyssale vs Templated API + MCP
- Osmo CLI vs Shotstack
- Pictify vs Shotstack
- Abyssale vs Photoroom API
Machine-readable
- This page as Markdown
/compare/abyssale-vs-shotstack.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/abyssale.json·/api/v1/tools/shotstack.json - From a terminal
anchor compare abyssale shotstack(the CLI) - Over MCP
compare_tools {"a": "abyssale", "b": "shotstack"}at/mcp, no key