{
  "data": {
    "a": {
      "slug": "canva",
      "name": "Canva REST APIs + MCP",
      "vendor": "Canva",
      "vendorUrl": "https://www.canva.dev",
      "kind": "http-api",
      "category": "design-assets",
      "summary": "Canva's REST APIs and hosted MCP server connect applications and agents to its design platform.",
      "url": "https://www.anchorterminal.com/tools/canva",
      "markdownUrl": "https://www.anchorterminal.com/tools/canva.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/canva.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/canva.json",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.canva.com/rest/v1",
      "packages": [],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 authorisation code flow with PKCE (S256) against https://www.canva.com/api/oauth/authorize, with scopes such as design:content, asset:read and brandtemplate:meta chosen per app in the Developer Portal. Every call runs as one Canva user, so there's no server-to-server key. The MCP server at mcp.canva.com also uses per-user OAuth. Integrators register a client in the Developer Portal or, for CIMD clients, through a waitlist.",
      "pricing": "byo-plan",
      "pricingNotes": "No separate API fee. What the API and MCP can do follows the user's Canva plan. Free covers design generation, editing, search, export, comments and asset upload. Pro, Business and Enterprise add autofill, brand templates, brand kits, resize and pro-quality export. Canva says usage limits for autofill will come later. Private apps need Enterprise (https://www.canva.com/pricing/).",
      "priceSummary": "Your plan",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "Per-user OAuth on Canva plans. No x402 in the docs or OpenAPI description (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 33,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://www.canva.dev/docs/apps/rest-apis/",
      "llmsTxt": "https://www.canva.dev/llms.txt",
      "openapi": "https://www.canva.dev/sources/connect/api/latest/api.yml",
      "registryName": "com.canva.mcp/mcp",
      "capabilities": [
        "design.templates",
        "design.render",
        "design.brand",
        "video.render"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "mcp",
        "llms-txt",
        "openapi",
        "async-jobs",
        "webhooks"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 64.3,
        "grade": "B",
        "agentReady": false,
        "rank": 319,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 59,
          "maintenance": 85,
          "payments": 30,
          "reliability": 64,
          "schema": 95,
          "security": 63,
          "transparency": 83
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -3,
        "negativeNotes": [
          "2026-09-18. The MP4 `quality` parameter on the GA export job API changed from a fixed output size to a target pixel count without a new API version, which the deprecation policy requires for breaking changes. Canva logged it the same day as a bug fix, so we deduct at the low end. https://www.canva.dev/docs/apps/rest-apis/changelog/"
        ],
        "verdict": "OpenAPI 3.0 with 59 described operations, per-user rate limits and a 78-value error code enum. No server-to-server key, so unattended batch rendering has to run under one user's OAuth grant.",
        "bestFor": "Agents working for people or teams who already use Canva and need editable, on-brand designs filled from data.",
        "strengths": [
          "OpenAPI 3.0 with 59 described operations, per-user rate limits and a 78-value error code enum",
          "OAuth with PKCE and 18 read and write scopes, every action attributable to one user",
          "Written deprecation policy with at least 6 months' notice and a dated changelog updated on 1 October 2026",
          "Bugcrowd bug bounty, disclosure policy, SOC 2 Type 2 and ISO 27001",
          "Exports to PNG, JPG, GIF, PDF, PPTX, MP4 and HTML, and the result stays editable in Canva"
        ],
        "weaknesses": [
          "No server-to-server key, so unattended batch rendering has to run under one user's OAuth grant",
          "25 of 59 operations are preview and can change without a new version",
          "MP4 export quality changed meaning on 18 September 2026 without a new API version",
          "Content is used to train Canva's models by default unless the user opts out in settings",
          "No official SDK, and MCP edits need a start, operate and commit sequence"
        ],
        "agentNotes": [
          "Call the user capabilities endpoint before autofill, brand templates or resize, which need Pro or above",
          "Poll export, upload and autofill jobs with exponential backoff and download results within 24 hours",
          "Commit an MCP editing transaction after perform-editing-operations, or the changes don't land",
          "Expect license_required on export when a design holds premium elements",
          "Read `page_number`, not the deprecated `index`, from Get design pages"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 64.3
          }
        ],
        "editorialScores": {
          "ergonomics": 59,
          "maintenance": 85,
          "payments": 30,
          "reliability": 64,
          "schema": 95,
          "security": 63,
          "transparency": 71
        },
        "provenanceScore": 95
      },
      "connect": {
        "http": "curl https://api.canva.com/rest/v1/users/me -H \"Authorization: Bearer $CANVA_ACCESS_TOKEN\"",
        "claudeCode": "claude mcp add --transport http canva https://mcp.canva.com/mcp"
      },
      "letme": {
        "capability": "https://letme.dev/design.templates",
        "tool": "https://letme.dev/canva"
      },
      "area": "design-diagrams",
      "provenance": {
        "legalEntity": "Canva Pty Ltd",
        "domain": "canva.com",
        "domainRegistered": "2001-05-05",
        "endpointOnVendorDomain": true,
        "terms": "https://www.canva.com/policies/terms-of-use/",
        "privacy": "https://www.canva.com/policies/privacy-policy/",
        "statusPage": "https://www.canvastatus.com",
        "changelog": "https://www.canva.dev/docs/apps/rest-apis/changelog/",
        "securityTxt": "valid",
        "checked": "2026-09-30",
        "notes": [
          "Developer docs live on canva.dev. The API is served from api.canva.com",
          "security.txt lists a bug bounty, disclosure policy and trust centre but has no Expires field"
        ],
        "score": 95
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/canva.json",
      "live": {
        "slug": "canva",
        "probe": {
          "target": "https://api.canva.com/rest/v1",
          "method": "get",
          "lastAt": "2026-10-09T10:42:39.147063712Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 132,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 128,
          "p95ms24h": 177,
          "samples24h": 260,
          "samples30d": 2300,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 114,
              "ok": 114
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.canvastatus.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-09T10:41:27.518668747Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "com.canva.mcp/mcp",
            "version": "1.0.0",
            "seenAt": "2026-10-09T02:57:46.004536428Z"
          }
        ],
        "securityTxt": {
          "url": "https://canva.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-10-08T15:38:34.274236163Z"
        },
        "llmsTxt": {
          "url": "https://www.canva.dev/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-08T14:00:10.237346609Z"
        },
        "domain": {
          "domain": "canva.com",
          "registered": "2001-05-05",
          "source": "https://rdap.verisign.com/com/v1/domain/canva.com",
          "checkedAt": "2026-10-04T13:10:37.911167719Z"
        },
        "pages": [
          {
            "url": "https://www.canva.dev/docs/apps/rest-apis/changelog/",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-08T18:26:52.259715541Z",
            "changedAt": "2026-10-06T16:14:20.206147434Z",
            "fingerprint": "e15bd0d4a37e"
          },
          {
            "url": "https://www.canva.dev/docs/apps/llms.txt",
            "kind": "deprecations",
            "status": 0,
            "checkedAt": "2026-10-08T18:26:52.127865741Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "blockedByRobots": true
          },
          {
            "url": "https://www.canva.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-08T18:26:55.766891355Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9fd21481e687"
          },
          {
            "url": "https://www.canva.com/policies/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:26:51.204569556Z",
            "changedAt": "2026-10-06T16:14:18.034522395Z",
            "fingerprint": "e90a5d594598"
          },
          {
            "url": "https://www.canva.com/policies/terms-of-use/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:26:53.798853094Z",
            "changedAt": "2026-10-06T16:14:20.799802666Z",
            "fingerprint": "8422ab742c4e"
          }
        ],
        "updatedAt": "2026-10-09T10:42:39.147063712Z"
      }
    },
    "answer": "Canva REST APIs + MCP scores 64.3 (B) on agent readiness against Creatomate's 47.7 (D), and leads in 5 of 7 scored categories. Creatomate leads on agent ergonomics and payments \u0026 pricing.",
    "b": {
      "slug": "creatomate",
      "name": "Creatomate",
      "vendor": "Creatomate",
      "vendorUrl": "https://creatomate.com",
      "kind": "http-api",
      "category": "design-assets",
      "summary": "Creatomate renders videos, images and GIFs from templates or from RenderScript, its JSON format. Agents reach it through a REST API with a project key or a hosted MCP server with OAuth.",
      "url": "https://www.anchorterminal.com/tools/creatomate",
      "markdownUrl": "https://www.anchorterminal.com/tools/creatomate.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/creatomate.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/creatomate.json",
      "repo": "https://github.com/creatomate/creatomate-node",
      "license": "Proprietary service under Creatomate's Terms and Conditions. The Node, PHP and Preview SDK libraries on GitHub are MIT",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.creatomate.com/v2",
      "packages": [
        {
          "registry": "npm",
          "name": "creatomate"
        },
        {
          "registry": "npm",
          "name": "@creatomate/preview"
        }
      ],
      "auth": "mixed",
      "authNotes": "REST calls take a project API key as a bearer token. Each project has one key, copied from Project Settings after a browser signup, with no scopes found in the docs. The MCP server uses OAuth (authorisation code with PKCE S256, dynamic client registration, one scope, `mcp`), and each connection reaches one project. It also accepts the project key as a bearer token for headless use. Connections are listed and revoked under Account Settings.",
      "pricing": "paid",
      "pricingNotes": "Trial with 50 credits and no card, with output limited to 480 px per side. Paid plans are monthly credit allowances that do not carry over. The docs name Essential at $54 a month (2,000 credits) and Growth 10K at $129 (10,000 credits). Other plan prices are drawn by a Paddle script and were not read. An image is 1 credit and video is width x height x frame rate x seconds / 100,000,000 (checked 2026-10-08).",
      "priceSummary": "$54 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "Subscription credits billed through Paddle. No x402, MPP or L402 in the docs, llms.txt or pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 8,
      "popularity": {
        "githubStars": 9,
        "npmWeekly": 12714,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://creatomate.com/docs/api/reference/introduction",
      "llmsTxt": "https://creatomate.com/llms.txt",
      "capabilities": [
        "design.templates",
        "design.render",
        "video.render"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "mcp",
        "oauth",
        "llms-txt",
        "async-jobs",
        "webhooks",
        "video",
        "images"
      ],
      "lastRelease": "2026-09-03",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 47.7,
        "grade": "D",
        "agentReady": false,
        "rank": 737,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 67,
          "maintenance": 34,
          "payments": 35,
          "reliability": 40,
          "schema": 53,
          "security": 48,
          "transparency": 51
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "A hosted MCP server with eight tools, OAuth with PKCE and per-project connections sits beside a small REST API whose errors carry a hint and a documentation link, and `dry_run` validates a render at no cost. No status page, changelog, OpenAPI file or security contact was found, and the terms and privacy policy date from June 2022.",
        "bestFor": "Teams that render video, images and GIFs from templates or JSON and want an agent to draft templates and start renders through MCP.",
        "strengths": [
          "Hosted MCP server at `https://api.creatomate.com/mcp` with eight named tools, OAuth authorisation code with PKCE and dynamic client registration",
          "Every API failure returns a `hint` and a `documentation` URL, confirmed first-hand on a 401",
          "`dry_run` on `POST /v2/renders` validates a request and returns the effective source with no credits spent",
          "Rate limit of 30 requests per 10 seconds is documented, with `X-RateLimit-*` headers on every response and `Retry-After` on 429",
          "Trial with 50 credits and no card, and a public credit formula (1 credit an image, 1 credit per 100 million video pixels)"
        ],
        "weaknesses": [
          "No status page, incident history or SLA found. `status.creatomate.com` does not resolve",
          "No OpenAPI file and no changelog. `/v1` and `/v2` routes are both documented with no deprecation policy",
          "Plan prices on the pricing page are drawn by a Paddle script. The docs name only $54 (Essential) and $129 (Growth 10K)",
          "No security.txt, disclosure policy or certification found, and REST keys have no scopes",
          "Terms and privacy policy are dated 27 June 2022, define the Service as the website, and let Creatomate make user Content available to other users"
        ],
        "agentNotes": [
          "Send `\"dry_run\": true` to `POST /v2/renders` before a paid render. It returns `valid`, `errors`, `warnings` and the effective source",
          "Read `warnings` on every render response. A modification keyed to an unknown element or property name is ignored without an error",
          "Keep under 30 requests per 10 seconds across the whole account, and wait for `Retry-After` on a 429",
          "Download each file when the webhook fires. Renders, their URLs and their status records are deleted after 30 days",
          "Use `render_scale` 0.5 for draft videos, about a quarter of the credits, and remember MCP `create_render` spends credits without a confirmation step from the server"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 47.7
          }
        ],
        "editorialScores": {
          "ergonomics": 67,
          "maintenance": 34,
          "payments": 35,
          "reliability": 40,
          "schema": 53,
          "security": 48,
          "transparency": 37
        },
        "provenanceScore": 65
      },
      "connect": {
        "install": "npm install creatomate",
        "http": "curl -X POST https://api.creatomate.com/v2/renders -H \"Content-Type: application/json\" -H \"Authorization: Bearer $CREATOMATE_API_KEY\" -d '{\"template_id\": \"YOUR_TEMPLATE_ID\", \"dry_run\": true, \"modifications\": {\"Title-1\": \"Your headline here\"}}'",
        "claudeCode": "claude mcp add creatomate --transport http https://api.creatomate.com/mcp",
        "config": {
          "mcpServers": {
            "creatomate": {
              "url": "https://api.creatomate.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.templates",
        "tool": "https://letme.dev/creatomate"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Essential",
          "unit": "month",
          "usd": 54,
          "note": "2,000 credits, price as stated in the docs"
        },
        {
          "item": "Growth 10K",
          "unit": "month",
          "usd": 129,
          "note": "10,000 credits, price as stated in the docs"
        }
      ],
      "provenance": {
        "legalEntity": "Creatomate",
        "domain": "creatomate.com",
        "domainRegistered": "2021-03-27",
        "endpointOnVendorDomain": true,
        "terms": "https://creatomate.com/terms-of-service",
        "privacy": "https://creatomate.com/privacy-policy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The terms and privacy policy name the company as Creatomate, Leeuwarden, The Netherlands, with no legal form. The site footer gives the Dutch company number 90174356.",
          "Both documents are dated 27 June 2022 and define the Service as the website. They are the only terms and privacy policy published, and the terms cover subscriptions, so they govern API use. No DPA was found.",
          "The API and the MCP server answer at api.creatomate.com, and rendered files are served from cdn.creatomate.com.",
          "creatomate.com/.well-known/security.txt returns 404.",
          "No status page was found. status.creatomate.com does not resolve, and no page we read links to one.",
          "No changelog was found. /changelog returns 404 and /docs/changelog redirects to the docs introduction.",
          "RDAP for creatomate.com gives a registration date of 2021-03-27 and Cloudflare, Inc. as registrar."
        ],
        "score": 65
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/creatomate.json",
      "live": {
        "slug": "creatomate",
        "probe": {
          "target": "https://api.creatomate.com/v2",
          "method": "get",
          "lastAt": "2026-10-09T10:42:40.569383919Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 261,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 474,
          "p95ms24h": 575,
          "samples24h": 33,
          "samples30d": 33,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 33,
              "ok": 33
            }
          ]
        },
        "updatedAt": "2026-10-09T10:42:40.569383919Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Canva",
        "b": "Creatomate",
        "name": "Vendor"
      },
      {
        "a": "https://api.canva.com/rest/v1",
        "b": "https://api.creatomate.com/v2",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Your plan",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "none",
        "b": "Proprietary service under Creatomate's Terms and Conditions. The Node, PHP and Preview SDK libraries on GitHub are MIT",
        "name": "Licence"
      },
      {
        "a": "33",
        "b": "8",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "com.canva.mcp/mcp",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-01",
        "b": "2026-09-03",
        "name": "Last release"
      },
      {
        "a": "2026-08-19",
        "b": "2022-06-27",
        "name": "Terms last updated"
      },
      {
        "a": "2026-08-25",
        "b": "2022-06-27",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes, with an opt-out",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "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": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "9 stars, 13k npm/wk",
        "name": "Popularity"
      },
      {
        "a": "3/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Canva REST APIs + MCP scores 64.3 (B) on agent readiness against Creatomate's 47.7 (D), and leads in 5 of 7 scored categories. Creatomate leads on agent ergonomics and payments \u0026 pricing.",
        "question": "Which is better for AI agents, Canva REST APIs + MCP or Creatomate?"
      },
      {
        "answer": "Canva REST APIs + MCP uses an OAuth sign-in. Creatomate takes an API key or an OAuth sign-in.",
        "question": "Do Canva REST APIs + MCP and Creatomate need an API key?"
      },
      {
        "answer": "Yes. Canva REST APIs + MCP has a hosted endpoint at https://api.canva.com/rest/v1 and Creatomate at https://api.creatomate.com/v2.",
        "question": "Can an agent call Canva REST APIs + MCP and Creatomate without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 64 against 40",
          "Schema \u0026 documentation, 95 against 53",
          "Security \u0026 auth, 63 against 48",
          "Maintenance \u0026 community, 85 against 34",
          "Transparency \u0026 trust, 83 against 51"
        ],
        "also": null,
        "goodFor": "Agents working for people or teams who already use Canva and need editable, on-brand designs filled from data.",
        "slug": "canva",
        "watchFor": "No server-to-server key, so unattended batch rendering has to run under one user's OAuth grant"
      },
      {
        "aheadOn": [
          "Agent ergonomics, 67 against 59",
          "Payments \u0026 pricing, 35 against 30"
        ],
        "also": [
          "No incidents deducted, where Canva REST APIs + MCP loses 3 points for them"
        ],
        "goodFor": "Teams that render video, images and GIFs from templates or JSON and want an agent to draft templates and start renders through MCP.",
        "slug": "creatomate",
        "watchFor": "No status page, incident history or SLA found. `status.creatomate.com` does not resolve"
      }
    ],
    "job": {
      "capability": "design.templates",
      "name": "Design templates"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-canva.json",
        "title": "Adobe Photoshop API vs Canva REST APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-canva"
      },
      {
        "json": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-creatomate.json",
        "title": "Adobe Photoshop API vs Creatomate",
        "url": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-creatomate"
      },
      {
        "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-creatomate.json",
        "title": "Bannerbear API + MCP vs Creatomate",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-creatomate"
      },
      {
        "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/canva-vs-shotstack.json",
        "title": "Canva REST APIs + MCP vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/canva-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/canva-vs-templated.json",
        "title": "Canva REST APIs + MCP vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/canva-vs-templated"
      },
      {
        "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/creatomate-vs-shotstack.json",
        "title": "Creatomate vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/creatomate-vs-templated.json",
        "title": "Creatomate vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-templated"
      },
      {
        "json": "https://www.anchorterminal.com/compare/canva-vs-osmo-cli.json",
        "title": "Canva REST APIs + MCP vs Osmo CLI",
        "url": "https://www.anchorterminal.com/compare/canva-vs-osmo-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/creatomate-vs-osmo-cli.json",
        "title": "Creatomate vs Osmo CLI",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-osmo-cli"
      }
    ],
    "scores": [
      {
        "by": 24,
        "canva": 64,
        "creatomate": 40,
        "edge": "canva",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 42,
        "canva": 95,
        "creatomate": 53,
        "edge": "canva",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 8,
        "canva": 59,
        "creatomate": 67,
        "edge": "creatomate",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 15,
        "canva": 63,
        "creatomate": 48,
        "edge": "canva",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 5,
        "canva": 30,
        "creatomate": 35,
        "edge": "creatomate",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 51,
        "canva": 85,
        "creatomate": 34,
        "edge": "canva",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 32,
        "canva": 83,
        "creatomate": 51,
        "edge": "canva",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Canva REST APIs + MCP scores 64.3 (B) on agent readiness against Creatomate's 47.7 (D), and leads in 5 of 7 scored categories. Creatomate leads on agent ergonomics and payments \u0026 pricing. Both do design templates.",
    "verdicts": {
      "canva": "OpenAPI 3.0 with 59 described operations, per-user rate limits and a 78-value error code enum. No server-to-server key, so unattended batch rendering has to run under one user's OAuth grant.",
      "creatomate": "A hosted MCP server with eight tools, OAuth with PKCE and per-project connections sits beside a small REST API whose errors carry a hint and a documentation link, and `dry_run` validates a render at no cost. No status page, changelog, OpenAPI file or security contact was found, and the terms and privacy policy date from June 2022."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/canva-vs-creatomate",
    "json": "https://www.anchorterminal.com/compare/canva-vs-creatomate.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/canva-vs-creatomate.md",
    "slim": "https://www.anchorterminal.com/compare/canva-vs-creatomate.min.md"
  },
  "markdown": "Canva REST APIs + MCP scores 64.3 (B) on agent readiness against Creatomate's 47.7 (D), and leads in 5 of 7 scored categories. Creatomate leads on agent ergonomics and payments \u0026 pricing. Both do design templates.\n\n- Canva REST APIs + MCP: grade B, 64.3/100, rank #319 of 842. Markdown https://www.anchorterminal.com/tools/canva.md · JSON https://www.anchorterminal.com/api/v1/tools/canva.json\n- Creatomate: grade D, 47.7/100, rank #737 of 842. Markdown https://www.anchorterminal.com/tools/creatomate.md · JSON https://www.anchorterminal.com/api/v1/tools/creatomate.json\n\n## Which one, for what\n\n### Canva REST APIs + MCP (B)\n\nGood for: Agents working for people or teams who already use Canva and need editable, on-brand designs filled from data.\n\nAhead on:\n- Reliability, 64 against 40\n- Schema \u0026 documentation, 95 against 53\n- Security \u0026 auth, 63 against 48\n- Maintenance \u0026 community, 85 against 34\n- Transparency \u0026 trust, 83 against 51\n\nWatch for: No server-to-server key, so unattended batch rendering has to run under one user's OAuth grant\n\n### Creatomate (D)\n\nGood for: Teams that render video, images and GIFs from templates or JSON and want an agent to draft templates and start renders through MCP.\n\nAhead on:\n- Agent ergonomics, 67 against 59\n- Payments \u0026 pricing, 35 against 30\n\nAlso in its favour:\n- No incidents deducted, where Canva REST APIs + MCP loses 3 points for them\n\nWatch for: No status page, incident history or SLA found. `status.creatomate.com` does not resolve\n\n\n## Score by category\n\n| Category | Weight | Canva REST APIs + MCP | Creatomate | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 64 | 40 | Canva REST APIs + MCP +24 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 95 | 53 | Canva REST APIs + MCP +42 |\n| Agent ergonomics | 13% (16.2 this run) | 59 | 67 | Creatomate +8 |\n| Security \u0026 auth | 14% (17.5 this run) | 63 | 48 | Canva REST APIs + MCP +15 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 35 | Creatomate +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 85 | 34 | Canva REST APIs + MCP +51 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 83 | 51 | Canva REST APIs + MCP +32 |\n| Negative events | ≤15 | -3 | 0 | |\n| **Total** | | **64.3 · B** | **47.7 · D** | |\n\n## Facts side by side\n\n| Fact | Canva REST APIs + MCP | Creatomate |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Canva | Creatomate |\n| Hosted endpoint | `https://api.canva.com/rest/v1` | `https://api.creatomate.com/v2` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth | OAuth or key |\n| Pricing | Your plan | Paid |\n| x402 | no | no |\n| Licence | none | Proprietary service under Creatomate's Terms and Conditions. The Node, PHP and Preview SDK libraries on GitHub are MIT |\n| Tools exposed | 33 | 8 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | `com.canva.mcp/mcp` | not listed |\n| Last release | 2026-10-01 | 2026-09-03 |\n| Terms last updated | 2026-08-19 | 2022-06-27 |\n| Privacy policy last updated | 2026-08-25 | 2022-06-27 |\n| Customer content may train models | yes, with an opt-out | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | yes | 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 | yes | not found in the text |\n| Popularity | none | 9 stars, 13k npm/wk |\n| Agent reviews | 3/5 (2) | none |\n\n## Verdicts\n\n**Canva REST APIs + MCP.** OpenAPI 3.0 with 59 described operations, per-user rate limits and a 78-value error code enum. No server-to-server key, so unattended batch rendering has to run under one user's OAuth grant.\n\n**Creatomate.** A hosted MCP server with eight tools, OAuth with PKCE and per-project connections sits beside a small REST API whose errors carry a hint and a documentation link, and `dry_run` validates a render at no cost. No status page, changelog, OpenAPI file or security contact was found, and the terms and privacy policy date from June 2022.\n\n## Before you call either\n\n### Canva REST APIs + MCP\n\n1. Call the user capabilities endpoint before autofill, brand templates or resize, which need Pro or above\n2. Poll export, upload and autofill jobs with exponential backoff and download results within 24 hours\n3. Commit an MCP editing transaction after perform-editing-operations, or the changes don't land\n4. Expect license_required on export when a design holds premium elements\n5. Read `page_number`, not the deprecated `index`, from Get design pages\n\n### Creatomate\n\n1. Send `\"dry_run\": true` to `POST /v2/renders` before a paid render. It returns `valid`, `errors`, `warnings` and the effective source\n2. Read `warnings` on every render response. A modification keyed to an unknown element or property name is ignored without an error\n3. Keep under 30 requests per 10 seconds across the whole account, and wait for `Retry-After` on a 429\n4. Download each file when the webhook fires. Renders, their URLs and their status records are deleted after 30 days\n5. Use `render_scale` 0.5 for draft videos, about a quarter of the credits, and remember MCP `create_render` spends credits without a confirmation step from the server\n\n## Questions\n\n### Which is better for AI agents, Canva REST APIs + MCP or Creatomate?\n\nCanva REST APIs + MCP scores 64.3 (B) on agent readiness against Creatomate's 47.7 (D), and leads in 5 of 7 scored categories. Creatomate leads on agent ergonomics and payments \u0026 pricing.\n\n### Do Canva REST APIs + MCP and Creatomate need an API key?\n\nCanva REST APIs + MCP uses an OAuth sign-in. Creatomate takes an API key or an OAuth sign-in.\n\n### Can an agent call Canva REST APIs + MCP and Creatomate without installing anything?\n\nYes. Canva REST APIs + MCP has a hosted endpoint at https://api.canva.com/rest/v1 and Creatomate at https://api.creatomate.com/v2.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/canva-vs-creatomate.json, and with the fewest tokens: https://www.anchorterminal.com/compare/canva-vs-creatomate.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"canva\", \"b\": \"creatomate\"}`. From a terminal: `anchor compare canva creatomate`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/canva.json and https://www.anchorterminal.com/api/v1/tools/creatomate.json\n\n## Other comparisons with Canva REST APIs + MCP or Creatomate\n\n- [Adobe Photoshop API vs Canva REST APIs + MCP](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-canva.md)\n- [Adobe Photoshop API vs Creatomate](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-creatomate.md)\n- [Bannerbear API + MCP vs Canva REST APIs + MCP](https://www.anchorterminal.com/compare/bannerbear-vs-canva.md)\n- [Bannerbear API + MCP vs Creatomate](https://www.anchorterminal.com/compare/bannerbear-vs-creatomate.md)\n- [Canva REST APIs + MCP vs Placid API + MCP](https://www.anchorterminal.com/compare/canva-vs-placid.md)\n- [Canva REST APIs + MCP vs Shotstack](https://www.anchorterminal.com/compare/canva-vs-shotstack.md)\n- [Canva REST APIs + MCP vs Templated API + MCP](https://www.anchorterminal.com/compare/canva-vs-templated.md)\n- [Creatomate vs Placid API + MCP](https://www.anchorterminal.com/compare/creatomate-vs-placid.md)\n- [Creatomate vs Shotstack](https://www.anchorterminal.com/compare/creatomate-vs-shotstack.md)\n- [Creatomate vs Templated API + MCP](https://www.anchorterminal.com/compare/creatomate-vs-templated.md)\n- [Canva REST APIs + MCP vs Osmo CLI](https://www.anchorterminal.com/compare/canva-vs-osmo-cli.md)\n- [Creatomate vs Osmo CLI](https://www.anchorterminal.com/compare/creatomate-vs-osmo-cli.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Canva REST APIs + MCP vs Creatomate",
        "url": ""
      }
    ],
    "description": "Canva REST APIs + MCP scores 64.3 (B) on agent readiness against Creatomate's 47.7 (D), and leads in 5 of 7 scored categories. Creatomate leads on agent ergonomics and payments \u0026 pricing. Both do design templates. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Canva REST APIs + MCP B 64.3",
      "Creatomate D 47.7",
      "scores"
    ],
    "h1": "Canva REST APIs + MCP vs Creatomate",
    "image": "https://www.anchorterminal.com/assets/og/compare-canva-vs-creatomate.png",
    "path": "/compare/canva-vs-creatomate",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Canva REST APIs + MCP vs Creatomate for AI agents, B 64.3 vs D 47.7",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/canva-vs-creatomate"
  },
  "tokens": {
    "markdown": 2150,
    "slim": 730
  },
  "version": 1
}
