{
  "data": {
    "a": {
      "slug": "abyssale",
      "name": "Abyssale",
      "vendor": "Abyssale SAS",
      "vendorUrl": "https://www.abyssale.com",
      "kind": "http-api",
      "category": "design-assets",
      "summary": "Abyssale is a creative automation platform from Paris that renders designs into images, MP4 video, GIFs, HTML5 banner ads and print PDFs, through a REST API, dynamic image URLs, webhooks, official SDKs and a remote MCP server.",
      "url": "https://www.anchorterminal.com/tools/abyssale",
      "markdownUrl": "https://www.anchorterminal.com/tools/abyssale.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/abyssale.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/abyssale.json",
      "dns": "abyssale.grade.anchorterminal.com",
      "license": "Closed service under the Abyssale terms of service (version 3, 21 July 2026)",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.abyssale.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@abyssale/sdk"
        },
        {
          "registry": "pypi",
          "name": "abyssale"
        }
      ],
      "auth": "mixed",
      "authNotes": "REST uses a workspace API key in the `x-api-key` header, created in Workspace settings; test it with `POST /auth`. The MCP server at mcp.abyssale.com uses OAuth through Auth0 with per-tool scopes (`read:design`, `write:design`, `delete:design`, `import:design`, `generate:banner` and others), checked together with the user's workspace role. The two credentials are separate.",
      "pricing": "paid",
      "pricingNotes": "API and MCP come with Pro at $45 a seat a month ($36 yearly) and above; Start at $15 a seat has neither. Suite $75 a seat adds HTML5 and CMYK print PDF. 14-day free trial with no card. Generation credits are charged per format, 1 per image, 1 per second of video, GIF or HTML5, print PDFs by pixel area. Failed generations cost nothing.",
      "priceSummary": "$45 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "Seat subscriptions with credit balances. No x402, MPP or L402 in the OpenAPI, the developer docs or llms.txt (checked 2026-11-06). An empty balance returns 429 with an id, not a payment requirement.",
        "endpoints": []
      },
      "toolCount": 20,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://developers.abyssale.com/",
      "llmsTxt": "https://developers.abyssale.com/llms.txt",
      "openapi": "https://developers.abyssale.com/api.yaml",
      "registryName": "com.abyssale/mcp",
      "capabilities": [
        "design.render",
        "design.templates",
        "design.brand",
        "image.edit",
        "pdf.generate",
        "video.generate"
      ],
      "tags": [
        "hosted",
        "openapi",
        "llms-txt",
        "mcp",
        "remote-mcp",
        "mcp-registry",
        "oauth",
        "api-key",
        "webhooks",
        "sdk",
        "trial",
        "no-card",
        "eu"
      ],
      "lastRelease": "2026-10-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 65.6,
        "grade": "B",
        "agentReady": false,
        "rank": 411,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 3,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 85,
          "maintenance": 85,
          "payments": 35,
          "reliability": 41,
          "schema": 98,
          "security": 55,
          "transparency": 71
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "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.",
        "bestFor": "Multi-format ad creative, video, HTML5 banners and print PDFs from one design, for marketing teams and agencies with an agent in the loop.",
        "strengths": [
          "OpenAPI file, a detailed llms.txt and a dated changelog that lists breaking changes first",
          "Published rate-limit tiers with X-RateLimit headers, Retry-After and distinct 429 ids",
          "MCP scopes per tool group, so a client can read designs without spending credits or deleting",
          "Credit cost per output published to the format, and failed generations aren't charged",
          "Official Node.js and Python SDKs with retry and polling helpers, released October 2026"
        ],
        "weaknesses": [
          "API and MCP need the Pro plan at $45 a seat a month",
          "No status page found, and the SLA is negotiated for Enterprise only",
          "AI training on anonymised customer content is on by default",
          "Design import, the JSON authoring route, is alpha and outside the deprecation policy",
          "No security.txt, disclosure policy or certification found"
        ],
        "agentNotes": [
          "Branch on the error `id`, never the message; `request_rate_limited` means 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:design` unless the task must generate or change designs",
          "Use asynchronous generation for several formats and deduplicate webhooks on `X-Abyssale-Delivery-Id`",
          "Check `GET /credits` first; it costs nothing and shows both balances"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 65.6
          }
        ],
        "editorialScores": {
          "ergonomics": 85,
          "maintenance": 85,
          "payments": 35,
          "reliability": 41,
          "schema": 98,
          "security": 55,
          "transparency": 69
        },
        "provenanceScore": 72,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install @abyssale/sdk",
        "http": "curl -X POST https://api.abyssale.com/auth -H \"x-api-key: $ABYSSALE_API_KEY\"",
        "claudeCode": "claude mcp add --transport http --client-id tpc_iJ7LWqVdzR7c7jf21gMqDQ --callback-port 3418 -s user abyssale_prod https://mcp.abyssale.com/mcp"
      },
      "letme": {
        "capability": "https://letme.dev/design.render",
        "tool": "https://letme.dev/abyssale"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Pro seat (API and MCP)",
          "unit": "seat-month",
          "usd": 45,
          "note": "$36 billed yearly; the Start plan at $15 has no API"
        },
        {
          "item": "Suite seat",
          "unit": "seat-month",
          "usd": 75,
          "note": "$60 billed yearly; adds HTML5 ads and CMYK print PDF"
        }
      ],
      "provenance": {
        "legalEntity": "Abyssale SAS",
        "domain": "abyssale.com",
        "domainRegistered": "2018-07-10",
        "endpointOnVendorDomain": true,
        "terms": "https://www.abyssale.com/terms-of-service",
        "privacy": "https://www.abyssale.com/privacy-policy",
        "statusPage": "",
        "changelog": "https://developers.abyssale.com/rest-api/changelog",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "The terms (version 3, 21 July 2026) and the legal notice name ABYSSALE, an SAS at 49 rue de Ponthieu, 75008 Paris, Paris RCS 878 526 573. The terms give share capital as €1,980.00 and the legal notice as €1,902.80.",
          "The terms forbid extracting, scraping or reusing the platform's databases, including the public template database. Public docs and policy pages were read as data.",
          "www.abyssale.com/robots.txt and developers.abyssale.com/robots.txt allow all paths.",
          "/.well-known/security.txt returns 404. No status page was linked from the site or the docs, and status.abyssale.com did not answer.",
          "RDAP gives abyssale.com a registration date of 10 July 2018."
        ],
        "score": 72
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/abyssale.json",
      "live": {
        "slug": "abyssale",
        "probe": {
          "target": "https://api.abyssale.com",
          "method": "get",
          "lastAt": "2026-11-07T18:20:08.122898698Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 152,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 66,
          "p95ms24h": 171,
          "samples24h": 200,
          "samples30d": 200,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "com.abyssale/mcp",
            "version": "1.0.1",
            "seenAt": "2026-11-07T18:16:28.95801333Z"
          },
          {
            "registry": "npm",
            "name": "@abyssale/sdk",
            "version": "1.9.0",
            "seenAt": "2026-11-06T23:02:19.286863658Z"
          },
          {
            "registry": "pypi",
            "name": "abyssale",
            "version": "1.7.0",
            "released": "2026-10-21",
            "seenAt": "2026-11-06T23:02:19.747808303Z"
          }
        ],
        "npmWeekly": 29,
        "pypiWeekly": 49,
        "securityTxt": {
          "url": "https://abyssale.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:33.168565397Z"
        },
        "llmsTxt": {
          "url": "https://developers.abyssale.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:31:04.477678741Z"
        },
        "pages": [
          {
            "url": "https://developers.abyssale.com/rest-api/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:03:36.173334461Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1c916e422299"
          },
          {
            "url": "https://www.abyssale.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:24:07.939253804Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1756c40b8e19"
          },
          {
            "url": "https://www.abyssale.com/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:24:10.078462035Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "982f9b4f8587"
          }
        ],
        "updatedAt": "2026-11-07T18:20:08.122898698Z"
      }
    },
    "answer": "Abyssale scores 65.6 (B) on agent readiness against Bannerbear API + MCP's 59.6 (C), and leads in 4 of 7 scored categories.",
    "b": {
      "slug": "bannerbear",
      "name": "Bannerbear API + MCP",
      "vendor": "Bannerbear",
      "vendorUrl": "https://www.bannerbear.com",
      "kind": "http-api",
      "category": "design-assets",
      "summary": "Template-based image, PDF and animation rendering, plus video tools and multi-step workflows, over a REST API (V5 since August 2026) and an official MCP server, hosted with OAuth or run locally with an API key.",
      "url": "https://www.anchorterminal.com/tools/bannerbear",
      "markdownUrl": "https://www.anchorterminal.com/tools/bannerbear.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/bannerbear.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/bannerbear.json",
      "dns": "bannerbear.grade.anchorterminal.com",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.bannerbear.com/v5",
      "packages": [
        {
          "registry": "npm",
          "name": "@bannerbear/mcp"
        },
        {
          "registry": "npm",
          "name": "bannerbear"
        },
        {
          "registry": "pypi",
          "name": "bannerbear"
        }
      ],
      "auth": "mixed",
      "authNotes": "Bearer API key for REST. V5 keys (bb_ak_v5_...) can be scoped per resource and action, such as images:write, and restricted to browser origins, and they don't work on V2 endpoints. The hosted MCP uses OAuth. The local MCP takes BANNERBEAR_API_KEY.",
      "pricing": "paid",
      "pricingNotes": "Free trial with 30 API credits and no card. Automate $49 a month (1,000 API credits, 200 AI credits), Scale from $149 a month (10,000 credits, up to 40,000), Enterprise from $299 a month (50,000 credits, up to 2,000,000). An image is 1 credit per format and scale step. Animations are 2 credits a second of output. AI layers and media tools cost extra credits (https://www.bannerbear.com/pricing/).",
      "priceSummary": "$49 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "Subscription credits only. No x402 in the docs or OpenAPI schema (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 63,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 1090,
        "pypiWeekly": 8,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developers.bannerbear.com/v5/",
      "llmsTxt": "https://www.bannerbear.com/llms.txt",
      "openapi": "https://api.bannerbear.com/v5/openapi.json",
      "capabilities": [
        "design.templates",
        "design.render",
        "video.render",
        "image.edit"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "mcp",
        "llms-txt",
        "openapi",
        "no-card",
        "async-jobs",
        "webhooks"
      ],
      "lastRelease": "2026-09-18",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 59.6,
        "grade": "C",
        "agentReady": false,
        "rank": 690,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 4,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 71,
          "maintenance": 67,
          "payments": 35,
          "reliability": 45,
          "schema": 83,
          "security": 57,
          "transparency": 61
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-04"
        },
        "negative": 0,
        "verdict": "Hosted MCP server with OAuth and tool groups chosen by URL path, 30 tools by default, 8 on /workflows, 63 on /all. Privacy policy and terms last updated on 29 June 2021, with no retention periods and two named third parties.",
        "bestFor": "Teams and agents that render branded images, PDFs and short animations from data and want an MCP server they can narrow.",
        "strengths": [
          "Hosted MCP server with OAuth and tool groups chosen by URL path, 30 tools by default, 8 on /workflows, 63 on /all",
          "V5 keys scoped per resource and action, with browser origin allowlists, and the MCP drops tools a key can't call",
          "OpenAPI 3.1 schema for V5 and a dated changelog with four entries between 31 July and 18 September 2026",
          "Official SDKs for Ruby, Node, Python and PHP",
          "Over-quota requests are refused with a 402 rather than billed, and failed tool jobs aren't charged since 9 September 2026"
        ],
        "weaknesses": [
          "Privacy policy and terms last updated on 29 June 2021, with no retention periods and two named third parties",
          "No security.txt, no security page and no certification or bug bounty found",
          "No Retry-After, idempotency key or MCP tool annotations, and five MCP tools delete permanently without confirmation",
          "Status page renders only with JavaScript, and no incident history could be read",
          "No free plan. The trial is 30 credits, and image credits multiply by format and scale"
        ],
        "agentNotes": [
          "Connect to mcp.bannerbear.com/workflows or a comma-separated group path instead of /all, which loads 63 tools",
          "Treat 402 as spent quota and 429 as the 60 POST per 10 second limit, and back off yourself since no Retry-After is sent",
          "Use sync.api.bannerbear.com only for /v5/images, and expect a 408 after 10 seconds",
          "Ask for one format at scale 1 unless you need more, since jpg plus png at scale 2 costs 4 credits",
          "Create a V5 key (bb_ak_v5_) for V5 endpoints, since V2 keys are refused there"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 59.6
          }
        ],
        "editorialScores": {
          "ergonomics": 71,
          "maintenance": 67,
          "payments": 35,
          "reliability": 45,
          "schema": 83,
          "security": 57,
          "transparency": 36
        },
        "provenanceScore": 86,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "lastMoved": "2026-11-04",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl https://api.bannerbear.com/v5/account -H \"Authorization: Bearer $BANNERBEAR_API_KEY\"",
        "claudeCode": "claude mcp add --transport http bannerbear https://mcp.bannerbear.com/",
        "config": {
          "mcpServers": {
            "bannerbear": {
              "args": [
                "-y",
                "@bannerbear/mcp"
              ],
              "command": "npx",
              "env": {
                "BANNERBEAR_API_KEY": "${BANNERBEAR_API_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.templates",
        "tool": "https://letme.dev/bannerbear"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Automate",
          "unit": "month",
          "usd": 49,
          "note": "1,000 API credits and 200 AI credits"
        },
        {
          "item": "Scale",
          "unit": "month",
          "usd": 149,
          "note": "10,000 API credits, higher tiers up to 40,000"
        },
        {
          "item": "Enterprise",
          "unit": "month",
          "usd": 299,
          "note": "50,000 API credits, higher tiers up to 2,000,000"
        }
      ],
      "provenance": {
        "legalEntity": "Twenty Four Twelve Systems Pte. Ltd.",
        "domain": "bannerbear.com",
        "domainRegistered": "2019-12-24",
        "endpointOnVendorDomain": true,
        "terms": "https://www.bannerbear.com/terms/",
        "privacy": "https://www.bannerbear.com/privacy/",
        "statusPage": "https://status.bannerbear.com",
        "changelog": "https://www.bannerbear.com/changelog/",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/bannerbear.json",
      "live": {
        "slug": "bannerbear",
        "probe": {
          "target": "https://api.bannerbear.com/v5",
          "method": "get",
          "lastAt": "2026-11-07T18:20:12.655082505Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 369,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 304,
          "p95ms24h": 383,
          "samples24h": 239,
          "samples30d": 7910,
          "days": [
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.bannerbear.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:47:09.613520669Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@bannerbear/mcp",
            "version": "0.14.0",
            "seenAt": "2026-11-06T23:10:05.381729656Z"
          },
          {
            "registry": "npm",
            "name": "bannerbear",
            "version": "2.0.0",
            "seenAt": "2026-11-06T23:10:05.612233322Z"
          },
          {
            "registry": "pypi",
            "name": "bannerbear",
            "version": "1.2.0",
            "released": "2026-08-17",
            "seenAt": "2026-11-06T23:10:07.584626819Z"
          }
        ],
        "npmWeekly": 43,
        "pypiWeekly": 7,
        "securityTxt": {
          "url": "https://bannerbear.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T15:59:36.083423614Z"
        },
        "llmsTxt": {
          "url": "https://www.bannerbear.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:31:41.625425226Z"
        },
        "domain": {
          "domain": "bannerbear.com",
          "registered": "2019-12-24",
          "source": "https://rdap.verisign.com/com/v1/domain/bannerbear.com",
          "checkedAt": "2026-11-01T14:19:47.116436649Z"
        },
        "pages": [
          {
            "url": "https://www.bannerbear.com/changelog/",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-11-07T14:25:20.96968433Z",
            "changedAt": "2026-10-20T00:09:36.078651063Z",
            "fingerprint": "e870d5e2d067"
          },
          {
            "url": "https://www.bannerbear.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:25:23.351462002Z",
            "changedAt": "2026-10-20T00:09:38.499010974Z",
            "fingerprint": "7593e775cfa8"
          },
          {
            "url": "https://www.bannerbear.com/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:25:25.064882863Z",
            "changedAt": "2026-10-20T00:09:40.328580226Z",
            "fingerprint": "8407cd85f021"
          },
          {
            "url": "https://www.bannerbear.com/terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:25:27.355617325Z",
            "changedAt": "2026-10-20T00:09:42.434701388Z",
            "fingerprint": "b369afa2fccf"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.bannerbear.com/",
          "checkedAt": "2026-11-07T01:42:41.878144214Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:42:41.878144214Z"
        },
        "updatedAt": "2026-11-07T18:20:12.655082505Z"
      }
    },
    "edges": [
      {
        "by": 18,
        "category": "maintenance",
        "leads": "abyssale",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "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.",
          "b": "Newest changelog entry 18 September 2026, 47 days before this check (20, down from 30 on time). Three dated entries since 6 August, 18 August, 9 September and 18 September (20). The MCP repository's 0.14.0 commit is dated 7 October 2026, but its npm publication couldn't be read on 4 November, so it doesn't set recency (as growthbook's unconfirmed SDK). The four SDK repositories' newest tags are from 13 August 2026 (Node and PHP v1.6.0, Python v1.1.0, Ruby v0.3.0), older than the changelog entry. Monthly public changelog. We didn't check support response or the MCP repo's issues (10). Official SDKs in four languages announced in May 2026 and @bannerbear/mcp 0.13.0 published in September 2026, but the MCP server isn't in the official MCP registry, which lists only a third-party Bannerbear server (12). The MCP repo has test scripts but no CI workflow, and depends on @modelcontextprotocol/sdk ^1.12.0 (5)."
        },
        "scores": {
          "a": 85,
          "b": 67
        }
      },
      {
        "by": 15,
        "category": "schema",
        "leads": "abyssale",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "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.",
          "b": "OpenAPI 3.1 schema at api.bannerbear.com/v5/openapi.json, and the MCP server's tools carry typed Zod inputs (25). An llms.txt exists, but it indexes marketing pages and free tools with one link to the API reference and none to V5, MCP or the schema (7). MCP tool descriptions say when to use the tool and what to call next, such as 'call get_template for the full canvas config', and OpenAPI operations say whether they're async (16). Enums, required fields and size limits (100 to 5,000 px) in the schema, but `modifications` is an open object in the OpenAPI (11). Status codes listed in the docs and 4xx bodies carry a message, while the OpenAPI has no examples (9). Versioned paths (/v5) and a dated monthly changelog (15)."
        },
        "scores": {
          "a": 98,
          "b": 83
        }
      },
      {
        "by": 14,
        "category": "ergonomics",
        "leads": "abyssale",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "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.",
          "b": "The hosted server picks tool groups by path. The default set is 30 and /workflows is 8, and a scoped key hides tools it can't use (15 for 11 to 30, plus 8 for profiles and scope filtering). The docs say 63 tools on /all, and the MCP source at 0.14.0 (7 October 2026) adds four media tools outside the default set. Lists take page and limit up to 100, with no field selection (15). Status codes from 400 to 429 documented, 402 for spent quota, and the MCP rejects contradictory inputs with a plain message before the call (15). No idempotency key, no readOnlyHint or destructiveHint in the source, and five tools delete permanently. Polling a 202 job by GET is safe (3). Official SDKs for Ruby, Node, Python and PHP, and the MCP polls renders for you by default (15)."
        },
        "scores": {
          "a": 85,
          "b": 71
        }
      },
      {
        "by": 10,
        "category": "transparency",
        "leads": "abyssale",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service under terms of service version 3 of 21 July 2026, from a Paris SAS with its register number (15). The privacy policy and terms agree on EU hosting on AWS Ireland, deletion timelines and breach notice within 72 hours, but AI model training on anonymised customer content is on by default with a workspace opt-out, and anonymised data may be kept indefinitely (20 of 30). The changelog has Deprecated and Removed sections and refers to a deprecation policy that covers stable endpoints but not alpha ones; the policy's notice period wasn't found (14 of 20). Subprocessors named with locations, among them AWS Ireland, Auth0, Brevo, Intercom and AI providers including OpenAI, Anthropic, Black Forest Labs and Google, some outside the EEA (20). 15 + 20 + 14 + 20 = 69.",
          "b": "Closed service under published terms. The MCP server is MIT per its package.json, though the repo has no `LICENSE` file (15). The privacy policy and terms are both dated 29 June 2021, give no retention periods, and say nothing about the zero data retention the pricing page sells on Enterprise (8). V5 launched on 18 August 2026 with the key change stated, but V2 has no end-of-life date and there's no API deprecation policy, only 30 days' notice for material changes to the terms (8). The privacy policy names Mailchimp and Stripe and no data locations (5)."
        },
        "scores": {
          "a": 71,
          "b": 61
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Abyssale SAS",
        "b": "Bannerbear",
        "name": "Vendor"
      },
      {
        "a": "https://api.abyssale.com",
        "b": "https://api.bannerbear.com/v5",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP, Streamable HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Closed service under the Abyssale terms of service (version 3, 21 July 2026)",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "20",
        "b": "63",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "com.abyssale/mcp",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-29",
        "b": "2026-09-18",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2021-06-29",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2021-06-29",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "1.1k npm/wk, 8 PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "4/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Abyssale scores 65.6 (B) on agent readiness against Bannerbear API + MCP's 59.6 (C), and leads in 4 of 7 scored categories.",
        "question": "Which is better for AI agents, Abyssale or Bannerbear API + MCP?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Abyssale and Bannerbear API + MCP need an API key?"
      },
      {
        "answer": "Yes. Abyssale has a hosted endpoint at https://api.abyssale.com and Bannerbear API + MCP at https://api.bannerbear.com/v5.",
        "question": "Can an agent call Abyssale and Bannerbear API + MCP without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 98 against 83",
          "Agent ergonomics, 85 against 71",
          "Maintenance \u0026 community, 85 against 67",
          "Transparency \u0026 trust, 71 against 61"
        ],
        "also": null,
        "goodFor": "Multi-format ad creative, video, HTML5 banners and print PDFs from one design, for marketing teams and agencies with an agent in the loop.",
        "slug": "abyssale",
        "watchFor": "API and MCP need the Pro plan at $45 a seat a month"
      },
      {
        "aheadOn": null,
        "also": [
          "Runs on your own machine"
        ],
        "goodFor": "Teams and agents that render branded images, PDFs and short animations from data and want an MCP server they can narrow.",
        "slug": "bannerbear",
        "watchFor": "Privacy policy and terms last updated on 29 June 2021, with no retention periods and two named third parties"
      }
    ],
    "history": {
      "abyssale": null,
      "bannerbear": [
        {
          "causes": [
            "time"
          ],
          "date": "2026-11-04",
          "delta": -0.9,
          "from": 60.5,
          "fromGrade": "C",
          "to": 59.6,
          "toGrade": "C"
        }
      ]
    },
    "job": {
      "capability": "design.render",
      "name": "Design rendering"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/apitemplate-io-vs-bannerbear.json",
        "title": "APITemplate.io vs Bannerbear API + MCP",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-bannerbear"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bannerbear-vs-canva.json",
        "title": "Bannerbear API + MCP vs Canva REST APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-canva"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bannerbear-vs-contentdrips.json",
        "title": "Bannerbear API + MCP vs Contentdrips API and MCP",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-contentdrips"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bannerbear-vs-creatomate.json",
        "title": "Bannerbear API + MCP vs Creatomate",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-creatomate"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bannerbear-vs-dynapictures.json",
        "title": "Bannerbear API + MCP vs DynaPictures",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-dynapictures"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bannerbear-vs-layerre.json",
        "title": "Bannerbear API + MCP vs Layerre",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-layerre"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bannerbear-vs-photoroom.json",
        "title": "Bannerbear API + MCP vs Photoroom API",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-photoroom"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bannerbear-vs-pictify.json",
        "title": "Bannerbear API + MCP vs Pictify",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-pictify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bannerbear-vs-pixelixe.json",
        "title": "Bannerbear API + MCP vs Pixelixe",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-pixelixe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bannerbear-vs-placid.json",
        "title": "Bannerbear API + MCP vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-placid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bannerbear-vs-postnitro.json",
        "title": "Bannerbear API + MCP vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-postnitro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bannerbear-vs-robolly.json",
        "title": "Bannerbear API + MCP vs Robolly",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-robolly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bannerbear-vs-shotstack.json",
        "title": "Bannerbear API + MCP vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bannerbear-vs-templated.json",
        "title": "Bannerbear API + MCP vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-templated"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-adobe-photoshop-api.json",
        "title": "Abyssale vs Adobe Photoshop API",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-adobe-photoshop-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-apitemplate-io.json",
        "title": "Abyssale vs APITemplate.io",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-apitemplate-io"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-canva.json",
        "title": "Abyssale vs Canva REST APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-canva"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-contentdrips.json",
        "title": "Abyssale vs Contentdrips API and MCP",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-contentdrips"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-creatomate.json",
        "title": "Abyssale vs Creatomate",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-creatomate"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-dynapictures.json",
        "title": "Abyssale vs DynaPictures",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-dynapictures"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-layerre.json",
        "title": "Abyssale vs Layerre",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-layerre"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-osmo-cli.json",
        "title": "Abyssale vs Osmo CLI",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-osmo-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-pictify.json",
        "title": "Abyssale vs Pictify",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-pictify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-pixelixe.json",
        "title": "Abyssale vs Pixelixe",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-pixelixe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-placid.json",
        "title": "Abyssale vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-placid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-postnitro.json",
        "title": "Abyssale vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-postnitro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-robolly.json",
        "title": "Abyssale vs Robolly",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-robolly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-shotstack.json",
        "title": "Abyssale vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-templated.json",
        "title": "Abyssale vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-templated"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bannerbear-vs-osmo-cli.json",
        "title": "Bannerbear API + MCP vs Osmo CLI",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-osmo-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-photoroom.json",
        "title": "Abyssale vs Photoroom API",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-photoroom"
      },
      {
        "json": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-bannerbear.json",
        "title": "Adobe Photoshop API vs Bannerbear API + MCP",
        "url": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-bannerbear"
      }
    ],
    "panel": null,
    "scores": [
      {
        "abyssale": 41,
        "bannerbear": 45,
        "by": 4,
        "edge": "bannerbear",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "abyssale": 98,
        "bannerbear": 83,
        "by": 15,
        "edge": "abyssale",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "abyssale": 85,
        "bannerbear": 71,
        "by": 14,
        "edge": "abyssale",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "abyssale": 55,
        "bannerbear": 57,
        "by": 2,
        "edge": "bannerbear",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "abyssale": 35,
        "bannerbear": 35,
        "by": 0,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "abyssale": 85,
        "bannerbear": 67,
        "by": 18,
        "edge": "abyssale",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "abyssale": 71,
        "bannerbear": 61,
        "by": 10,
        "edge": "abyssale",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Abyssale scores 65.6 (B) on agent readiness against Bannerbear API + MCP's 59.6 (C), and leads in 4 of 7 scored categories. Both do design rendering.",
    "tasks": null,
    "tutorials": [],
    "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.",
      "bannerbear": "Hosted MCP server with OAuth and tool groups chosen by URL path, 30 tools by default, 8 on /workflows, 63 on /all. Privacy policy and terms last updated on 29 June 2021, with no retention periods and two named third parties."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/abyssale-vs-bannerbear",
    "json": "https://www.anchorterminal.com/compare/abyssale-vs-bannerbear.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/abyssale-vs-bannerbear.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/abyssale-vs-bannerbear.min.md"
  },
  "markdown": "Abyssale scores 65.6 (B) on agent readiness against Bannerbear API + MCP's 59.6 (C), and leads in 4 of 7 scored categories. Both do design rendering.\n\n- Abyssale: grade B, 65.6/100, rank #411 of 1486. Markdown https://www.anchorterminal.com/tools/abyssale.md · JSON https://www.anchorterminal.com/api/v1/tools/abyssale.json\n- Bannerbear API + MCP: grade C, 59.6/100, rank #690 of 1486. Markdown https://www.anchorterminal.com/tools/bannerbear.md · JSON https://www.anchorterminal.com/api/v1/tools/bannerbear.json\n- Best programmatic image and design asset APIs for AI agents: https://www.anchorterminal.com/best/design-assets/index.md\n- All 153 assets comparisons: https://www.anchorterminal.com/compare/design-assets/index.md\n\n## Which one, for what\n\n### Abyssale (B)\n\nGood 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.\n\nAhead on:\n- Schema \u0026 documentation, 98 against 83\n- Agent ergonomics, 85 against 71\n- Maintenance \u0026 community, 85 against 67\n- Transparency \u0026 trust, 71 against 61\n\nWatch for: API and MCP need the Pro plan at $45 a seat a month\n\n### Bannerbear API + MCP (C)\n\nGood for: Teams and agents that render branded images, PDFs and short animations from data and want an MCP server they can narrow.\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: Privacy policy and terms last updated on 29 June 2021, with no retention periods and two named third parties\n\n\n## Why the edge\n\n### Maintenance \u0026 community: Abyssale +18\n\n- 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.\n- Bannerbear API + MCP (67): Newest changelog entry 18 September 2026, 47 days before this check (20, down from 30 on time). Three dated entries since 6 August, 18 August, 9 September and 18 September (20). The MCP repository's 0.14.0 commit is dated 7 October 2026, but its npm publication couldn't be read on 4 November, so it doesn't set recency (as growthbook's unconfirmed SDK). The four SDK repositories' newest tags are from 13 August 2026 (Node and PHP v1.6.0, Python v1.1.0, Ruby v0.3.0), older than the changelog entry. Monthly public changelog. We didn't check support response or the MCP repo's issues (10). Official SDKs in four languages announced in May 2026 and @bannerbear/mcp 0.13.0 published in September 2026, but the MCP server isn't in the official MCP registry, which lists only a third-party Bannerbear server (12). The MCP repo has test scripts but no CI workflow, and depends on @modelcontextprotocol/sdk ^1.12.0 (5).\n\n### Schema \u0026 documentation: Abyssale +15\n\n- 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.\n- Bannerbear API + MCP (83): OpenAPI 3.1 schema at api.bannerbear.com/v5/openapi.json, and the MCP server's tools carry typed Zod inputs (25). An llms.txt exists, but it indexes marketing pages and free tools with one link to the API reference and none to V5, MCP or the schema (7). MCP tool descriptions say when to use the tool and what to call next, such as 'call get_template for the full canvas config', and OpenAPI operations say whether they're async (16). Enums, required fields and size limits (100 to 5,000 px) in the schema, but `modifications` is an open object in the OpenAPI (11). Status codes listed in the docs and 4xx bodies carry a message, while the OpenAPI has no examples (9). Versioned paths (/v5) and a dated monthly changelog (15).\n\n### Agent ergonomics: Abyssale +14\n\n- 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.\n- Bannerbear API + MCP (71): The hosted server picks tool groups by path. The default set is 30 and /workflows is 8, and a scoped key hides tools it can't use (15 for 11 to 30, plus 8 for profiles and scope filtering). The docs say 63 tools on /all, and the MCP source at 0.14.0 (7 October 2026) adds four media tools outside the default set. Lists take page and limit up to 100, with no field selection (15). Status codes from 400 to 429 documented, 402 for spent quota, and the MCP rejects contradictory inputs with a plain message before the call (15). No idempotency key, no readOnlyHint or destructiveHint in the source, and five tools delete permanently. Polling a 202 job by GET is safe (3). Official SDKs for Ruby, Node, Python and PHP, and the MCP polls renders for you by default (15).\n\n### Transparency \u0026 trust: Abyssale +10\n\n- Abyssale (71): Closed service under terms of service version 3 of 21 July 2026, from a Paris SAS with its register number (15). The privacy policy and terms agree on EU hosting on AWS Ireland, deletion timelines and breach notice within 72 hours, but AI model training on anonymised customer content is on by default with a workspace opt-out, and anonymised data may be kept indefinitely (20 of 30). The changelog has Deprecated and Removed sections and refers to a deprecation policy that covers stable endpoints but not alpha ones; the policy's notice period wasn't found (14 of 20). Subprocessors named with locations, among them AWS Ireland, Auth0, Brevo, Intercom and AI providers including OpenAI, Anthropic, Black Forest Labs and Google, some outside the EEA (20). 15 + 20 + 14 + 20 = 69.\n- Bannerbear API + MCP (61): Closed service under published terms. The MCP server is MIT per its package.json, though the repo has no `LICENSE` file (15). The privacy policy and terms are both dated 29 June 2021, give no retention periods, and say nothing about the zero data retention the pricing page sells on Enterprise (8). V5 launched on 18 August 2026 with the key change stated, but V2 has no end-of-life date and there's no API deprecation policy, only 30 days' notice for material changes to the terms (8). The privacy policy names Mailchimp and Stripe and no data locations (5).\n\n## Score by category\n\n| Category | Weight | Abyssale | Bannerbear API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 41 | 45 | Bannerbear API + MCP +4 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 98 | 83 | Abyssale +15 |\n| Agent ergonomics | 13% (16.2 this run) | 85 | 71 | Abyssale +14 |\n| Security \u0026 auth | 14% (17.5 this run) | 55 | 57 | Bannerbear API + MCP +2 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 35 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 85 | 67 | Abyssale +18 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 71 | 61 | Abyssale +10 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **65.6 · B** | **59.6 · C** | |\n\n## Facts side by side\n\n| Fact | Abyssale | Bannerbear API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Abyssale SAS | Bannerbear |\n| Hosted endpoint | `https://api.abyssale.com` | `https://api.bannerbear.com/v5` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | Closed service under the Abyssale terms of service (version 3, 21 July 2026) | none |\n| Tools exposed | 20 | 63 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | `com.abyssale/mcp` | not listed |\n| Last release | 2026-10-29 | 2026-09-18 |\n| Terms last updated | no date given | 2021-06-29 |\n| Privacy policy last updated | no date given | 2021-06-29 |\n| Customer content may train models | yes | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | none | 1.1k npm/wk, 8 PyPI/wk |\n| Agent reviews | none | 4/5 (2) |\n\n## How the scores have moved\n\n### Abyssale\n\nNo score change since it was listed.\n\n### Bannerbear API + MCP\n\n- -0.9 on 4 November 2026: time\n\n## Verdicts\n\n**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.\n\n**Bannerbear API + MCP.** Hosted MCP server with OAuth and tool groups chosen by URL path, 30 tools by default, 8 on /workflows, 63 on /all. Privacy policy and terms last updated on 29 June 2021, with no retention periods and two named third parties.\n\n## Before you call either\n\n### Abyssale\n\n1. Branch on the error `id`, never the message; `request_rate_limited` means wait Retry-After seconds\n2. Multiply credits by formats before a batch, since 200 products in 6 formats cost 1,200 credits\n3. Ask the MCP user to approve only `read:design` unless the task must generate or change designs\n4. Use asynchronous generation for several formats and deduplicate webhooks on `X-Abyssale-Delivery-Id`\n5. Check `GET /credits` first; it costs nothing and shows both balances\n\n### Bannerbear API + MCP\n\n1. Connect to mcp.bannerbear.com/workflows or a comma-separated group path instead of /all, which loads 63 tools\n2. Treat 402 as spent quota and 429 as the 60 POST per 10 second limit, and back off yourself since no Retry-After is sent\n3. Use sync.api.bannerbear.com only for /v5/images, and expect a 408 after 10 seconds\n4. Ask for one format at scale 1 unless you need more, since jpg plus png at scale 2 costs 4 credits\n5. Create a V5 key (bb_ak_v5_) for V5 endpoints, since V2 keys are refused there\n\n## Questions\n\n### Which is better for AI agents, Abyssale or Bannerbear API + MCP?\n\nAbyssale scores 65.6 (B) on agent readiness against Bannerbear API + MCP's 59.6 (C), and leads in 4 of 7 scored categories.\n\n### Do Abyssale and Bannerbear API + MCP need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Abyssale and Bannerbear API + MCP without installing anything?\n\nYes. Abyssale has a hosted endpoint at https://api.abyssale.com and Bannerbear API + MCP at https://api.bannerbear.com/v5.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/abyssale-vs-bannerbear.json, and with the fewest tokens: https://www.anchorterminal.com/compare/abyssale-vs-bannerbear.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"abyssale\", \"b\": \"bannerbear\"}`. From a terminal: `anchor compare abyssale bannerbear`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/abyssale.json and https://www.anchorterminal.com/api/v1/tools/bannerbear.json\n\n## Other comparisons with Abyssale or Bannerbear API + MCP\n\n- [APITemplate.io vs Bannerbear API + MCP](https://www.anchorterminal.com/compare/apitemplate-io-vs-bannerbear.md)\n- [Bannerbear API + MCP vs Canva REST APIs + MCP](https://www.anchorterminal.com/compare/bannerbear-vs-canva.md)\n- [Bannerbear API + MCP vs Contentdrips API and MCP](https://www.anchorterminal.com/compare/bannerbear-vs-contentdrips.md)\n- [Bannerbear API + MCP vs Creatomate](https://www.anchorterminal.com/compare/bannerbear-vs-creatomate.md)\n- [Bannerbear API + MCP vs DynaPictures](https://www.anchorterminal.com/compare/bannerbear-vs-dynapictures.md)\n- [Bannerbear API + MCP vs Layerre](https://www.anchorterminal.com/compare/bannerbear-vs-layerre.md)\n- [Bannerbear API + MCP vs Photoroom API](https://www.anchorterminal.com/compare/bannerbear-vs-photoroom.md)\n- [Bannerbear API + MCP vs Pictify](https://www.anchorterminal.com/compare/bannerbear-vs-pictify.md)\n- [Bannerbear API + MCP vs Pixelixe](https://www.anchorterminal.com/compare/bannerbear-vs-pixelixe.md)\n- [Bannerbear API + MCP vs Placid API + MCP](https://www.anchorterminal.com/compare/bannerbear-vs-placid.md)\n- [Bannerbear API + MCP vs PostNitro](https://www.anchorterminal.com/compare/bannerbear-vs-postnitro.md)\n- [Bannerbear API + MCP vs Robolly](https://www.anchorterminal.com/compare/bannerbear-vs-robolly.md)\n- [Bannerbear API + MCP vs Shotstack](https://www.anchorterminal.com/compare/bannerbear-vs-shotstack.md)\n- [Bannerbear API + MCP vs Templated API + MCP](https://www.anchorterminal.com/compare/bannerbear-vs-templated.md)\n- [Abyssale vs Adobe Photoshop API](https://www.anchorterminal.com/compare/abyssale-vs-adobe-photoshop-api.md)\n- [Abyssale vs APITemplate.io](https://www.anchorterminal.com/compare/abyssale-vs-apitemplate-io.md)\n- [Abyssale vs Canva REST APIs + MCP](https://www.anchorterminal.com/compare/abyssale-vs-canva.md)\n- [Abyssale vs Contentdrips API and MCP](https://www.anchorterminal.com/compare/abyssale-vs-contentdrips.md)\n- [Abyssale vs Creatomate](https://www.anchorterminal.com/compare/abyssale-vs-creatomate.md)\n- [Abyssale vs DynaPictures](https://www.anchorterminal.com/compare/abyssale-vs-dynapictures.md)\n- [Abyssale vs Layerre](https://www.anchorterminal.com/compare/abyssale-vs-layerre.md)\n- [Abyssale vs Osmo CLI](https://www.anchorterminal.com/compare/abyssale-vs-osmo-cli.md)\n- [Abyssale vs Pictify](https://www.anchorterminal.com/compare/abyssale-vs-pictify.md)\n- [Abyssale vs Pixelixe](https://www.anchorterminal.com/compare/abyssale-vs-pixelixe.md)\n- [Abyssale vs Placid API + MCP](https://www.anchorterminal.com/compare/abyssale-vs-placid.md)\n- [Abyssale vs PostNitro](https://www.anchorterminal.com/compare/abyssale-vs-postnitro.md)\n- [Abyssale vs Robolly](https://www.anchorterminal.com/compare/abyssale-vs-robolly.md)\n- [Abyssale vs Shotstack](https://www.anchorterminal.com/compare/abyssale-vs-shotstack.md)\n- [Abyssale vs Templated API + MCP](https://www.anchorterminal.com/compare/abyssale-vs-templated.md)\n- [Bannerbear API + MCP vs Osmo CLI](https://www.anchorterminal.com/compare/bannerbear-vs-osmo-cli.md)\n- [Abyssale vs Photoroom API](https://www.anchorterminal.com/compare/abyssale-vs-photoroom.md)\n- [Adobe Photoshop API vs Bannerbear API + MCP](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-bannerbear.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Abyssale vs Bannerbear API + MCP",
        "url": ""
      }
    ],
    "description": "Abyssale scores 65.6 (B) to Bannerbear's 59.6 (C) for design rendering. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Abyssale B 65.6",
      "Bannerbear API + MCP C 59.6",
      "scores"
    ],
    "h1": "Abyssale vs Bannerbear API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/abyssale-vs-bannerbear",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Abyssale vs Bannerbear for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/abyssale-vs-bannerbear"
  },
  "tokens": {
    "markdown": 4200,
    "slim": 2230
  },
  "version": 1
}
