{
  "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 Placid API + MCP's 43 (E), and leads in 5 of 7 scored categories. Placid API + MCP leads on reliability.",
    "b": {
      "slug": "placid",
      "name": "Placid API + MCP",
      "vendor": "Placid",
      "vendorUrl": "https://placid.app",
      "kind": "http-api",
      "category": "design-assets",
      "summary": "Template rendering to images, PDFs and videos through a REST API, a URL API and an MCP server, with an embeddable template editor SDK.",
      "url": "https://www.anchorterminal.com/tools/placid",
      "markdownUrl": "https://www.anchorterminal.com/tools/placid.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/placid.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/placid.json",
      "dns": "placid.grade.anchorterminal.com",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.placid.app/api/rest",
      "packages": [],
      "auth": "api-key",
      "authNotes": "Project-scoped API token, sent as a bearer token in the Authorization header. The MCP server has a per-project URL and takes the token as a bearer header or, where a client can't set headers, as ?api_token= in the URL.",
      "pricing": "paid",
      "pricingNotes": "Free trial, and unlimited watermarked previews in test mode. Basic $19 a month (500 credits), Pro $39 (2,500), Business $89 (25,000), VIP $249 (100,000). Yearly billing is 10 times the monthly price. 1 image is 1 credit (up to 4,000 px), 10 seconds of video is 10 credits, 1 PDF page is 2 credits (https://placid.app/pricing).",
      "priceSummary": "$19 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "Subscription credits only. No x402 in the docs (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://placid.app/docs/2.0/introduction",
      "capabilities": [
        "design.templates",
        "design.render",
        "video.render"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "mcp",
        "async-jobs",
        "webhooks"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 43,
        "grade": "E",
        "agentReady": false,
        "rank": 1244,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 14,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 40,
          "maintenance": 7,
          "payments": 35,
          "reliability": 75,
          "schema": 34,
          "security": 34,
          "transparency": 58
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Hyperping status page with separate App and API components and 90-day history. No OpenAPI, no llms.txt, and the MCP tool list isn't published.",
        "bestFor": "Small teams and no-code builders who want template renders to image, PDF and video at a low monthly price, and agents that should be fenced to a few templates.",
        "strengths": [
          "Hyperping status page with separate App and API components and 90-day history",
          "Rate-limit headers (Limit, Remaining, Reset) and exponential backoff guidance documented",
          "Unlimited watermarked previews in test mode, and a trial with no card",
          "MCP settings restrict which templates and which output types an agent can use",
          "Named Austrian legal entity, privacy policy updated in November 2024, DPA on request"
        ],
        "weaknesses": [
          "No OpenAPI, no llms.txt, and the MCP tool list isn't published",
          "MCP setup guide documents the API token in the URL query string",
          "Changelog has no dates, so there's no public record of recent changes",
          "PHP and Laravel libraries last tagged on 2022-07-20, pointing at the older placid.app/api/rest base",
          "Subprocessors and hosting location aren't disclosed"
        ],
        "agentNotes": [
          "Send the token in the `Authorization` header, not as ?api_token=, wherever the client allows it",
          "Read X-RateLimit-Remaining and wait for X-RateLimit-Reset after a 429",
          "Use test mode for watermarked previews while matching layer names, then switch to live renders",
          "Leave create_now off for batches, since it caps at 10 at once and may fail under load",
          "Poll the returned polling_url or pass webhook_success, since images start as queued"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 43
          }
        ],
        "editorialScores": {
          "ergonomics": 40,
          "maintenance": 7,
          "payments": 35,
          "reliability": 75,
          "schema": 34,
          "security": 34,
          "transparency": 33
        },
        "provenanceScore": 83,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-01",
            "maintenance": "2026-10-01",
            "payments": "2026-10-01",
            "reliability": "2026-10-01",
            "schema": "2026-10-01",
            "security": "2026-10-01",
            "transparency": "2026-10-01"
          },
          "last": "2026-10-01",
          "lastMoved": "2026-10-27",
          "oldest": "2026-10-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl https://api.placid.app/api/rest/templates -H \"Authorization: Bearer $PLACID_API_TOKEN\"",
        "claudeCode": "claude mcp add --transport http placid https://mcp.placid.app/\u003cyour-project-url\u003e --header \"Authorization: Bearer $PLACID_API_TOKEN\""
      },
      "letme": {
        "capability": "https://letme.dev/design.templates",
        "tool": "https://letme.dev/placid"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Basic",
          "unit": "month",
          "usd": 19,
          "note": "500 credits, $190 billed yearly"
        },
        {
          "item": "Pro",
          "unit": "month",
          "usd": 39,
          "note": "2,500 credits, $390 billed yearly"
        },
        {
          "item": "Business",
          "unit": "month",
          "usd": 89,
          "note": "25,000 credits, $890 billed yearly"
        },
        {
          "item": "VIP",
          "unit": "month",
          "usd": 249,
          "note": "100,000 credits, $2,490 billed yearly"
        }
      ],
      "provenance": {
        "legalEntity": "Nifty Software GmbH",
        "domain": "placid.app",
        "domainRegistered": "2018-05-08",
        "endpointOnVendorDomain": true,
        "terms": "https://placid.app/terms-and-conditions",
        "privacy": "https://placid.app/privacy",
        "statusPage": "https://status.placid.app",
        "changelog": "https://headwayapp.co/placid-changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The changelog is hosted on Headway (headwayapp.co), not on placid.app"
        ],
        "score": 83
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/placid.json",
      "live": {
        "slug": "placid",
        "probe": {
          "target": "https://api.placid.app/api/rest",
          "method": "get",
          "lastAt": "2026-11-07T18:20:47.319012301Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 207,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.99,
          "p50ms24h": 169,
          "p95ms24h": 282,
          "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": 250,
              "ok": 250
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "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": 184
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.placid.app",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:48:36.694737265Z"
        },
        "securityTxt": {
          "url": "https://placid.app/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T15:59:42.59382187Z"
        },
        "domain": {
          "domain": "placid.app",
          "registered": "2018-05-08",
          "source": "https://pubapi.registry.google/rdap/domain/placid.app",
          "checkedAt": "2026-11-01T14:12:11.788930956Z"
        },
        "pages": [
          {
            "url": "https://headwayapp.co/placid-changelog",
            "kind": "changelog",
            "status": 0,
            "checkedAt": "2026-11-07T14:10:51.649582378Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "blockedByRobots": true
          },
          {
            "url": "https://placid.app/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:16:31.049458005Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "99e692b08293"
          },
          {
            "url": "https://placid.app/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:16:33.283749241Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "4ce631cc70ce"
          },
          {
            "url": "https://placid.app/terms-and-conditions",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:16:35.47662252Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c733087a07e6"
          }
        ],
        "updatedAt": "2026-11-07T18:20:47.319012301Z"
      }
    },
    "edges": [
      {
        "by": 78,
        "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": "We found no dated release or API change. The Headway changelog has no dates, its entries mention Integromat and a v2.0 launch, and /changelog on placid.app returns 404 (0). No dated entries in the last 90 days (0). Support by email named in the error docs, public changelog stale (4). Official PHP and Laravel libraries were last tagged v1.0.1 on 2022-07-20 and still call placid.app/api/rest (3). No CI on either library (0)."
        },
        "scores": {
          "a": 85,
          "b": 7
        }
      },
      {
        "by": 64,
        "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": "No OpenAPI or other machine-readable contract, and the MCP tool definitions aren't published (0). /llms.txt returns 404 (0). Endpoint pages state purpose and warn that create_now may fail under high load (12). template_uuid is the one required field and status is an enum, but `layers` and `modifications` are open objects keyed by layer name (8). Request and response examples per endpoint, and an error page with six codes but no body format (9). Docs are versioned 2.0, but the changelog on Headway carries no dates and its newest entries predate the MCP server (5)."
        },
        "scores": {
          "a": 98,
          "b": 34
        }
      },
      {
        "by": 45,
        "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": "Image, PDF and video objects are small and the MCP can be limited to chosen templates and creative types (15). We found no pagination or filter parameters on the pages we read (5). Six status codes documented without an error body format (10). No idempotency key, no MCP tool annotations we could see, and DELETE removes an image for good. Polling the polling_url is safe (3). Only template_uuid is required, but the official libraries are PHP and Laravel only, both last tagged v1.0.1 on 2022-07-20 (7)."
        },
        "scores": {
          "a": 85,
          "b": 40
        }
      },
      {
        "by": 34,
        "category": "reliability",
        "leads": "placid",
        "name": "Reliability",
        "reasons": {
          "a": "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.",
          "b": "Hyperping status page at status.placid.app with separate App and API components and 90-day bars (20). No incidents are posted. The page's own figure for the API is 99.963 per cent over 90 days, roughly 48 minutes of recorded downtime with no write-up, so minor rather than clean (20). 60 requests a minute and 10 simultaneous create_now requests, documented (15). X-RateLimit-Limit, -Remaining and -Reset headers and exponential backoff advice on 429, but no idempotency key or safe-retry note for renders, which are writes (10). No SLA found on the pricing page or in the docs (0). REST API 2.0 is GA (10)."
        },
        "scores": {
          "a": 41,
          "b": 75
        }
      },
      {
        "by": 21,
        "category": "security",
        "leads": "abyssale",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "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.",
          "b": "One bearer token per project, no scopes, and the docs say nothing on revoking or rotating it (15). The MCP setup guide documents ?api_token= in the server URL for clients that can't set headers, less 10 (5). MCP settings restrict which templates and which output types (image, PDF, video, docs only) the server can use (14). Returns renders from your own templates (10). A dashboard activity log is mentioned in the changelog, nothing per call documented (5). No security.txt (404), no certification in the privacy policy and no disclosure policy found (0)."
        },
        "scores": {
          "a": 55,
          "b": 34
        }
      },
      {
        "by": 13,
        "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, per the 30 September check (15). Privacy policy updated 18 November 2024, a DPA on request, and raw request data kept 'for a limited amount of time' with no period stated (12). No deprecation policy or dated notices. The old changelog says v1 remains functional (3). Subprocessor categories only, with 'We don't publish further details of our data processors', and no hosting location (3)."
        },
        "scores": {
          "a": 71,
          "b": 58
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Abyssale SAS",
        "b": "Placid",
        "name": "Vendor"
      },
      {
        "a": "https://api.abyssale.com",
        "b": "https://api.placid.app/api/rest",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API 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": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "com.abyssale/mcp",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-29",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2024-11-25",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2024-11-18",
        "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": "yes",
        "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": "3.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Abyssale scores 65.6 (B) on agent readiness against Placid API + MCP's 43 (E), and leads in 5 of 7 scored categories. Placid API + MCP leads on reliability.",
        "question": "Which is better for AI agents, Abyssale or Placid API + MCP?"
      },
      {
        "answer": "Abyssale takes an API key or an OAuth sign-in. Placid API + MCP needs an API key.",
        "question": "Do Abyssale and Placid API + MCP need an API key?"
      },
      {
        "answer": "Yes. Abyssale has a hosted endpoint at https://api.abyssale.com and Placid API + MCP at https://api.placid.app/api/rest.",
        "question": "Can an agent call Abyssale and Placid API + MCP without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 98 against 34",
          "Agent ergonomics, 85 against 40",
          "Security \u0026 auth, 55 against 34",
          "Maintenance \u0026 community, 85 against 7",
          "Transparency \u0026 trust, 71 against 58"
        ],
        "also": [
          "Free to start without a card"
        ],
        "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": [
          "Reliability, 75 against 41"
        ],
        "also": null,
        "goodFor": "Small teams and no-code builders who want template renders to image, PDF and video at a low monthly price, and agents that should be fenced to a few templates.",
        "slug": "placid",
        "watchFor": "No OpenAPI, no llms.txt, and the MCP tool list isn't published"
      }
    ],
    "history": {
      "abyssale": null,
      "placid": [
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 42.9,
          "fromGrade": "E",
          "to": 43,
          "toGrade": "E"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.3,
          "from": 43.2,
          "fromGrade": "E",
          "to": 42.9,
          "toGrade": "E"
        }
      ]
    },
    "job": {
      "capability": "design.render",
      "name": "Design rendering"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-placid.json",
        "title": "Adobe Photoshop API vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-placid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apitemplate-io-vs-placid.json",
        "title": "APITemplate.io vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-placid"
      },
      {
        "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/canva-vs-placid.json",
        "title": "Canva REST APIs + MCP vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/canva-vs-placid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/contentdrips-vs-placid.json",
        "title": "Contentdrips API and MCP vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/contentdrips-vs-placid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/creatomate-vs-placid.json",
        "title": "Creatomate vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-placid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dynapictures-vs-placid.json",
        "title": "DynaPictures vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/dynapictures-vs-placid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/layerre-vs-placid.json",
        "title": "Layerre vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/layerre-vs-placid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photoroom-vs-placid.json",
        "title": "Photoroom API vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/photoroom-vs-placid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pixelixe-vs-placid.json",
        "title": "Pixelixe vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/pixelixe-vs-placid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/placid-vs-postnitro.json",
        "title": "Placid API + MCP vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/placid-vs-postnitro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/placid-vs-robolly.json",
        "title": "Placid API + MCP vs Robolly",
        "url": "https://www.anchorterminal.com/compare/placid-vs-robolly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/placid-vs-shotstack.json",
        "title": "Placid API + MCP vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/placid-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/placid-vs-templated.json",
        "title": "Placid API + MCP vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/placid-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-bannerbear.json",
        "title": "Abyssale vs Bannerbear API + MCP",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-bannerbear"
      },
      {
        "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-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/osmo-cli-vs-placid.json",
        "title": "Osmo CLI vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/osmo-cli-vs-placid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pictify-vs-placid.json",
        "title": "Pictify vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/pictify-vs-placid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-photoroom.json",
        "title": "Abyssale vs Photoroom API",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-photoroom"
      }
    ],
    "panel": null,
    "scores": [
      {
        "abyssale": 41,
        "by": 34,
        "edge": "placid",
        "key": "reliability",
        "name": "Reliability",
        "placid": 75,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "abyssale": 98,
        "by": 64,
        "edge": "abyssale",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "placid": 34,
        "weight": 13
      },
      {
        "abyssale": 85,
        "by": 45,
        "edge": "abyssale",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "placid": 40,
        "weight": 13
      },
      {
        "abyssale": 55,
        "by": 21,
        "edge": "abyssale",
        "key": "security",
        "name": "Security \u0026 auth",
        "placid": 34,
        "weight": 14
      },
      {
        "abyssale": 35,
        "by": 0,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "placid": 35,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "abyssale": 85,
        "by": 78,
        "edge": "abyssale",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "placid": 7,
        "weight": 7
      },
      {
        "abyssale": 71,
        "by": 13,
        "edge": "abyssale",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "placid": 58,
        "weight": 7
      }
    ],
    "summary": "Abyssale scores 65.6 (B) on agent readiness against Placid API + MCP's 43 (E), and leads in 5 of 7 scored categories. Placid API + MCP leads on reliability. 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.",
      "placid": "Hyperping status page with separate App and API components and 90-day history. No OpenAPI, no llms.txt, and the MCP tool list isn't published."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/abyssale-vs-placid",
    "json": "https://www.anchorterminal.com/compare/abyssale-vs-placid.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/abyssale-vs-placid.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/abyssale-vs-placid.min.md"
  },
  "markdown": "Abyssale scores 65.6 (B) on agent readiness against Placid API + MCP's 43 (E), and leads in 5 of 7 scored categories. Placid API + MCP leads on reliability. 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- Placid API + MCP: grade E, 43/100, rank #1244 of 1486. Markdown https://www.anchorterminal.com/tools/placid.md · JSON https://www.anchorterminal.com/api/v1/tools/placid.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 34\n- Agent ergonomics, 85 against 40\n- Security \u0026 auth, 55 against 34\n- Maintenance \u0026 community, 85 against 7\n- Transparency \u0026 trust, 71 against 58\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: API and MCP need the Pro plan at $45 a seat a month\n\n### Placid API + MCP (E)\n\nGood for: Small teams and no-code builders who want template renders to image, PDF and video at a low monthly price, and agents that should be fenced to a few templates.\n\nAhead on:\n- Reliability, 75 against 41\n\nWatch for: No OpenAPI, no llms.txt, and the MCP tool list isn't published\n\n\n## Why the edge\n\n### Maintenance \u0026 community: Abyssale +78\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- Placid API + MCP (7): We found no dated release or API change. The Headway changelog has no dates, its entries mention Integromat and a v2.0 launch, and /changelog on placid.app returns 404 (0). No dated entries in the last 90 days (0). Support by email named in the error docs, public changelog stale (4). Official PHP and Laravel libraries were last tagged v1.0.1 on 2022-07-20 and still call placid.app/api/rest (3). No CI on either library (0).\n\n### Schema \u0026 documentation: Abyssale +64\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- Placid API + MCP (34): No OpenAPI or other machine-readable contract, and the MCP tool definitions aren't published (0). /llms.txt returns 404 (0). Endpoint pages state purpose and warn that create_now may fail under high load (12). template_uuid is the one required field and status is an enum, but `layers` and `modifications` are open objects keyed by layer name (8). Request and response examples per endpoint, and an error page with six codes but no body format (9). Docs are versioned 2.0, but the changelog on Headway carries no dates and its newest entries predate the MCP server (5).\n\n### Agent ergonomics: Abyssale +45\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- Placid API + MCP (40): Image, PDF and video objects are small and the MCP can be limited to chosen templates and creative types (15). We found no pagination or filter parameters on the pages we read (5). Six status codes documented without an error body format (10). No idempotency key, no MCP tool annotations we could see, and DELETE removes an image for good. Polling the polling_url is safe (3). Only template_uuid is required, but the official libraries are PHP and Laravel only, both last tagged v1.0.1 on 2022-07-20 (7).\n\n### Reliability: Placid API + MCP +34\n\n- 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.\n- Placid API + MCP (75): Hyperping status page at status.placid.app with separate App and API components and 90-day bars (20). No incidents are posted. The page's own figure for the API is 99.963 per cent over 90 days, roughly 48 minutes of recorded downtime with no write-up, so minor rather than clean (20). 60 requests a minute and 10 simultaneous create_now requests, documented (15). X-RateLimit-Limit, -Remaining and -Reset headers and exponential backoff advice on 429, but no idempotency key or safe-retry note for renders, which are writes (10). No SLA found on the pricing page or in the docs (0). REST API 2.0 is GA (10).\n\n### Security \u0026 auth: Abyssale +21\n\n- 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.\n- Placid API + MCP (34): One bearer token per project, no scopes, and the docs say nothing on revoking or rotating it (15). The MCP setup guide documents ?api_token= in the server URL for clients that can't set headers, less 10 (5). MCP settings restrict which templates and which output types (image, PDF, video, docs only) the server can use (14). Returns renders from your own templates (10). A dashboard activity log is mentioned in the changelog, nothing per call documented (5). No security.txt (404), no certification in the privacy policy and no disclosure policy found (0).\n\n### Transparency \u0026 trust: Abyssale +13\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- Placid API + MCP (58): Closed service under published terms, per the 30 September check (15). Privacy policy updated 18 November 2024, a DPA on request, and raw request data kept 'for a limited amount of time' with no period stated (12). No deprecation policy or dated notices. The old changelog says v1 remains functional (3). Subprocessor categories only, with 'We don't publish further details of our data processors', and no hosting location (3).\n\n## Score by category\n\n| Category | Weight | Abyssale | Placid API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 41 | 75 | Placid API + MCP +34 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 98 | 34 | Abyssale +64 |\n| Agent ergonomics | 13% (16.2 this run) | 85 | 40 | Abyssale +45 |\n| Security \u0026 auth | 14% (17.5 this run) | 55 | 34 | Abyssale +21 |\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 | 7 | Abyssale +78 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 71 | 58 | Abyssale +13 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **65.6 · B** | **43 · E** | |\n\n## Facts side by side\n\n| Fact | Abyssale | Placid API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Abyssale SAS | Placid |\n| Hosted endpoint | `https://api.abyssale.com` | `https://api.placid.app/api/rest` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | API 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 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| MCP registry | `com.abyssale/mcp` | not listed |\n| Last release | 2026-10-29 | none |\n| Terms last updated | no date given | 2024-11-25 |\n| Privacy policy last updated | no date given | 2024-11-18 |\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 | yes |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Agent reviews | none | 3.5/5 (2) |\n\n## How the scores have moved\n\n### Abyssale\n\nNo score change since it was listed.\n\n### Placid API + MCP\n\n- +0.1 on 27 October 2026: checklist\n- -0.3 on 8 October 2026: checklist\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**Placid API + MCP.** Hyperping status page with separate App and API components and 90-day history. No OpenAPI, no llms.txt, and the MCP tool list isn't published.\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### Placid API + MCP\n\n1. Send the token in the `Authorization` header, not as ?api_token=, wherever the client allows it\n2. Read X-RateLimit-Remaining and wait for X-RateLimit-Reset after a 429\n3. Use test mode for watermarked previews while matching layer names, then switch to live renders\n4. Leave create_now off for batches, since it caps at 10 at once and may fail under load\n5. Poll the returned polling_url or pass webhook_success, since images start as queued\n\n## Questions\n\n### Which is better for AI agents, Abyssale or Placid API + MCP?\n\nAbyssale scores 65.6 (B) on agent readiness against Placid API + MCP's 43 (E), and leads in 5 of 7 scored categories. Placid API + MCP leads on reliability.\n\n### Do Abyssale and Placid API + MCP need an API key?\n\nAbyssale takes an API key or an OAuth sign-in. Placid API + MCP needs an API key.\n\n### Can an agent call Abyssale and Placid API + MCP without installing anything?\n\nYes. Abyssale has a hosted endpoint at https://api.abyssale.com and Placid API + MCP at https://api.placid.app/api/rest.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/abyssale-vs-placid.json, and with the fewest tokens: https://www.anchorterminal.com/compare/abyssale-vs-placid.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"abyssale\", \"b\": \"placid\"}`. From a terminal: `anchor compare abyssale placid`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/abyssale.json and https://www.anchorterminal.com/api/v1/tools/placid.json\n\n## Other comparisons with Abyssale or Placid API + MCP\n\n- [Adobe Photoshop API vs Placid API + MCP](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-placid.md)\n- [APITemplate.io vs Placid API + MCP](https://www.anchorterminal.com/compare/apitemplate-io-vs-placid.md)\n- [Bannerbear API + MCP vs Placid API + MCP](https://www.anchorterminal.com/compare/bannerbear-vs-placid.md)\n- [Canva REST APIs + MCP vs Placid API + MCP](https://www.anchorterminal.com/compare/canva-vs-placid.md)\n- [Contentdrips API and MCP vs Placid API + MCP](https://www.anchorterminal.com/compare/contentdrips-vs-placid.md)\n- [Creatomate vs Placid API + MCP](https://www.anchorterminal.com/compare/creatomate-vs-placid.md)\n- [DynaPictures vs Placid API + MCP](https://www.anchorterminal.com/compare/dynapictures-vs-placid.md)\n- [Layerre vs Placid API + MCP](https://www.anchorterminal.com/compare/layerre-vs-placid.md)\n- [Photoroom API vs Placid API + MCP](https://www.anchorterminal.com/compare/photoroom-vs-placid.md)\n- [Pixelixe vs Placid API + MCP](https://www.anchorterminal.com/compare/pixelixe-vs-placid.md)\n- [Placid API + MCP vs PostNitro](https://www.anchorterminal.com/compare/placid-vs-postnitro.md)\n- [Placid API + MCP vs Robolly](https://www.anchorterminal.com/compare/placid-vs-robolly.md)\n- [Placid API + MCP vs Shotstack](https://www.anchorterminal.com/compare/placid-vs-shotstack.md)\n- [Placid API + MCP vs Templated API + MCP](https://www.anchorterminal.com/compare/placid-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 Bannerbear API + MCP](https://www.anchorterminal.com/compare/abyssale-vs-bannerbear.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 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- [Osmo CLI vs Placid API + MCP](https://www.anchorterminal.com/compare/osmo-cli-vs-placid.md)\n- [Pictify vs Placid API + MCP](https://www.anchorterminal.com/compare/pictify-vs-placid.md)\n- [Abyssale vs Photoroom API](https://www.anchorterminal.com/compare/abyssale-vs-photoroom.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 Placid API + MCP",
        "url": ""
      }
    ],
    "description": "Abyssale scores 65.6 (B) to Placid's 43 (E) for design rendering. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Abyssale B 65.6",
      "Placid API + MCP E 43",
      "scores"
    ],
    "h1": "Abyssale vs Placid API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/abyssale-vs-placid",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Abyssale vs Placid for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/abyssale-vs-placid"
  },
  "tokens": {
    "markdown": 4600,
    "slim": 2680
  },
  "version": 1
}
