{
  "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.6,
        "grade": "B",
        "agentReady": false,
        "rank": 178,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 1,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 59,
          "maintenance": 85,
          "payments": 30,
          "reliability": 64,
          "schema": 95,
          "security": 63,
          "transparency": 86
        },
        "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.",
        "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.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 64.6
          }
        ],
        "editorialScores": {
          "ergonomics": 59,
          "maintenance": 85,
          "payments": 30,
          "reliability": 64,
          "schema": 95,
          "security": 63,
          "transparency": 71
        },
        "provenanceScore": 100
      },
      "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": 100
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/canva.json",
      "live": {
        "slug": "canva",
        "probe": {
          "target": "https://api.canva.com/rest/v1",
          "method": "get",
          "lastAt": "2026-10-05T02:29:53.583208229Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 120,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 127,
          "p95ms24h": 161,
          "samples24h": 273,
          "samples30d": 1131,
          "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": 29,
              "ok": 29
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.canvastatus.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T02:28:52.055626629Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "com.canva.mcp/mcp",
            "version": "1.0.0",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          }
        ],
        "securityTxt": {
          "url": "https://canva.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-10-04T15:16:04.761109754Z"
        },
        "llmsTxt": {
          "url": "https://www.canva.dev/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:22.897856038Z"
        },
        "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-04T15:49:40.55349044Z",
            "changedAt": "2026-10-02T15:25:50.734698394Z",
            "fingerprint": "771b5b7623d2"
          },
          {
            "url": "https://www.canva.dev/docs/apps/llms.txt",
            "kind": "deprecations",
            "status": 0,
            "checkedAt": "2026-10-04T15:49:40.382542155Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "blockedByRobots": true
          },
          {
            "url": "https://www.canva.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:42.696160902Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9fd21481e687"
          },
          {
            "url": "https://www.canva.com/policies/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:38.234700268Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "abf1e1d6b63a"
          },
          {
            "url": "https://www.canva.com/policies/terms-of-use/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:40.418148694Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f758f70f01cb"
          }
        ],
        "updatedAt": "2026-10-05T02:29:53.583208229Z"
      }
    },
    "b": {
      "slug": "templated",
      "name": "Templated API + MCP",
      "vendor": "Templated",
      "vendorUrl": "https://templated.io",
      "kind": "http-api",
      "category": "design-assets",
      "summary": "Template rendering to JPG, PNG, WebP, multi-page PDF and MP4 (up to 90 seconds at 60 fps) through one POST /v1/render endpoint, plus template, folder, upload and font management.",
      "url": "https://www.anchorterminal.com/tools/templated",
      "markdownUrl": "https://www.anchorterminal.com/tools/templated.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/templated.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/templated.json",
      "repo": "https://github.com/templated-io/mcp-server-templated",
      "license": "MIT",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.templated.io/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "mcp-server-templated"
        }
      ],
      "auth": "mixed",
      "authNotes": "Bearer API key from the dashboard, with full account access. The hosted MCP signs in with OAuth, or takes ?apiKey= in the URL for automations. The local MCP reads TEMPLATED_API_KEY. The MCP can be scoped by folder or external ID to isolate customers.",
      "pricing": "paid",
      "pricingNotes": "Free trial with 50 credits and no card. Starter $39 a month or $29 billed yearly (1,000 credits, 60 requests a minute), Scale $99 or $79 (5,000 credits, 150 a minute), Enterprise $229 or $179 (25,000 credits, 300 a minute), custom from $500 a month. 1 image or 1 PDF page is 1 credit. Video is width x height x fps x seconds / 50,000,000, so 10 seconds of 1080p at 30 fps is 13 credits (https://templated.io/pricing/).",
      "priceSummary": "$39 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "Subscription credits only. No x402 in the docs or llms-full.txt (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 25,
      "popularity": {
        "githubStars": 3,
        "npmWeekly": 62,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://templated.io/docs/",
      "llmsTxt": "https://templated.io/llms.txt",
      "registryName": "io.github.templated-io/mcp-server-templated",
      "capabilities": [
        "design.templates",
        "design.render",
        "video.render"
      ],
      "tags": [
        "hosted",
        "mcp",
        "llms-txt",
        "no-card",
        "async-jobs",
        "webhooks"
      ],
      "lastRelease": "2026-09-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 61.3,
        "grade": "C",
        "agentReady": false,
        "rank": 231,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 2,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 80,
          "payments": 35,
          "reliability": 75,
          "schema": 72,
          "security": 38,
          "transparency": 72
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "MIT-licensed MCP server with 25 tools, every one annotated with readOnlyHint and destructiveHint. One API key with full account access, and the MCP docs offer it as ?apiKey= in the URL.",
        "strengths": [
          "MIT-licensed MCP server with 25 tools, every one annotated with readOnlyHint and destructiveHint",
          "Listed in the official MCP registry and published from CI by GitHub OIDC",
          "llms.txt, llms-full.txt and a Markdown price list with rate limits per plan",
          "Privacy policy dated 2026-09-08 with retention periods, named subprocessors and a DPA",
          "MCP can be locked to one folder or external ID for customer-facing use"
        ],
        "weaknesses": [
          "One API key with full account access, and the MCP docs offer it as ?apiKey= in the URL",
          "No OpenAPI, and no error codes or 429 handling in the API docs",
          "No official SDKs, only code samples",
          "No security.txt, certification or bug bounty found",
          "AI tools send content to Gemini, OpenAI, Anthropic and DeepSeek per the privacy policy"
        ],
        "agentNotes": [
          "Call get_template_layers before create_render so the keys in `layers` match the template",
          "Set async true with a webhook_url for MP4, zip or batch renders, since zip without a webhook returns 400",
          "Video credits are width x height x fps x seconds / 50,000,000, so 10 seconds of 1080p at 30 fps costs 13",
          "Pass folderId or externalId on the MCP URL when one server serves several customers",
          "Back off on your own schedule after a 429, since the docs give no retry guidance"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 61.3
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 80,
          "payments": 35,
          "reliability": 75,
          "schema": 72,
          "security": 38,
          "transparency": 61
        },
        "provenanceScore": 82
      },
      "connect": {
        "http": "curl https://api.templated.io/v1/account -H \"Authorization: Bearer $TEMPLATED_API_KEY\"",
        "claudeCode": "claude mcp add --transport http templated https://mcp.templated.io/mcp",
        "config": {
          "mcpServers": {
            "templated": {
              "args": [
                "mcp-server-templated"
              ],
              "command": "npx",
              "env": {
                "TEMPLATED_API_KEY": "${TEMPLATED_API_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.templates",
        "tool": "https://letme.dev/templated"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Starter",
          "unit": "month",
          "usd": 39,
          "note": "1,000 credits, $29 a month billed yearly"
        },
        {
          "item": "Scale",
          "unit": "month",
          "usd": 99,
          "note": "5,000 credits, $79 a month billed yearly"
        },
        {
          "item": "Enterprise",
          "unit": "month",
          "usd": 229,
          "note": "25,000 credits, $179 a month billed yearly"
        }
      ],
      "provenance": {
        "legalEntity": "Fields Apps LTDA",
        "domain": "templated.io",
        "domainRegistered": "2023-11-13",
        "endpointOnVendorDomain": true,
        "terms": "https://templated.io/terms/",
        "privacy": "https://templated.io/privacy/",
        "statusPage": "https://status.templated.io",
        "changelog": "https://feedback.templated.io/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "score": 82
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/templated.json",
      "live": {
        "slug": "templated",
        "probe": {
          "target": "https://api.templated.io/v1",
          "method": "get",
          "lastAt": "2026-10-05T02:30:03.624179941Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 400,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 382,
          "p95ms24h": 452,
          "samples24h": 273,
          "samples30d": 1131,
          "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": 29,
              "ok": 29
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.templated.io",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:30.852085784Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.github.templated-io/mcp-server-templated",
            "version": "1.7.1",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          },
          {
            "registry": "npm",
            "name": "mcp-server-templated",
            "version": "1.7.1",
            "seenAt": "2026-10-04T16:41:36.130519933Z"
          }
        ],
        "githubStars": 3,
        "npmWeekly": 40,
        "securityTxt": {
          "url": "https://templated.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:43.100914048Z"
        },
        "llmsTxt": {
          "url": "https://templated.io/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:17.534308578Z"
        },
        "domain": {
          "domain": "templated.io",
          "checkedAt": "2026-10-04T13:04:14.08717318Z"
        },
        "pages": [
          {
            "url": "https://feedback.templated.io/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:44:40.99279728Z",
            "changedAt": "2026-10-02T15:21:02.760105293Z",
            "fingerprint": "902e981860d2"
          },
          {
            "url": "https://templated.io/pricing/",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-04T15:48:23.263709517Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9d4e7ddcf0b5"
          },
          {
            "url": "https://templated.io/privacy/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-04T15:48:25.522639629Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f5ab53d6cdcd"
          },
          {
            "url": "https://templated.io/terms/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-04T15:48:27.527183736Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c5a02c7e1ffa"
          }
        ],
        "updatedAt": "2026-10-05T02:30:03.624179941Z"
      }
    },
    "summary": "Canva REST APIs + MCP has a score of 64.6 (B) against Templated API + MCP's 61.3 (C). Both do design templates. The largest gap is security \u0026 auth, 25 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/canva-vs-templated",
    "json": "https://www.anchorterminal.com/compare/canva-vs-templated.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/canva-vs-templated.md",
    "slim": "https://www.anchorterminal.com/compare/canva-vs-templated.min.md"
  },
  "markdown": "Canva REST APIs + MCP has a score of 64.6 (B) against Templated API + MCP's 61.3 (C). Both do design templates. The largest gap is security \u0026 auth, 25 points.\n\n- Canva REST APIs + MCP: grade B, 64.6/100, rank #178 of 452. Markdown https://www.anchorterminal.com/tools/canva.md · JSON https://www.anchorterminal.com/api/v1/tools/canva.json\n- Templated API + MCP: grade C, 61.3/100, rank #231 of 452. Markdown https://www.anchorterminal.com/tools/templated.md · JSON https://www.anchorterminal.com/api/v1/tools/templated.json\n\n## Which one, for what\n\nPick Canva REST APIs + MCP for schema \u0026 documentation (+23), security \u0026 auth (+25), maintenance \u0026 community (+5), transparency \u0026 trust (+14).\n\nPick Templated API + MCP for reliability (+11), payments \u0026 pricing (+5).\n\n## Score by category\n\n| Category | Weight | Canva REST APIs + MCP | Templated API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 64 | 75 | Templated API + MCP +11 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 95 | 72 | Canva REST APIs + MCP +23 |\n| Agent ergonomics | 13% (16.2 this run) | 59 | 63 | Templated API + MCP +4 |\n| Security \u0026 auth | 14% (17.5 this run) | 63 | 38 | Canva REST APIs + MCP +25 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 35 | Templated API + MCP +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 85 | 80 | Canva REST APIs + MCP +5 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 86 | 72 | Canva REST APIs + MCP +14 |\n| Negative events | ≤15 | -3 | 0 | |\n| **Total** | | **64.6 · B** | **61.3 · C** | |\n\n## Facts side by side\n\n| Fact | Canva REST APIs + MCP | Templated API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Canva | Templated |\n| Hosted endpoint | `https://api.canva.com/rest/v1` | `https://api.templated.io/v1` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | OAuth | OAuth or key |\n| Pricing | Your plan | Paid |\n| x402 | no | no |\n| Licence | none | MIT |\n| Tools exposed | 33 | 25 |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | `com.canva.mcp/mcp` | `io.github.templated-io/mcp-server-templated` |\n| Last release | 2026-10-01 | 2026-09-08 |\n| Popularity | none | 3 stars, 62 npm/wk |\n| Agent reviews | 3/5 (2) | 4/5 (2) |\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**Templated API + MCP.** MIT-licensed MCP server with 25 tools, every one annotated with readOnlyHint and destructiveHint. One API key with full account access, and the MCP docs offer it as ?apiKey= in the URL.\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### Templated API + MCP\n\n1. Call get_template_layers before create_render so the keys in `layers` match the template\n2. Set async true with a webhook_url for MP4, zip or batch renders, since zip without a webhook returns 400\n3. Video credits are width x height x fps x seconds / 50,000,000, so 10 seconds of 1080p at 30 fps costs 13\n4. Pass folderId or externalId on the MCP URL when one server serves several customers\n5. Back off on your own schedule after a 429, since the docs give no retry guidance\n\n## Other comparisons with Canva REST APIs + MCP or Templated API + MCP\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 Templated API + MCP](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-templated.md)\n- [Bannerbear API + MCP vs Canva REST APIs + MCP](https://www.anchorterminal.com/compare/bannerbear-vs-canva.md)\n- [Bannerbear API + MCP vs Templated API + MCP](https://www.anchorterminal.com/compare/bannerbear-vs-templated.md)\n- [Canva REST APIs + MCP vs Placid API + MCP](https://www.anchorterminal.com/compare/canva-vs-placid.md)\n- [Placid API + MCP vs Templated API + MCP](https://www.anchorterminal.com/compare/placid-vs-templated.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "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 Templated API + MCP",
        "url": ""
      }
    ],
    "description": "Canva REST APIs + MCP has a score of 64.6 (B) against Templated API + MCP's 61.3 (C). Both do design templates. The largest gap is security \u0026 auth, 25 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Canva REST APIs + MCP B 64.6",
      "Templated API + MCP C 61.3",
      "scores"
    ],
    "h1": "Canva REST APIs + MCP vs Templated API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-canva-vs-templated.png",
    "path": "/compare/canva-vs-templated",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Canva REST APIs + MCP vs Templated API + MCP for AI agents",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/canva-vs-templated"
  },
  "tokens": {
    "markdown": 1400,
    "slim": 380
  },
  "version": 1
}
