{
  "data": {
    "a": {
      "slug": "apitemplate-io",
      "name": "APITemplate.io",
      "vendor": "Alphacloud Technologies Pte Ltd",
      "vendorUrl": "https://apitemplate.io",
      "kind": "http-api",
      "category": "design-assets",
      "summary": "APITemplate.io generates PDF documents and JPEG or PNG images from reusable templates filled with JSON data, and converts HTML, Markdown or a web page to PDF. Agents call its REST API with an API key.",
      "url": "https://www.anchorterminal.com/tools/apitemplate-io",
      "markdownUrl": "https://www.anchorterminal.com/tools/apitemplate-io.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/apitemplate-io.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/apitemplate-io.json",
      "license": "Proprietary service under APITemplate.io's Terms of Use. The SDK repositories have no licence file, and the Python client's `setup.py` names Apache 2.0",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://rest.apitemplate.io/v2",
      "packages": [],
      "auth": "api-key",
      "authNotes": "Calls send an API key in the `X-API-KEY` header, or as `Authorization: Token \u003ckey\u003e`. A browser signup at app.apitemplate.io creates the key, self-serve, and it can be regenerated under API Integration. Each team has its own key, separate from the personal one. No scopes or read-only keys were found. Direct URL image links carry a per-template `auth` code in the query string, with a quota and an expiry.",
      "pricing": "freemium",
      "pricingNotes": "The free plan gives 50 images or PDFs a month and 3 templates with no card, so an agent's owner can start without a contract. PDF-only plans run from $24 a month for 3,000 PDFs to $179 for 25,000, and image and PDF plans from $35 for 1,500 files to $179 for 20,000, billed monthly. Annual billing is up to 20 per cent less. Overage billing exists only on Enterprise plans by request, with no rate published (checked 2026-10-09).",
      "priceSummary": "$24 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "Monthly subscriptions paid through Stripe. No x402, MPP or L402 in the API description, the docs or the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": 0,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://apitemplate.io/docs/",
      "openapi": "https://apitemplateio.s3.ap-southeast-1.amazonaws.com/redoc_apiv2/apitemplateiov2_api.yaml",
      "capabilities": [
        "design.templates",
        "design.render",
        "pdf.generate",
        "pdf.convert",
        "pdf.merge"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "openapi",
        "no-card",
        "async-jobs",
        "webhooks",
        "images",
        "pdf",
        "regional-endpoints",
        "status-page",
        "sla"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 46.6,
        "grade": "D",
        "agentReady": false,
        "rank": 850,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 7,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 49,
          "maintenance": 11,
          "payments": 30,
          "reliability": 65,
          "schema": 52,
          "security": 53,
          "transparency": 59
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": -2,
        "negativeNotes": [
          "2026-10-09. Two vendor documentation pages disagree on regional endpoints. The first-request guide (https://apitemplate.io/docs/getting-started/first-api-request) lists `rest.apitemplate.io` as the US default with `rest-eu` and `rest-sg` hosts. The API reference and REST guide (https://apitemplate.io/docs/integrations/rest-api) list it as the Singapore default with `rest-de` and `rest-us`. The vendor says data is processed and stored in the region of the endpoint, so the conflict affects data residency. We did not test which hostnames resolve. 2 points."
        ],
        "verdict": "A public OpenAPI description covers 12 operations, with rate limits, four regional endpoints and a 99.9 per cent uptime SLA published. Each account or team has one unscoped API key, no changelog or deprecation notices were found, the SDK repositories date from September 2023, and two documentation pages name different regional hostnames.",
        "bestFor": "Owners who need invoices, certificates, reports and social images filled from templates, with HTML, URL and Markdown to PDF on the same key and a choice of storage region.",
        "strengths": [
          "OpenAPI 3.0.0 description of 12 operations is linked from the docs, with request samples in cURL, Python, PHP, Node.js and C# on the main operations",
          "Rate limits are published as 100 requests per 10 seconds per IP address and 100 concurrent synchronous PDF requests per account",
          "Regional endpoints in Singapore, Frankfurt, N. Virginia and Sydney process and store requests and output in the region, per the API reference",
          "The SLA page commits to 99.9 per cent monthly availability for the REST API and dashboard, with service credits of 10 to 50 per cent",
          "Free plan of 50 images or PDFs a month with no card, and output can skip vendor storage with `export_type=file` or `cloud_storage=0`"
        ],
        "weaknesses": [
          "One API key per account or team with no scopes or read-only mode, and `GET /v2/delete-object` deletes a file with a GET request",
          "No changelog, release notes or dated deprecation notices were found, and the terms allow the service to change with or without notice",
          "The five SDK repositories each hold a generated client committed on 17 September 2023, with no tags, no licence file and placeholder install commands",
          "The first-request guide names `rest-eu` and `rest-sg` hostnames and a US default, while the API reference names `rest-de` and `rest-us` and a Singapore default",
          "Errors are documented as one `status` and `message` object with no status codes listed, and no idempotency key exists for generation calls",
          "The terms of use forbid any robot or other automatic device accessing the Site or Service, and bar load or vulnerability testing without agreement. This matters before any probe is run"
        ],
        "agentNotes": [
          "Send the key in the `X-API-KEY` header and pick the regional host first, because requests and output are processed and stored in that region",
          "Call `GET /v2/list-templates` with `with_layer_info=1` before `POST /v2/create-image`, so the `name` values in `overrides` match the template's elements",
          "Set `meta` to your own reference on each generation and check `GET /v2/list-objects` before retrying, since there is no idempotency key",
          "Set `expiration` in minutes (1 to 10080) or `export_type=file` for sensitive output. By default the download URL does not expire",
          "For `async=1` you must pass `webhook_url`. The callback is a GET with the result in the query string, retried three times",
          "On HTTP 429 pause and retry on your own schedule. The docs give no `Retry-After` header or backoff interval"
        ],
        "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": 46.6
          }
        ],
        "editorialScores": {
          "ergonomics": 49,
          "maintenance": 11,
          "payments": 30,
          "reliability": 65,
          "schema": 52,
          "security": 53,
          "transparency": 58
        },
        "provenanceScore": 59
      },
      "connect": {
        "http": "curl -X POST \"https://rest.apitemplate.io/v2/create-image?template_id=TEMPLATE_ID\" -H \"X-API-KEY: YOUR_API_KEY\" -H \"Content-Type: application/json\" -d '{\"overrides\": [{\"name\": \"title\", \"text\": \"Hello World\"}]}'"
      },
      "letme": {
        "capability": "https://letme.dev/design.templates",
        "tool": "https://letme.dev/apitemplate-io"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "PDF Basic",
          "unit": "month",
          "usd": 24,
          "note": "3,000 PDFs a month, 20 templates. $19 a month billed annually"
        },
        {
          "item": "PDF Standard",
          "unit": "month",
          "usd": 89,
          "note": "12,000 PDFs a month, 180 templates. $69 a month billed annually"
        },
        {
          "item": "PDF Enterprise",
          "unit": "month",
          "usd": 179,
          "note": "25,000 PDFs a month, unlimited templates, own storage. $139 a month billed annually"
        },
        {
          "item": "Starter (image and PDF)",
          "unit": "month",
          "usd": 35,
          "note": "1,500 images or PDFs a month, 15 templates. $29 a month billed annually"
        },
        {
          "item": "Standard (image and PDF)",
          "unit": "month",
          "usd": 89,
          "note": "9,000 images or PDFs a month, 150 templates. $69 a month billed annually"
        },
        {
          "item": "Enterprise (image and PDF)",
          "unit": "month",
          "usd": 179,
          "note": "20,000 images or PDFs a month, unlimited templates, own storage. $139 a month billed annually"
        }
      ],
      "provenance": {
        "legalEntity": "Alphacloud Technologies Pte Ltd",
        "domain": "apitemplate.io",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://apitemplate.io/terms-of-use/",
        "privacy": "https://apitemplate.io/privacy-policy/",
        "statusPage": "https://status.apitemplate.io/",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The terms of use name Alphacloud Technologies Pte Ltd, a Singapore company. The DPA gives Unique Entity Number 201902224G and an address at 50 Lakeside Drive, Singapore 648315.",
          "The terms of use are dated 8 April 2022. They are the customer contract for the service and its APIs, covering subscriptions, fees, content and termination.",
          "The privacy policy is dated 21 January 2024 and covers the websites, the app and the APIs. It holds the sub-processor list and the storage regions.",
          "A Data Processing Agreement with standard contractual clauses is at apitemplate.io/data-processing-agreement/, and an SLA dated 13 February 2020 at apitemplate.io/service-level-agreement/.",
          "The API answers at rest.apitemplate.io and regional hosts under apitemplate.io, per the API reference. We sent no request to an API host.",
          "apitemplate.io/.well-known/security.txt returns 404.",
          "The status page is hosted by UptimeRobot. Its figures load by script from a path its robots.txt disallows.",
          "No changelog or release notes page was found on the site, in the docs or in the SDK repositories.",
          "The domain's registration date was not established. rdap.org answered 404 for apitemplate.io."
        ],
        "score": 59
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/apitemplate-io.json",
      "live": {
        "slug": "apitemplate-io",
        "probe": {
          "target": "https://rest.apitemplate.io/v2",
          "method": "get",
          "lastAt": "2026-10-10T03:53:18.830329585Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 534,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 563,
          "p95ms24h": 1551,
          "samples24h": 125,
          "samples30d": 125,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 40,
              "ok": 40
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.apitemplate.io",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:50:05.907079503Z"
        },
        "pages": [
          {
            "url": "https://apitemplate.io/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:32:36.641195644Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a0f620060789"
          },
          {
            "url": "https://apitemplate.io/terms-of-use/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:32:39.292785112Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d94d8af8dfe8"
          }
        ],
        "updatedAt": "2026-10-10T03:53:18.830329585Z"
      }
    },
    "answer": "Canva REST APIs + MCP scores 64.3 (B) on agent readiness against APITemplate.io's 46.6 (D), and leads in 5 of 7 scored categories.",
    "b": {
      "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": 355,
        "ranked": true,
        "rankOf": 950,
        "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-10T03:53:23.088129326Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 119,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 129,
          "p95ms24h": 203,
          "samples24h": 249,
          "samples30d": 2476,
          "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": 40,
              "ok": 40
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.canvastatus.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T03:58:02.231401024Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "com.canva.mcp/mcp",
            "version": "1.0.0",
            "seenAt": "2026-10-10T03:11:32.438759038Z"
          }
        ],
        "securityTxt": {
          "url": "https://canva.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-10-09T15:39:32.217174544Z"
        },
        "llmsTxt": {
          "url": "https://www.canva.dev/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:01:34.183559202Z"
        },
        "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-09T18:48:53.563763122Z",
            "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-09T18:48:53.421823053Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "blockedByRobots": true
          },
          {
            "url": "https://www.canva.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:48:55.61072362Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9fd21481e687"
          },
          {
            "url": "https://www.canva.com/policies/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:48:51.151337932Z",
            "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-09T18:48:53.301378413Z",
            "changedAt": "2026-10-06T16:14:20.799802666Z",
            "fingerprint": "8422ab742c4e"
          }
        ],
        "updatedAt": "2026-10-10T03:58:02.231401024Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Alphacloud Technologies Pte Ltd",
        "b": "Canva",
        "name": "Vendor"
      },
      {
        "a": "https://rest.apitemplate.io/v2",
        "b": "https://api.canva.com/rest/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Your plan",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under APITemplate.io's Terms of Use. The SDK repositories have no licence file, and the Python client's `setup.py` names Apache 2.0",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "0",
        "b": "33",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "com.canva.mcp/mcp",
        "name": "MCP registry"
      },
      {
        "a": "none",
        "b": "2026-10-01",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2026-08-19",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2026-08-25",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes, with an opt-out",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "3/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Canva REST APIs + MCP scores 64.3 (B) on agent readiness against APITemplate.io's 46.6 (D), and leads in 5 of 7 scored categories.",
        "question": "Which is better for AI agents, APITemplate.io or Canva REST APIs + MCP?"
      },
      {
        "answer": "APITemplate.io needs an API key. Canva REST APIs + MCP uses an OAuth sign-in.",
        "question": "Do APITemplate.io and Canva REST APIs + MCP need an API key?"
      },
      {
        "answer": "Yes. APITemplate.io has a hosted endpoint at https://rest.apitemplate.io/v2 and Canva REST APIs + MCP at https://api.canva.com/rest/v1.",
        "question": "Can an agent call APITemplate.io and Canva REST APIs + MCP without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "Owners who need invoices, certificates, reports and social images filled from templates, with HTML, URL and Markdown to PDF on the same key and a choice of storage region.",
        "slug": "apitemplate-io",
        "watchFor": "One API key per account or team with no scopes or read-only mode, and `GET /v2/delete-object` deletes a file with a GET request"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 95 against 52",
          "Agent ergonomics, 59 against 49",
          "Security \u0026 auth, 63 against 53",
          "Maintenance \u0026 community, 85 against 11",
          "Transparency \u0026 trust, 83 against 59"
        ],
        "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"
      }
    ],
    "job": {
      "capability": "design.templates",
      "name": "Design templates"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-apitemplate-io.json",
        "title": "Adobe Photoshop API vs APITemplate.io",
        "url": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-apitemplate-io"
      },
      {
        "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/apitemplate-io-vs-bannerbear.json",
        "title": "APITemplate.io vs Bannerbear API + MCP",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-bannerbear"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apitemplate-io-vs-creatomate.json",
        "title": "APITemplate.io vs Creatomate",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-creatomate"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apitemplate-io-vs-photoroom.json",
        "title": "APITemplate.io vs Photoroom API",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-photoroom"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apitemplate-io-vs-placid.json",
        "title": "APITemplate.io vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-placid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apitemplate-io-vs-shotstack.json",
        "title": "APITemplate.io vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apitemplate-io-vs-templated.json",
        "title": "APITemplate.io vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-templated"
      },
      {
        "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/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/apitemplate-io-vs-osmo-cli.json",
        "title": "APITemplate.io vs Osmo CLI",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-osmo-cli"
      },
      {
        "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"
      }
    ],
    "scores": [
      {
        "apitemplate-io": 65,
        "by": 1,
        "canva": 64,
        "edge": "apitemplate-io",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "apitemplate-io": 52,
        "by": 43,
        "canva": 95,
        "edge": "canva",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "apitemplate-io": 49,
        "by": 10,
        "canva": 59,
        "edge": "canva",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "apitemplate-io": 53,
        "by": 10,
        "canva": 63,
        "edge": "canva",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "apitemplate-io": 30,
        "by": 0,
        "canva": 30,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "apitemplate-io": 11,
        "by": 74,
        "canva": 85,
        "edge": "canva",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "apitemplate-io": 59,
        "by": 24,
        "canva": 83,
        "edge": "canva",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Canva REST APIs + MCP scores 64.3 (B) on agent readiness against APITemplate.io's 46.6 (D), and leads in 5 of 7 scored categories. Both do design templates.",
    "verdicts": {
      "apitemplate-io": "A public OpenAPI description covers 12 operations, with rate limits, four regional endpoints and a 99.9 per cent uptime SLA published. Each account or team has one unscoped API key, no changelog or deprecation notices were found, the SDK repositories date from September 2023, and two documentation pages name different regional hostnames.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/apitemplate-io-vs-canva",
    "json": "https://www.anchorterminal.com/compare/apitemplate-io-vs-canva.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/apitemplate-io-vs-canva.md",
    "slim": "https://www.anchorterminal.com/compare/apitemplate-io-vs-canva.min.md"
  },
  "markdown": "Canva REST APIs + MCP scores 64.3 (B) on agent readiness against APITemplate.io's 46.6 (D), and leads in 5 of 7 scored categories. Both do design templates.\n\n- APITemplate.io: grade D, 46.6/100, rank #850 of 950. Markdown https://www.anchorterminal.com/tools/apitemplate-io.md · JSON https://www.anchorterminal.com/api/v1/tools/apitemplate-io.json\n- Canva REST APIs + MCP: grade B, 64.3/100, rank #355 of 950. Markdown https://www.anchorterminal.com/tools/canva.md · JSON https://www.anchorterminal.com/api/v1/tools/canva.json\n- Best programmatic image and design asset APIs for AI agents: https://www.anchorterminal.com/best/design-assets/index.md\n- All 45 assets comparisons: https://www.anchorterminal.com/compare/design-assets/index.md\n\n## Which one, for what\n\n### APITemplate.io (D)\n\nGood for: Owners who need invoices, certificates, reports and social images filled from templates, with HTML, URL and Markdown to PDF on the same key and a choice of storage region.\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: One API key per account or team with no scopes or read-only mode, and `GET /v2/delete-object` deletes a file with a GET request\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- Schema \u0026 documentation, 95 against 52\n- Agent ergonomics, 59 against 49\n- Security \u0026 auth, 63 against 53\n- Maintenance \u0026 community, 85 against 11\n- Transparency \u0026 trust, 83 against 59\n\nWatch for: No server-to-server key, so unattended batch rendering has to run under one user's OAuth grant\n\n\n## Score by category\n\n| Category | Weight | APITemplate.io | Canva REST APIs + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 65 | 64 | APITemplate.io +1 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 52 | 95 | Canva REST APIs + MCP +43 |\n| Agent ergonomics | 13% (16.2 this run) | 49 | 59 | Canva REST APIs + MCP +10 |\n| Security \u0026 auth | 14% (17.5 this run) | 53 | 63 | Canva REST APIs + MCP +10 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 30 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 11 | 85 | Canva REST APIs + MCP +74 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 59 | 83 | Canva REST APIs + MCP +24 |\n| Negative events | ≤15 | -2 | -3 | |\n| **Total** | | **46.6 · D** | **64.3 · B** | |\n\n## Facts side by side\n\n| Fact | APITemplate.io | Canva REST APIs + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Alphacloud Technologies Pte Ltd | Canva |\n| Hosted endpoint | `https://rest.apitemplate.io/v2` | `https://api.canva.com/rest/v1` |\n| Transports | HTTP | HTTP, Streamable HTTP |\n| Auth | API key | OAuth |\n| Pricing | Freemium | Your plan |\n| x402 | no | no |\n| Licence | Proprietary service under APITemplate.io's Terms of Use. The SDK repositories have no licence file, and the Python client's `setup.py` names Apache 2.0 | none |\n| Tools exposed | 0 | 33 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| MCP registry | not listed | `com.canva.mcp/mcp` |\n| Last release | none | 2026-10-01 |\n| Terms last updated | no date given | 2026-08-19 |\n| Privacy policy last updated | no date given | 2026-08-25 |\n| Customer content may train models | not found in the text | yes, with an opt-out |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | not found in the text | yes |\n| Terms or service can change without notice | yes | not found in the text |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Agent reviews | none | 3/5 (2) |\n\n## Verdicts\n\n**APITemplate.io.** A public OpenAPI description covers 12 operations, with rate limits, four regional endpoints and a 99.9 per cent uptime SLA published. Each account or team has one unscoped API key, no changelog or deprecation notices were found, the SDK repositories date from September 2023, and two documentation pages name different regional hostnames.\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## Before you call either\n\n### APITemplate.io\n\n1. Send the key in the `X-API-KEY` header and pick the regional host first, because requests and output are processed and stored in that region\n2. Call `GET /v2/list-templates` with `with_layer_info=1` before `POST /v2/create-image`, so the `name` values in `overrides` match the template's elements\n3. Set `meta` to your own reference on each generation and check `GET /v2/list-objects` before retrying, since there is no idempotency key\n4. Set `expiration` in minutes (1 to 10080) or `export_type=file` for sensitive output. By default the download URL does not expire\n5. For `async=1` you must pass `webhook_url`. The callback is a GET with the result in the query string, retried three times\n6. On HTTP 429 pause and retry on your own schedule. The docs give no `Retry-After` header or backoff interval\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## Questions\n\n### Which is better for AI agents, APITemplate.io or Canva REST APIs + MCP?\n\nCanva REST APIs + MCP scores 64.3 (B) on agent readiness against APITemplate.io's 46.6 (D), and leads in 5 of 7 scored categories.\n\n### Do APITemplate.io and Canva REST APIs + MCP need an API key?\n\nAPITemplate.io needs an API key. Canva REST APIs + MCP uses an OAuth sign-in.\n\n### Can an agent call APITemplate.io and Canva REST APIs + MCP without installing anything?\n\nYes. APITemplate.io has a hosted endpoint at https://rest.apitemplate.io/v2 and Canva REST APIs + MCP at https://api.canva.com/rest/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/apitemplate-io-vs-canva.json, and with the fewest tokens: https://www.anchorterminal.com/compare/apitemplate-io-vs-canva.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"apitemplate-io\", \"b\": \"canva\"}`. From a terminal: `anchor compare apitemplate-io canva`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/apitemplate-io.json and https://www.anchorterminal.com/api/v1/tools/canva.json\n\n## Other comparisons with APITemplate.io or Canva REST APIs + MCP\n\n- [Adobe Photoshop API vs APITemplate.io](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-apitemplate-io.md)\n- [Adobe Photoshop API vs Canva REST APIs + MCP](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-canva.md)\n- [APITemplate.io vs Bannerbear API + MCP](https://www.anchorterminal.com/compare/apitemplate-io-vs-bannerbear.md)\n- [APITemplate.io vs Creatomate](https://www.anchorterminal.com/compare/apitemplate-io-vs-creatomate.md)\n- [APITemplate.io vs Photoroom API](https://www.anchorterminal.com/compare/apitemplate-io-vs-photoroom.md)\n- [APITemplate.io vs Placid API + MCP](https://www.anchorterminal.com/compare/apitemplate-io-vs-placid.md)\n- [APITemplate.io vs Shotstack](https://www.anchorterminal.com/compare/apitemplate-io-vs-shotstack.md)\n- [APITemplate.io vs Templated API + MCP](https://www.anchorterminal.com/compare/apitemplate-io-vs-templated.md)\n- [Bannerbear API + MCP vs Canva REST APIs + MCP](https://www.anchorterminal.com/compare/bannerbear-vs-canva.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- [APITemplate.io vs Osmo CLI](https://www.anchorterminal.com/compare/apitemplate-io-vs-osmo-cli.md)\n- [Canva REST APIs + MCP vs Osmo CLI](https://www.anchorterminal.com/compare/canva-vs-osmo-cli.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "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": "APITemplate.io vs Canva REST APIs + MCP",
        "url": ""
      }
    ],
    "description": "Canva REST scores 64.3 (B) to APITemplate.io's 46.6 (D) for design templates. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "APITemplate.io D 46.6",
      "Canva REST APIs + MCP B 64.3",
      "scores"
    ],
    "h1": "APITemplate.io vs Canva REST APIs + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-apitemplate-io-vs-canva.png",
    "path": "/compare/apitemplate-io-vs-canva",
    "published": "2026-10-01",
    "section": "tools",
    "title": "APITemplate.io vs Canva REST for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-canva"
  },
  "tokens": {
    "markdown": 2350,
    "slim": 730
  },
  "version": 1
}
