{
  "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": 380,
        "ranked": true,
        "rankOf": 1084,
        "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-15T00:24:05.566986739Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 116,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 131,
          "p95ms24h": 183,
          "samples24h": 250,
          "samples30d": 3679,
          "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": 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": 5,
              "ok": 5
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.canvastatus.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-15T00:27:31.241601631Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "com.canva.mcp/mcp",
            "version": "1.0.0",
            "seenAt": "2026-10-14T04:18:30.41681267Z"
          }
        ],
        "securityTxt": {
          "url": "https://canva.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-10-14T15:46:25.813804972Z"
        },
        "llmsTxt": {
          "url": "https://www.canva.dev/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-14T14:13:33.522565928Z"
        },
        "domain": {
          "domain": "canva.com",
          "registered": "2001-05-05",
          "source": "https://rdap.verisign.com/com/v1/domain/canva.com",
          "checkedAt": "2026-10-11T13:24:18.153189053Z"
        },
        "pages": [
          {
            "url": "https://www.canva.dev/docs/apps/rest-apis/changelog/",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-10-14T21:11:14.244257504Z",
            "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-14T21:11:14.174542428Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "blockedByRobots": true
          },
          {
            "url": "https://www.canva.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-14T21:11:16.240252737Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9fd21481e687"
          },
          {
            "url": "https://www.canva.com/policies/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-14T21:11:12.067277538Z",
            "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-14T21:11:14.608468691Z",
            "changedAt": "2026-10-06T16:14:20.799802666Z",
            "fingerprint": "8422ab742c4e"
          }
        ],
        "updatedAt": "2026-10-15T00:27:31.241601631Z"
      }
    },
    "answer": "Canva REST APIs + MCP scores 64.3 (B) on agent readiness against PostNitro's 44.5 (E), and leads in every scored category.",
    "b": {
      "slug": "postnitro",
      "name": "PostNitro",
      "vendor": "PostNitro Inc.",
      "vendorUrl": "https://postnitro.ai",
      "kind": "mcp",
      "category": "design-assets",
      "summary": "PostNitro designs carousels, single-image posts and slide videos from templates and brand kits, then schedules them to six social networks. Agents use a hosted MCP server with 35 tools, a REST API, a CLI or an agent plugin.",
      "url": "https://www.anchorterminal.com/tools/postnitro",
      "markdownUrl": "https://www.anchorterminal.com/tools/postnitro.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/postnitro.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/postnitro.json",
      "repo": "https://github.com/postnitro/postnitro-agent",
      "license": "Proprietary hosted service under PostNitro's Terms of Service. The CLI, agent skill and agent plugin repositories are MIT",
      "transports": [
        "streamable-http",
        "http"
      ],
      "remoteUrl": "https://mcp.postnitro.ai/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "@postnitro/cli"
        },
        {
          "registry": "npm",
          "name": "@postnitro/embed"
        }
      ],
      "auth": "mixed",
      "authNotes": "The MCP server takes OAuth 2.1 with PKCE and dynamic client registration (scopes `postnitro` and `offline_access`), used by the Claude and ChatGPT directory listings, or a `pn-` API key as `Authorization: Bearer`. The REST API takes the same key in the `embed-api-key` header. A person generates the key under Profile \u003e Embed in the web app. No read-only key or finer scope is documented.",
      "pricing": "paid",
      "pricingNotes": "API, MCP and CLI calls spend Embed API credits, 1 per imported slide and 2 per AI-written slide. Credits come with Creator+ ($30 a month, 200) or Team+ ($60, 500), or as a $10 add-on for 250 on a paid plan, $0.04 each. Scheduling needs Creator+ or above (https://postnitro.ai/plans).",
      "priceSummary": "$15 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Embed API OpenAPI document, llms.txt, llms-full.txt, the MCP docs or the plans page (checked 2026-10-14).",
        "endpoints": []
      },
      "toolCount": 35,
      "popularity": {
        "githubStars": 2,
        "npmWeekly": 200,
        "pypiWeekly": null,
        "asOf": "2026-10-14"
      },
      "docsUrl": "https://postnitro.ai/docs/embed/mcp",
      "llmsTxt": "https://postnitro.ai/llms.txt",
      "openapi": "https://postnitro.ai/.well-known/openapi/embed.json",
      "capabilities": [
        "design.templates",
        "design.render",
        "design.brand",
        "social.schedule",
        "social.post"
      ],
      "tags": [
        "hosted",
        "mcp",
        "oauth",
        "openapi",
        "llms-txt",
        "closed-source",
        "async-jobs",
        "cli",
        "n8n",
        "no-status-page"
      ],
      "lastRelease": "2026-10-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 44.5,
        "grade": "E",
        "agentReady": false,
        "rank": 945,
        "ranked": true,
        "rankOf": 1084,
        "categoryRank": 9,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 49,
          "maintenance": 65,
          "payments": 20,
          "reliability": 42,
          "schema": 77,
          "security": 30,
          "transparency": 48
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-14"
        },
        "negative": -2,
        "negativeNotes": [
          "Conflicting training statements on PostNitro's own pages, read 14 October 2026. The privacy policy body (5 October 2023) says the data saved from carousel creation is used to train PostNitro's AI model, while the same page's description and the Claude connector page say content is never used to train AI models. At least one is wrong, and no dated update settles it (-2) (https://postnitro.ai/privacy, https://postnitro.ai/claude)"
        ],
        "verdict": "A hosted MCP server and REST API let an agent turn a topic, article or own slides into a branded carousel, image or slide video and schedule it, with OAuth, numbered rate limits and Markdown docs. No status page, security contact or idempotency key was found, and the privacy policy contradicts the vendor's no-training statement.",
        "bestFor": "An agent that must produce a designed, on-brand carousel or slide video and book it on LinkedIn, Instagram, TikTok, Threads, Facebook Pages or Pinterest in one chain.",
        "strengths": [
          "OAuth 2.1 with dynamic client registration on the MCP server, so Claude and ChatGPT connect without a stored API key",
          "Rate limits are published per key and endpoint, and 429 responses carry `Retry-After` and `X-RateLimit` headers",
          "OpenAPI 3.1 document, `llms.txt`, `llms-full.txt` and a Markdown version of every page by content negotiation",
          "Per-slide credit prices are public at $0.04 a credit, 1 per imported slide and 2 per AI-written slide",
          "The one-call generate-and-schedule tool returns the `designId` when scheduling fails, so a retry does not spend credits again"
        ],
        "weaknesses": [
          "No status page, incident history, SLA, security.txt or certification was found",
          "35 MCP tools load at once, with no toolsets or read-only subset, and the OAuth flow has one broad `postnitro` scope",
          "The privacy policy says carousel data trains PostNitro's AI model, while the Claude connector page says content is never used for training",
          "No idempotency key on create or schedule calls, and the Embed API has no changelog or deprecation policy",
          "Pages disagree on the API free tier and tool count. One docs index still says 12 MCP tools and four scheduling networks"
        ],
        "agentNotes": [
          "Call `postnitro_set_defaults` once with a template, brand and AI preset, or every generate call must carry those IDs",
          "Pass the `designId` from `postnitro_get_output` to scheduling, never the `embedPostId`, or the call fails with `Design not found`",
          "For a LinkedIn PDF post, set `linkedinPostSettings.postType` to `document` with a 5 to 90 character `postTitle`",
          "Ask for the `DESIGN` output or save as `DRAFT` when a person must approve before anything publishes",
          "Keep to 5 create calls a minute per key and wait for `Retry-After` on a 429"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 44.5
          }
        ],
        "editorialScores": {
          "ergonomics": 49,
          "maintenance": 65,
          "payments": 20,
          "reliability": 42,
          "schema": 77,
          "security": 30,
          "transparency": 33
        },
        "provenanceScore": 63
      },
      "connect": {
        "install": "npm install -g @postnitro/cli",
        "http": "curl https://embed-api.postnitro.ai/template -H \"embed-api-key: pn-your-api-key\"",
        "claudeCode": "claude mcp add --transport http postnitro https://mcp.postnitro.ai/mcp --header \"Authorization: Bearer pn-your-api-key-here\"",
        "config": {
          "mcpServers": {
            "postnitro": {
              "headers": {
                "Authorization": "Bearer pn-your-api-key-here"
              },
              "type": "http",
              "url": "https://mcp.postnitro.ai/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.templates",
        "tool": "https://letme.dev/postnitro"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Starter",
          "unit": "month",
          "usd": 15,
          "note": "No scheduling or API access unless the Embed API add-on is bought"
        },
        {
          "item": "Creator+",
          "unit": "month",
          "usd": 30,
          "note": "200 API credits a month, scheduling to 10 social accounts"
        },
        {
          "item": "Team+",
          "unit": "month",
          "usd": 60,
          "note": "500 API credits a month, scheduling to 30 social accounts"
        },
        {
          "item": "Embed API add-on",
          "unit": "month",
          "usd": 10,
          "note": "250 credits on top of a paid plan, scalable to 25,000"
        },
        {
          "item": "Embed API credit",
          "unit": "credit",
          "usd": 0.04,
          "note": "1 credit per imported slide, 2 per AI-written slide"
        }
      ],
      "provenance": {
        "legalEntity": "PostNitro Inc.",
        "domain": "postnitro.ai",
        "domainRegistered": "2023-03-23",
        "endpointOnVendorDomain": true,
        "terms": "https://postnitro.ai/terms",
        "privacy": "https://postnitro.ai/privacy",
        "statusPage": "",
        "changelog": "https://github.com/postnitro/postnitro-agent/blob/main/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-10-14",
        "notes": [
          "The Terms of Service, last updated 20 May 2024, cover the website, applications and APIs. They name no legal entity or governing law. The privacy policy names PostNitro Inc. as controller.",
          "The privacy policy is dated 5 October 2023 and names UserMaven, CrispChat and an unnamed payment processor. No DPA or sub-processor list was found.",
          "No status page was found. status.postnitro.ai did not connect and /status returns 404. The MCP server answers a health check at https://mcp.postnitro.ai/health, reporting version 1.3.0.",
          "The changelog covers the CLI only. No changelog for the Embed API or MCP server was found.",
          "postnitro.ai/.well-known/security.txt and /security.txt return 404.",
          "RDAP gives a registration date of 2023-03-23 for postnitro.ai. The fact sheet says the company was founded in 2023."
        ],
        "score": 63
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/postnitro.json",
      "live": {
        "slug": "postnitro",
        "probe": {
          "target": "https://mcp.postnitro.ai/mcp",
          "method": "mcp-initialize",
          "lastAt": "2026-10-15T00:24:22.389748682Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 101,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 103,
          "p95ms24h": 146,
          "samples24h": 31,
          "samples30d": 31,
          "days": [
            {
              "date": "2026-10-14",
              "probes": 26,
              "ok": 26
            },
            {
              "date": "2026-10-15",
              "probes": 5,
              "ok": 5
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "postnitro/postnitro-agent",
            "version": "v1.5.0",
            "released": "2026-10-07",
            "seenAt": "2026-10-15T00:15:12.63443761Z"
          },
          {
            "registry": "npm",
            "name": "@postnitro/cli",
            "version": "1.5.0",
            "seenAt": "2026-10-15T00:15:10.434524788Z"
          },
          {
            "registry": "npm",
            "name": "@postnitro/embed",
            "version": "2.0.3",
            "seenAt": "2026-10-15T00:15:11.257477478Z"
          }
        ],
        "githubStars": 2,
        "npmWeekly": 200,
        "mcpTools": {
          "url": "https://mcp.postnitro.ai/mcp",
          "checkedAt": "2026-10-14T22:17:48.649874285Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-10-14T22:17:48.649874285Z"
        },
        "updatedAt": "2026-10-15T00:24:22.389748682Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "MCP server",
        "name": "Kind"
      },
      {
        "a": "Canva",
        "b": "PostNitro Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://api.canva.com/rest/v1",
        "b": "https://mcp.postnitro.ai/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "Streamable HTTP, 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 hosted service under PostNitro's Terms of Service. The CLI, agent skill and agent plugin repositories are MIT",
        "name": "Licence"
      },
      {
        "a": "33",
        "b": "35",
        "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-10-07",
        "name": "Last release"
      },
      {
        "a": "2026-08-19",
        "b": "2024-05-20",
        "name": "Terms last updated"
      },
      {
        "a": "2026-08-25",
        "b": "2023-10-05",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes, with an opt-out",
        "b": "yes",
        "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": "yes",
        "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": "2 stars, 200 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 PostNitro's 44.5 (E), and leads in every scored category.",
        "question": "Which is better for AI agents, Canva REST APIs + MCP or PostNitro?"
      },
      {
        "answer": "Canva REST APIs + MCP uses an OAuth sign-in. PostNitro takes an API key or an OAuth sign-in.",
        "question": "Do Canva REST APIs + MCP and PostNitro need an API key?"
      },
      {
        "answer": "Yes. Canva REST APIs + MCP has a hosted endpoint at https://api.canva.com/rest/v1 and PostNitro at https://mcp.postnitro.ai/mcp.",
        "question": "Can an agent call Canva REST APIs + MCP and PostNitro without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 64 against 42",
          "Schema \u0026 documentation, 95 against 77",
          "Agent ergonomics, 59 against 49",
          "Security \u0026 auth, 63 against 30",
          "Payments \u0026 pricing, 30 against 20",
          "Maintenance \u0026 community, 85 against 65",
          "Transparency \u0026 trust, 83 against 48"
        ],
        "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": null,
        "also": null,
        "goodFor": "An agent that must produce a designed, on-brand carousel or slide video and book it on LinkedIn, Instagram, TikTok, Threads, Facebook Pages or Pinterest in one chain.",
        "slug": "postnitro",
        "watchFor": "No status page, incident history, SLA, security.txt or certification was found"
      }
    ],
    "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-postnitro.json",
        "title": "Adobe Photoshop API vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-postnitro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apitemplate-io-vs-canva.json",
        "title": "APITemplate.io vs Canva REST APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-canva"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apitemplate-io-vs-postnitro.json",
        "title": "APITemplate.io vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-postnitro"
      },
      {
        "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-postnitro.json",
        "title": "Bannerbear API + MCP vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-postnitro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/canva-vs-creatomate.json",
        "title": "Canva REST APIs + MCP vs Creatomate",
        "url": "https://www.anchorterminal.com/compare/canva-vs-creatomate"
      },
      {
        "json": "https://www.anchorterminal.com/compare/canva-vs-photoroom.json",
        "title": "Canva REST APIs + MCP vs Photoroom API",
        "url": "https://www.anchorterminal.com/compare/canva-vs-photoroom"
      },
      {
        "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-postnitro.json",
        "title": "Creatomate vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-postnitro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photoroom-vs-postnitro.json",
        "title": "Photoroom API vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/photoroom-vs-postnitro"
      },
      {
        "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/postnitro-vs-shotstack.json",
        "title": "PostNitro vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/postnitro-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/postnitro-vs-templated.json",
        "title": "PostNitro vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/postnitro-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/osmo-cli-vs-postnitro.json",
        "title": "Osmo CLI vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/osmo-cli-vs-postnitro"
      }
    ],
    "scores": [
      {
        "by": 22,
        "canva": 64,
        "edge": "canva",
        "key": "reliability",
        "name": "Reliability",
        "postnitro": 42,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 18,
        "canva": 95,
        "edge": "canva",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "postnitro": 77,
        "weight": 13
      },
      {
        "by": 10,
        "canva": 59,
        "edge": "canva",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "postnitro": 49,
        "weight": 13
      },
      {
        "by": 33,
        "canva": 63,
        "edge": "canva",
        "key": "security",
        "name": "Security \u0026 auth",
        "postnitro": 30,
        "weight": 14
      },
      {
        "by": 10,
        "canva": 30,
        "edge": "canva",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "postnitro": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 20,
        "canva": 85,
        "edge": "canva",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "postnitro": 65,
        "weight": 7
      },
      {
        "by": 35,
        "canva": 83,
        "edge": "canva",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "postnitro": 48,
        "weight": 7
      }
    ],
    "summary": "Canva REST APIs + MCP scores 64.3 (B) on agent readiness against PostNitro's 44.5 (E), and leads in every scored category. 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.",
      "postnitro": "A hosted MCP server and REST API let an agent turn a topic, article or own slides into a branded carousel, image or slide video and schedule it, with OAuth, numbered rate limits and Markdown docs. No status page, security contact or idempotency key was found, and the privacy policy contradicts the vendor's no-training statement."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/canva-vs-postnitro",
    "json": "https://www.anchorterminal.com/compare/canva-vs-postnitro.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/canva-vs-postnitro.md",
    "slim": "https://www.anchorterminal.com/compare/canva-vs-postnitro.min.md"
  },
  "markdown": "Canva REST APIs + MCP scores 64.3 (B) on agent readiness against PostNitro's 44.5 (E), and leads in every scored category. Both do design templates.\n\n- Canva REST APIs + MCP: grade B, 64.3/100, rank #380 of 1084. Markdown https://www.anchorterminal.com/tools/canva.md · JSON https://www.anchorterminal.com/api/v1/tools/canva.json\n- PostNitro: grade E, 44.5/100, rank #945 of 1084. Markdown https://www.anchorterminal.com/tools/postnitro.md · JSON https://www.anchorterminal.com/api/v1/tools/postnitro.json\n- Best programmatic image and design asset APIs for AI agents: https://www.anchorterminal.com/best/design-assets/index.md\n- All 55 assets comparisons: https://www.anchorterminal.com/compare/design-assets/index.md\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 42\n- Schema \u0026 documentation, 95 against 77\n- Agent ergonomics, 59 against 49\n- Security \u0026 auth, 63 against 30\n- Payments \u0026 pricing, 30 against 20\n- Maintenance \u0026 community, 85 against 65\n- Transparency \u0026 trust, 83 against 48\n\nWatch for: No server-to-server key, so unattended batch rendering has to run under one user's OAuth grant\n\n### PostNitro (E)\n\nGood for: An agent that must produce a designed, on-brand carousel or slide video and book it on LinkedIn, Instagram, TikTok, Threads, Facebook Pages or Pinterest in one chain.\n\nWatch for: No status page, incident history, SLA, security.txt or certification was found\n\n\n## Score by category\n\n| Category | Weight | Canva REST APIs + MCP | PostNitro | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 64 | 42 | Canva REST APIs + MCP +22 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 95 | 77 | Canva REST APIs + MCP +18 |\n| Agent ergonomics | 13% (16.2 this run) | 59 | 49 | Canva REST APIs + MCP +10 |\n| Security \u0026 auth | 14% (17.5 this run) | 63 | 30 | Canva REST APIs + MCP +33 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 20 | Canva REST APIs + MCP +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 85 | 65 | Canva REST APIs + MCP +20 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 83 | 48 | Canva REST APIs + MCP +35 |\n| Negative events | ≤15 | -3 | -2 | |\n| **Total** | | **64.3 · B** | **44.5 · E** | |\n\n## Facts side by side\n\n| Fact | Canva REST APIs + MCP | PostNitro |\n| --- | --- | --- |\n| Kind | HTTP API | MCP server |\n| Vendor | Canva | PostNitro Inc. |\n| Hosted endpoint | `https://api.canva.com/rest/v1` | `https://mcp.postnitro.ai/mcp` |\n| Transports | HTTP, Streamable HTTP | Streamable HTTP, HTTP |\n| Auth | OAuth | OAuth or key |\n| Pricing | Your plan | Paid |\n| x402 | no | no |\n| Licence | none | Proprietary hosted service under PostNitro's Terms of Service. The CLI, agent skill and agent plugin repositories are MIT |\n| Tools exposed | 33 | 35 |\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-10-07 |\n| Terms last updated | 2026-08-19 | 2024-05-20 |\n| Privacy policy last updated | 2026-08-25 | 2023-10-05 |\n| Customer content may train models | yes, with an opt-out | yes |\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 | yes |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Popularity | none | 2 stars, 200 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**PostNitro.** A hosted MCP server and REST API let an agent turn a topic, article or own slides into a branded carousel, image or slide video and schedule it, with OAuth, numbered rate limits and Markdown docs. No status page, security contact or idempotency key was found, and the privacy policy contradicts the vendor's no-training statement.\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### PostNitro\n\n1. Call `postnitro_set_defaults` once with a template, brand and AI preset, or every generate call must carry those IDs\n2. Pass the `designId` from `postnitro_get_output` to scheduling, never the `embedPostId`, or the call fails with `Design not found`\n3. For a LinkedIn PDF post, set `linkedinPostSettings.postType` to `document` with a 5 to 90 character `postTitle`\n4. Ask for the `DESIGN` output or save as `DRAFT` when a person must approve before anything publishes\n5. Keep to 5 create calls a minute per key and wait for `Retry-After` on a 429\n\n## Questions\n\n### Which is better for AI agents, Canva REST APIs + MCP or PostNitro?\n\nCanva REST APIs + MCP scores 64.3 (B) on agent readiness against PostNitro's 44.5 (E), and leads in every scored category.\n\n### Do Canva REST APIs + MCP and PostNitro need an API key?\n\nCanva REST APIs + MCP uses an OAuth sign-in. PostNitro takes an API key or an OAuth sign-in.\n\n### Can an agent call Canva REST APIs + MCP and PostNitro without installing anything?\n\nYes. Canva REST APIs + MCP has a hosted endpoint at https://api.canva.com/rest/v1 and PostNitro at https://mcp.postnitro.ai/mcp.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/canva-vs-postnitro.json, and with the fewest tokens: https://www.anchorterminal.com/compare/canva-vs-postnitro.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"canva\", \"b\": \"postnitro\"}`. From a terminal: `anchor compare canva postnitro`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/canva.json and https://www.anchorterminal.com/api/v1/tools/postnitro.json\n\n## Other comparisons with Canva REST APIs + MCP or PostNitro\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 PostNitro](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-postnitro.md)\n- [APITemplate.io vs Canva REST APIs + MCP](https://www.anchorterminal.com/compare/apitemplate-io-vs-canva.md)\n- [APITemplate.io vs PostNitro](https://www.anchorterminal.com/compare/apitemplate-io-vs-postnitro.md)\n- [Bannerbear API + MCP vs Canva REST APIs + MCP](https://www.anchorterminal.com/compare/bannerbear-vs-canva.md)\n- [Bannerbear API + MCP vs PostNitro](https://www.anchorterminal.com/compare/bannerbear-vs-postnitro.md)\n- [Canva REST APIs + MCP vs Creatomate](https://www.anchorterminal.com/compare/canva-vs-creatomate.md)\n- [Canva REST APIs + MCP vs Photoroom API](https://www.anchorterminal.com/compare/canva-vs-photoroom.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 PostNitro](https://www.anchorterminal.com/compare/creatomate-vs-postnitro.md)\n- [Photoroom API vs PostNitro](https://www.anchorterminal.com/compare/photoroom-vs-postnitro.md)\n- [Placid API + MCP vs PostNitro](https://www.anchorterminal.com/compare/placid-vs-postnitro.md)\n- [PostNitro vs Shotstack](https://www.anchorterminal.com/compare/postnitro-vs-shotstack.md)\n- [PostNitro vs Templated API + MCP](https://www.anchorterminal.com/compare/postnitro-vs-templated.md)\n- [Canva REST APIs + MCP vs Osmo CLI](https://www.anchorterminal.com/compare/canva-vs-osmo-cli.md)\n- [Osmo CLI vs PostNitro](https://www.anchorterminal.com/compare/osmo-cli-vs-postnitro.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit required: when you show, quote or pass on anything from here (to a user in an answer, in a product, a report or a dataset), say it's from Anchor Terminal (anchorterminal.com) and link the page or API address you took it from. Reviews also credit their author.",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-15",
    "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",
    "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": "Canva REST APIs + MCP vs PostNitro",
        "url": ""
      }
    ],
    "description": "Canva REST scores 64.3 (B) to PostNitro's 44.5 (E) for design templates. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Canva REST APIs + MCP B 64.3",
      "PostNitro E 44.5",
      "scores"
    ],
    "h1": "Canva REST APIs + MCP vs PostNitro",
    "image": "https://www.anchorterminal.com/assets/og/compare-canva-vs-postnitro.png",
    "path": "/compare/canva-vs-postnitro",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Canva REST vs PostNitro for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-14",
    "url": "https://www.anchorterminal.com/compare/canva-vs-postnitro"
  },
  "tokens": {
    "markdown": 2300,
    "slim": 730
  },
  "version": 1
}
