{
  "data": {
    "a": {
      "slug": "layerre",
      "name": "Layerre",
      "vendor": "Layerre",
      "vendorUrl": "https://layerre.com",
      "kind": "http-api",
      "category": "design-assets",
      "summary": "Layerre turns Canva designs into reusable templates with editable layers and renders PNG, JPEG, WebP or PDF variants from data, through a REST API, a hosted MCP server and no-code connectors.",
      "url": "https://www.anchorterminal.com/tools/layerre",
      "markdownUrl": "https://www.anchorterminal.com/tools/layerre.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/layerre.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/layerre.json",
      "dns": "layerre.grade.anchorterminal.com",
      "repo": "https://github.com/Layerre/layerre-mcp",
      "license": "MIT for the MCP server. The Layerre API is a closed service under terms last updated 13 August 2026",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.layerre.com/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "@layerre/mcp-server"
        }
      ],
      "auth": "mixed",
      "authNotes": "REST uses an API key (`lyr_...`) created at layerre.com/app/api-keys and sent as `Authorization: Bearer`; keys can be rotated in the dashboard. The hosted MCP server at mcp.layerre.com signs in with OAuth 2.1 and PKCE through a Supabase authorisation server, or takes the same API key as a bearer header for headless use. No key scopes documented.",
      "pricing": "freemium",
      "pricingNotes": "Free $0 with 50 renders a month and API access. Starter $15 a month (500 renders), Plus $29 (2,000, up to 3 seats), Pro $99 (20,000, up to 10 seats); yearly plans give two months free. Each template import and each variant is one render. No overage; upgrade or wait for the reset.",
      "priceSummary": "$15 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "Subscriptions billed through Stripe. No x402, MPP or L402 in the OpenAPI, llms.txt, auth.md or pricing.md (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": 13,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 119,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://layerre.com/docs/",
      "llmsTxt": "https://layerre.com/llms.txt",
      "openapi": "https://layerre.com/openapi.json",
      "registryName": "com.layerre/layerre",
      "capabilities": [
        "design.templates",
        "design.render",
        "pdf.generate"
      ],
      "tags": [
        "hosted",
        "mcp",
        "remote-mcp",
        "mcp-registry",
        "openapi",
        "llms-txt",
        "oauth",
        "api-key",
        "freemium",
        "free-tier",
        "canva",
        "bulk"
      ],
      "lastRelease": "2026-10-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 57.6,
        "grade": "C",
        "agentReady": false,
        "rank": 785,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 6,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 78,
          "payments": 25,
          "reliability": 42,
          "schema": 87,
          "security": 48,
          "transparency": 63
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "A public OpenAPI 3.1 contract, published rate limits with Retry-After, and 13 annotated MCP tools that can't delete anything make Layerre straightforward for an agent to call. It works only from Canva designs, is run by a sole proprietor with no status page or SLA, and its API and MCP server are at version 0.1.0.",
        "bestFor": "Bulk image and PDF variants from Canva designs a team already has.",
        "strengths": [
          "Public OpenAPI 3.1 with examples, llms.txt and Markdown mirrors of key pages",
          "Rate limits in numbers, and 429 responses with Retry-After plus retry code samples",
          "Every MCP tool carries readOnly, destructive and idempotent hints, and the server has no delete or billing tools",
          "Free plan of 50 renders a month includes API access",
          "Privacy policy and DPA name ten subprocessors with locations"
        ],
        "weaknesses": [
          "Imports Canva designs only; there is no template editor of its own",
          "No status page or SLA found",
          "API and MCP server are at version 0.1.0, with the MCP package first published on 29 October 2026",
          "No key scopes or read-only key documented",
          "Run by a sole proprietorship in Ontario with no named owner on its pages"
        ],
        "agentNotes": [
          "Call `layerre_auth_status` first to confirm the connection",
          "Read a template's layer IDs with `layerre_get_template` before creating variants",
          "Use the bulk variant endpoint for batches; each variant still costs one render",
          "On 429 wait for the Retry-After seconds; limits are per IP address",
          "Expect template import from a Canva link to take 10 to 30 seconds"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 57.6
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 78,
          "payments": 25,
          "reliability": 42,
          "schema": 87,
          "security": 48,
          "transparency": 64
        },
        "provenanceScore": 62,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl https://api.layerre.com/v1/templates -H \"Authorization: Bearer $LAYERRE_API_KEY\"",
        "claudeCode": "claude mcp add --transport http layerre https://mcp.layerre.com/mcp",
        "config": {
          "mcpServers": {
            "layerre": {
              "url": "https://mcp.layerre.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.templates",
        "tool": "https://letme.dev/layerre"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Starter plan",
          "unit": "month",
          "usd": 15,
          "note": "500 renders a month, about $0.03 a render"
        },
        {
          "item": "Plus plan",
          "unit": "month",
          "usd": 29,
          "note": "2,000 renders a month, up to 3 seats"
        },
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 99,
          "note": "20,000 renders a month, about $0.005 a render, up to 10 seats"
        }
      ],
      "provenance": {
        "legalEntity": "Layerre (sole proprietorship, Ontario, Canada)",
        "domain": "layerre.com",
        "domainRegistered": "2025-08-13",
        "endpointOnVendorDomain": true,
        "terms": "https://layerre.com/terms/",
        "privacy": "https://layerre.com/privacy/",
        "statusPage": "",
        "changelog": "https://layerre.com/whats-new/",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "The terms, privacy policy and DPA, all last updated 13 August 2026, name Layerre, a sole proprietorship based in Ontario, Canada, under Ontario law. No owner is named on the site; the MCP repository's commits are by Nicole Streltsov.",
          "The terms forbid automated systems (bots, scrapers) without permission. Public pages were read as data.",
          "layerre.com/robots.txt disallows /app/, /reset-password and /oauth/, with Content-Signal ai-train=no, search=yes, ai-input=yes. layerre-landing.pages.dev serves the same robots.txt and site.",
          "RDAP gives layerre.com a registration date of 13 August 2025.",
          "/.well-known/security.txt answers 200 with the site's HTML shell, not a security.txt file. No status page found. The What's New pages are drawn by script; their dates come from the sitemap."
        ],
        "score": 62
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/layerre.json",
      "live": {
        "slug": "layerre",
        "probe": {
          "target": "https://api.layerre.com/v1",
          "method": "get",
          "lastAt": "2026-11-07T18:20:34.768332322Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 361,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 308,
          "p95ms24h": 406,
          "samples24h": 200,
          "samples30d": 200,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "com.layerre/layerre",
            "version": "0.1.0",
            "seenAt": "2026-11-07T18:16:28.95801333Z"
          },
          {
            "registry": "npm",
            "name": "@layerre/mcp-server",
            "version": "0.1.0",
            "seenAt": "2026-11-06T23:39:10.744093049Z"
          }
        ],
        "githubStars": 0,
        "npmWeekly": 119,
        "securityTxt": {
          "url": "https://layerre.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:04.824003957Z"
        },
        "llmsTxt": {
          "url": "https://layerre.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:52.000761574Z"
        },
        "pages": [
          {
            "url": "https://layerre.com/whats-new/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:12:39.384244794Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a76ef99f3a88"
          },
          {
            "url": "https://layerre.com/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:12:35.304236441Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a76ef99f3a88"
          },
          {
            "url": "https://layerre.com/terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:12:37.533574445Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a76ef99f3a88"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.layerre.com/mcp",
          "checkedAt": "2026-11-07T01:51:50.188462603Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-06T01:38:41.856942389Z"
        },
        "updatedAt": "2026-11-07T18:20:34.768332322Z"
      }
    },
    "answer": "Templated API + MCP scores 58.8 (C) on agent readiness against Layerre's 57.6 (C), and leads in 5 of 7 scored categories. Layerre leads on schema \u0026 documentation and security \u0026 auth.",
    "b": {
      "slug": "templated",
      "name": "Templated API + MCP",
      "vendor": "Templated",
      "vendorUrl": "https://templated.io",
      "kind": "http-api",
      "category": "design-assets",
      "summary": "Template rendering to JPG, PNG, WebP, multi-page PDF and MP4 (up to 90 seconds at 60 fps) through one POST /v1/render endpoint, plus template, folder, upload and font management.",
      "url": "https://www.anchorterminal.com/tools/templated",
      "markdownUrl": "https://www.anchorterminal.com/tools/templated.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/templated.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/templated.json",
      "dns": "templated.grade.anchorterminal.com",
      "repo": "https://github.com/templated-io/mcp-server-templated",
      "license": "MIT",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.templated.io/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "mcp-server-templated"
        }
      ],
      "auth": "mixed",
      "authNotes": "Bearer API key from the dashboard, with full account access. The hosted MCP signs in with OAuth, or takes ?apiKey= in the URL for automations. The local MCP reads TEMPLATED_API_KEY. The MCP can be scoped by folder or external ID to isolate customers.",
      "pricing": "paid",
      "pricingNotes": "Free trial with 50 credits and no card. Starter $39 a month or $29 billed yearly (1,000 credits, 60 requests a minute), Scale $99 or $79 (5,000 credits, 150 a minute), Enterprise $229 or $179 (25,000 credits, 300 a minute), custom from $500 a month. 1 image or 1 PDF page is 1 credit. Video is width x height x fps x seconds / 50,000,000, so 10 seconds of 1080p at 30 fps is 13 credits (https://templated.io/pricing/).",
      "priceSummary": "$39 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "Subscription credits only. No x402 in the docs or llms-full.txt (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 25,
      "popularity": {
        "githubStars": 3,
        "npmWeekly": 62,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://templated.io/docs/",
      "llmsTxt": "https://templated.io/llms.txt",
      "registryName": "io.github.templated-io/mcp-server-templated",
      "capabilities": [
        "design.templates",
        "design.render",
        "video.render"
      ],
      "tags": [
        "hosted",
        "mcp",
        "llms-txt",
        "no-card",
        "async-jobs",
        "webhooks"
      ],
      "lastRelease": "2026-10-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 58.8,
        "grade": "C",
        "agentReady": false,
        "rank": 726,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 5,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 70,
          "maintenance": 80,
          "payments": 35,
          "reliability": 65,
          "schema": 74,
          "security": 42,
          "transparency": 76
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-02"
        },
        "negative": -3,
        "negativeNotes": [
          "-3, 8 October 2026. mcp-server-templated 1.9.0, a minor release with no advance notice found, rejects layer names a template doesn't have before rendering, and `layers` sent with `pages` (the API docs say `layers` is then ignored), so create_render calls that rendered and were charged on 1.8.0 now fail. The tag's commit message is the only record (https://github.com/templated-io/mcp-server-templated/commit/7b50f47bcab07677e2566317e85c490df61fec54)"
        ],
        "verdict": "Templated's MIT-licensed MCP server has 25 tools, each annotated with readOnlyHint and destructiveHint, and can be fenced to one folder or customer. The REST key has full account access, the MCP docs still document it as ?apiKey= in the URL, and MCP 1.9.0 began rejecting calls 1.8.0 accepted with no notice.",
        "bestFor": "Agents and SaaS builders who render images, PDFs and short MP4s from templates and want a well-behaved MCP server they can fence per customer.",
        "strengths": [
          "MIT-licensed MCP server with 25 tools, every one annotated with readOnlyHint and destructiveHint",
          "Listed in the official MCP registry, with 1.9.0 published from CI by GitHub OIDC on 8 October 2026",
          "llms.txt, llms-full.txt and a Markdown version of every page, including the price list with rate limits per plan",
          "MCP 1.9.0 turns API errors into next steps, such as which list tool to call for a missing ID",
          "MCP can be locked to one folder or external ID for customer-facing use"
        ],
        "weaknesses": [
          "One API key with full account access, and the MCP docs document it as ?apiKey= in the URL",
          "No OpenAPI, and no 429 handling in the API docs. Error tables cover five endpoints, not create render",
          "No official SDKs, only code samples",
          "MCP 1.9.0 began rejecting renders with unknown layer names, or with both `layers` and `pages`, with no advance notice",
          "AI functions send content to Gemini, OpenAI, Anthropic and DeepSeek per the privacy policy"
        ],
        "agentNotes": [
          "Call get_template_layers before create_render. MCP 1.9.0 rejects layer names the template doesn't have",
          "Set async true with a webhook_url for MP4, zip or batch renders, since zip without a webhook returns 400",
          "Video credits are width x height x fps x seconds / 50,000,000, so 10 seconds of 1080p at 30 fps costs 13",
          "Pass folderId or externalId on the MCP URL when one server serves several customers",
          "On a 429 wait for Retry-After when present and send batch calls one at a time. The API docs give no retry guidance"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 58.8
          }
        ],
        "editorialScores": {
          "ergonomics": 70,
          "maintenance": 80,
          "payments": 35,
          "reliability": 65,
          "schema": 74,
          "security": 42,
          "transparency": 61
        },
        "provenanceScore": 91,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-02",
            "maintenance": "2026-11-02",
            "payments": "2026-11-02",
            "reliability": "2026-11-02",
            "schema": "2026-11-02",
            "security": "2026-11-02",
            "transparency": "2026-11-02"
          },
          "last": "2026-11-02",
          "lastMoved": "2026-11-02",
          "oldest": "2026-11-02",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl https://api.templated.io/v1/account -H \"Authorization: Bearer $TEMPLATED_API_KEY\"",
        "claudeCode": "claude mcp add --transport http templated https://mcp.templated.io/mcp",
        "config": {
          "mcpServers": {
            "templated": {
              "args": [
                "mcp-server-templated"
              ],
              "command": "npx",
              "env": {
                "TEMPLATED_API_KEY": "${TEMPLATED_API_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.templates",
        "tool": "https://letme.dev/templated"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Starter",
          "unit": "month",
          "usd": 39,
          "note": "1,000 credits, $29 a month billed yearly"
        },
        {
          "item": "Scale",
          "unit": "month",
          "usd": 99,
          "note": "5,000 credits, $79 a month billed yearly"
        },
        {
          "item": "Enterprise",
          "unit": "month",
          "usd": 229,
          "note": "25,000 credits, $179 a month billed yearly"
        }
      ],
      "provenance": {
        "legalEntity": "Fields Apps LTDA",
        "domain": "templated.io",
        "domainRegistered": "2023-11-13",
        "endpointOnVendorDomain": true,
        "terms": "https://templated.io/terms/",
        "privacy": "https://templated.io/privacy/",
        "statusPage": "https://status.templated.io",
        "changelog": "https://templated.io/changelog/",
        "securityTxt": "valid",
        "checked": "2026-11-02",
        "score": 91
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/templated.json",
      "live": {
        "slug": "templated",
        "probe": {
          "target": "https://api.templated.io/v1",
          "method": "get",
          "lastAt": "2026-11-07T18:20:59.283598226Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 408,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 397,
          "p95ms24h": 502,
          "samples24h": 239,
          "samples30d": 7910,
          "days": [
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.templated.io",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:48:51.829427572Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.github.templated-io/mcp-server-templated",
            "version": "1.9.0",
            "seenAt": "2026-11-07T18:16:28.95801333Z"
          },
          {
            "registry": "npm",
            "name": "mcp-server-templated",
            "version": "1.9.0",
            "seenAt": "2026-11-07T00:10:43.303651038Z"
          }
        ],
        "githubStars": 3,
        "npmWeekly": 83,
        "securityTxt": {
          "url": "https://templated.io/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-10-08T00:00:00.000Z",
          "checkedAt": "2026-11-07T16:00:06.654551276Z"
        },
        "llmsTxt": {
          "url": "https://templated.io/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:34:06.909454564Z"
        },
        "domain": {
          "domain": "templated.io",
          "checkedAt": "2026-11-01T14:24:50.055557925Z"
        },
        "pages": [
          {
            "url": "https://feedback.templated.io/changelog",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-11-04T08:23:53.510667973Z",
            "changedAt": "2026-10-28T04:17:57.080186519Z",
            "fingerprint": "a4282626df2d"
          },
          {
            "url": "https://templated.io/changelog/",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-11-07T14:21:59.79321814Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a4282626df2d"
          },
          {
            "url": "https://templated.io/pricing/",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-11-07T14:22:02.063812867Z",
            "changedAt": "2026-10-28T04:45:05.453657396Z",
            "fingerprint": "e4d8862f8143"
          },
          {
            "url": "https://templated.io/privacy/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-11-07T14:22:04.092435491Z",
            "changedAt": "2026-10-28T04:45:07.749121998Z",
            "fingerprint": "954d5276433a"
          },
          {
            "url": "https://templated.io/terms/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-11-07T14:22:06.108841922Z",
            "changedAt": "2026-10-28T04:45:09.80136904Z",
            "fingerprint": "ea54a342875f"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.templated.io/mcp",
          "checkedAt": "2026-11-07T01:48:35.379126483Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:48:35.379126483Z"
        },
        "github": {
          "repo": "templated-io/mcp-server-templated",
          "checkedAt": "2026-11-02T09:30:41.8990944Z",
          "stars": 3,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-14T19:46:16Z",
          "openIssues": 0,
          "openPRs": 0,
          "issuesOpened90d": 0,
          "issuesClosed90d": 0,
          "prsMerged90d": 0
        },
        "updatedAt": "2026-11-07T18:20:59.283598226Z"
      }
    },
    "edges": [
      {
        "by": 23,
        "category": "reliability",
        "leads": "templated",
        "name": "Reliability",
        "reasons": {
          "a": "Hosted lines, for the REST API and the hosted MCP server. No status page found on the site, in llms.txt or in the docs (0). No readable incident history (5). Rate limits published as 10 requests a second, a 20-request burst and 600 a minute per IP address (15). A 429 carries Retry-After and a `retry_after` field, and the docs give retry code samples. No idempotency key or safe-retry note for variant creation, which spends renders (12 of 15). No SLA found (0). Neither surface is labelled beta, though both are at version 0.1.0 (10). 0 + 5 + 15 + 12 + 0 + 10 = 42.",
          "b": "Better Stack status page with API, App and Website components over 30, 60 and 90 days (20). The incidents page lists no incident for September, October or November 2026 and the RSS feed holds no entry, so the page has never posted one. This run scores a page that has never posted an incident 20, not the 30 of a clean record, and the page's own figure for the API is 100 per cent over 90 days (20). Rate limits per plan in the Markdown price list, 60, 150 and 300 requests a minute (15). No 429 behaviour, Retry-After or retry advice in the API docs or llms-full.txt. MCP 1.9.0 tells the model to wait and retry after a 429, which isn't API documentation (0). The pricing page lists \"SLA \u0026 dedicated support\" on the custom plan from $500 a month, with no SLA document or figure found (0). The render API is GA. Video launched on 7 January 2026 as \"now live\" (10). 20 + 20 + 15 + 0 + 0 + 10 = 65."
        },
        "scores": {
          "a": 42,
          "b": 65
        }
      },
      {
        "by": 13,
        "category": "schema",
        "leads": "layerre",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "Public OpenAPI 3.1 at layerre.com/openapi.json with 16 operations, and zod schemas on all 13 MCP tools in the open-source server (25). llms.txt, auth.md and Markdown mirrors of the pricing, FAQ and integration pages (10). Every operation has a description, and tool descriptions note costs such as 'an expensive operation that may take 10-30 seconds', without saying when not to use a tool (15 of 20). Layer properties have minimums, maximums and enums such as `text_align`, and list calls cap `limit` at 1,000 (14 of 15). 88 examples in the spec, and 404, 422 and 429 responses documented on most operations (13 of 15). Versioned /v1 paths and dated What's New pages, read from the sitemap since the pages are drawn by script; the API itself is version 0.1.0 (10 of 15). 25 + 10 + 15 + 14 + 13 + 10 = 87.",
          "b": "No OpenAPI. All 25 MCP tools carry typed JSON Schema inputs, and server.json is published to the MCP registry, so partial credit (18). llms.txt, llms-small.txt, llms-full.txt, pricing.md and a Markdown version of every page (10). Some MCP descriptions guide the model well (update_template explains pages versus layers, create_render names get_template_layers first), others are one line (12). Format and layer type enums and a required template field, and MCP 1.9.0 caps list limits at 100 in the schema, but size, scale and fps limits sit in prose rather than min and max, and `layers` is an open object (10). Request and response examples per endpoint. Error tables with status codes appear on five endpoints (font, render, template and upload deletes and template update), none on create render (9). Versioned /v1 path, a dated changelog now at templated.io/changelog/ and tagged MCP releases (15). 18 + 10 + 12 + 10 + 9 + 15 = 74."
        },
        "scores": {
          "a": 87,
          "b": 74
        }
      },
      {
        "by": 13,
        "category": "transparency",
        "leads": "templated",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "The MCP server is MIT. The service is closed under terms of 13 August 2026 that name a sole proprietorship in Ontario (20 of 30). The privacy policy and DPA of the same date agree. Data is kept while the account is active and deleted from production on account deletion, with limited backups. Design files aren't used to train public AI models. Google Analytics runs on accepted cookies (24 of 30). No deprecation policy or notice period (0). Ten subprocessors listed with purpose and location in both documents, including Supabase, Stripe, Cloudflare, Google, Resend, Canva and Slack (20). 20 + 24 + 0 + 20 = 64.",
          "b": "MCP server MIT with a `LICENSE` file. The rendering service is closed under published terms (18). Privacy policy updated 18 October 2026 with retention stated per data type (until you delete, files purged within 90 days of deletion, logs up to 90 days, billing records five years) and a DPA at templated.io/dpa, though it doesn't say whether customer content trains models (25). No deprecation policy or dated deprecation notices found (0). Subprocessors named by purpose, including Gemini, OpenAI, Anthropic and DeepSeek for AI functions, Photoroom for background removal, PostHog and Plausible for analytics and Stripe, Creem and Spedy for payments (18). 18 + 25 + 0 + 18 = 61."
        },
        "scores": {
          "a": 63,
          "b": 76
        }
      },
      {
        "by": 10,
        "category": "payments",
        "leads": "templated",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). Plan prices are public with render counts, and one import or one variant is one render, so the price a render follows from the plan (about $0.03 on Starter, $0.005 on Pro) without being published per unit (15 of 20). Free plan of 50 renders a month with API access; the pricing page doesn't say whether a card is needed (10 of 20, half as with an unstated card rule). A person signs up and creates the key, or approves OAuth in a browser (0). 0 + 15 + 10 + 0 = 25.",
          "b": "No x402, MPP or L402 in the docs or llms-full.txt (0). Plan prices and per-unit credit rules are public in pricing.md, 1 credit an image or PDF page and a pixel-rate formula for video (15). Trial of 50 credits with no card (20). A person signs up in a browser for a key or an OAuth login, including through Claude's connectors directory since 27 October 2026 (0). 0 + 15 + 20 + 0 = 35."
        },
        "scores": {
          "a": 25,
          "b": 35
        }
      },
      {
        "by": 6,
        "category": "security",
        "leads": "layerre",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "OAuth 2.1 with PKCE for MCP through a Supabase authorisation server, and revocable `lyr_` API keys with rotation in the dashboard. No scopes documented for either, and auth.md says the REST API has no OAuth yet (22 of 30). The MCP server cannot delete templates, change billing or manage API keys, but there is no read-only key or endpoint (12 of 20). Tools return the user's own templates and renders; template import fetches a Canva link the user gives (10 of 15). The open-source server emits audit log lines for each tool call for whoever runs it, and nothing per call is documented for the hosted service (4 of 15). No security.txt (the path returns the site's HTML shell), disclosure policy, bug bounty or certification (0). 22 + 12 + 10 + 4 + 0 = 48.",
          "b": "The REST key has full account access by the docs' own words, and the privacy policy says it can be regenerated. The hosted MCP is an OAuth 2.1 resource server since MCP 1.6.0 (18). The MCP setup guide still documents ?apiKey= in the server URL for automations, less 10 (8). Folder and external ID scoping is enforced server side, and destructive tools are annotated so clients can ask first. No read-only key (12). Tool results pass through allowlists, and the docs describe server-side scoping as a guard against prompt injection (12). No audit log or per-call log found for the customer beyond the render list (3). A valid security.txt since 28 October 2026 (Last-Modified), sending reports to support@templated.io and expiring 8 October 2027, and 2FA since September 2026. No certification or bug bounty found (7, as a valid security.txt to a support address with nothing else). 8 + 12 + 12 + 3 + 7 = 42."
        },
        "scores": {
          "a": 48,
          "b": 42
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Layerre",
        "b": "Templated",
        "name": "Vendor"
      },
      {
        "a": "https://api.layerre.com/v1",
        "b": "https://api.templated.io/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "b": "HTTP, Streamable HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT for the MCP server. The Layerre API is a closed service under terms last updated 13 August 2026",
        "b": "MIT",
        "name": "Licence"
      },
      {
        "a": "13",
        "b": "25",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "com.layerre/layerre",
        "b": "io.github.templated-io/mcp-server-templated",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-29",
        "b": "2026-10-08",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2026-01-10",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2026-09-08",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "119 npm/wk",
        "b": "3 stars, 62 npm/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "4/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Templated API + MCP scores 58.8 (C) on agent readiness against Layerre's 57.6 (C), and leads in 5 of 7 scored categories. Layerre leads on schema \u0026 documentation and security \u0026 auth.",
        "question": "Which is better for AI agents, Layerre or Templated API + MCP?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Layerre and Templated API + MCP need an API key?"
      },
      {
        "answer": "Yes. Layerre has a hosted endpoint at https://api.layerre.com/v1 and Templated API + MCP at https://api.templated.io/v1.",
        "question": "Can an agent call Layerre and Templated API + MCP without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 87 against 74",
          "Security \u0026 auth, 48 against 42"
        ],
        "also": [
          "No incidents deducted, where Templated API + MCP loses 3 points for them"
        ],
        "goodFor": "Bulk image and PDF variants from Canva designs a team already has.",
        "slug": "layerre",
        "watchFor": "Imports Canva designs only; there is no template editor of its own"
      },
      {
        "aheadOn": [
          "Reliability, 65 against 42",
          "Payments \u0026 pricing, 35 against 25",
          "Transparency \u0026 trust, 76 against 63"
        ],
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "Agents and SaaS builders who render images, PDFs and short MP4s from templates and want a well-behaved MCP server they can fence per customer.",
        "slug": "templated",
        "watchFor": "One API key with full account access, and the MCP docs document it as ?apiKey= in the URL"
      }
    ],
    "history": {
      "layerre": null,
      "templated": [
        {
          "causes": [
            "security",
            "product",
            "evidence",
            "correction",
            "event"
          ],
          "date": "2026-11-02",
          "delta": -2.5,
          "from": 61.3,
          "fromGrade": "C",
          "to": 58.8,
          "toGrade": "C"
        },
        {
          "causes": [
            "evidence"
          ],
          "date": "2026-10-28",
          "delta": 0.1,
          "from": 61.2,
          "fromGrade": "C",
          "to": 61.3,
          "toGrade": "C"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.1,
          "from": 61.3,
          "fromGrade": "C",
          "to": 61.2,
          "toGrade": "C"
        }
      ]
    },
    "job": {
      "capability": "design.templates",
      "name": "Design templates"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-layerre.json",
        "title": "Adobe Photoshop API vs Layerre",
        "url": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-layerre"
      },
      {
        "json": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-templated.json",
        "title": "Adobe Photoshop API vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-templated"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apitemplate-io-vs-layerre.json",
        "title": "APITemplate.io vs Layerre",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-layerre"
      },
      {
        "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-layerre.json",
        "title": "Bannerbear API + MCP vs Layerre",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-layerre"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bannerbear-vs-templated.json",
        "title": "Bannerbear API + MCP vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-templated"
      },
      {
        "json": "https://www.anchorterminal.com/compare/canva-vs-layerre.json",
        "title": "Canva REST APIs + MCP vs Layerre",
        "url": "https://www.anchorterminal.com/compare/canva-vs-layerre"
      },
      {
        "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/contentdrips-vs-layerre.json",
        "title": "Contentdrips API and MCP vs Layerre",
        "url": "https://www.anchorterminal.com/compare/contentdrips-vs-layerre"
      },
      {
        "json": "https://www.anchorterminal.com/compare/contentdrips-vs-templated.json",
        "title": "Contentdrips API and MCP vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/contentdrips-vs-templated"
      },
      {
        "json": "https://www.anchorterminal.com/compare/creatomate-vs-layerre.json",
        "title": "Creatomate vs Layerre",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-layerre"
      },
      {
        "json": "https://www.anchorterminal.com/compare/creatomate-vs-templated.json",
        "title": "Creatomate vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-templated"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dynapictures-vs-layerre.json",
        "title": "DynaPictures vs Layerre",
        "url": "https://www.anchorterminal.com/compare/dynapictures-vs-layerre"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dynapictures-vs-templated.json",
        "title": "DynaPictures vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/dynapictures-vs-templated"
      },
      {
        "json": "https://www.anchorterminal.com/compare/layerre-vs-photoroom.json",
        "title": "Layerre vs Photoroom API",
        "url": "https://www.anchorterminal.com/compare/layerre-vs-photoroom"
      },
      {
        "json": "https://www.anchorterminal.com/compare/layerre-vs-pictify.json",
        "title": "Layerre vs Pictify",
        "url": "https://www.anchorterminal.com/compare/layerre-vs-pictify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/layerre-vs-pixelixe.json",
        "title": "Layerre vs Pixelixe",
        "url": "https://www.anchorterminal.com/compare/layerre-vs-pixelixe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/layerre-vs-placid.json",
        "title": "Layerre vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/layerre-vs-placid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/layerre-vs-postnitro.json",
        "title": "Layerre vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/layerre-vs-postnitro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/layerre-vs-robolly.json",
        "title": "Layerre vs Robolly",
        "url": "https://www.anchorterminal.com/compare/layerre-vs-robolly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/layerre-vs-shotstack.json",
        "title": "Layerre vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/layerre-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photoroom-vs-templated.json",
        "title": "Photoroom API vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/photoroom-vs-templated"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pixelixe-vs-templated.json",
        "title": "Pixelixe vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/pixelixe-vs-templated"
      },
      {
        "json": "https://www.anchorterminal.com/compare/placid-vs-templated.json",
        "title": "Placid API + MCP vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/placid-vs-templated"
      },
      {
        "json": "https://www.anchorterminal.com/compare/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/robolly-vs-templated.json",
        "title": "Robolly vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/robolly-vs-templated"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shotstack-vs-templated.json",
        "title": "Shotstack vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/shotstack-vs-templated"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-layerre.json",
        "title": "Abyssale vs Layerre",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-layerre"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-templated.json",
        "title": "Abyssale vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-templated"
      },
      {
        "json": "https://www.anchorterminal.com/compare/layerre-vs-osmo-cli.json",
        "title": "Layerre vs Osmo CLI",
        "url": "https://www.anchorterminal.com/compare/layerre-vs-osmo-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/osmo-cli-vs-templated.json",
        "title": "Osmo CLI vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/osmo-cli-vs-templated"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pictify-vs-templated.json",
        "title": "Pictify vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/pictify-vs-templated"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 23,
        "edge": "templated",
        "key": "reliability",
        "layerre": 42,
        "name": "Reliability",
        "templated": 65,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 13,
        "edge": "layerre",
        "key": "schema",
        "layerre": 87,
        "name": "Schema \u0026 documentation",
        "templated": 74,
        "weight": 13
      },
      {
        "by": 1,
        "edge": "templated",
        "key": "ergonomics",
        "layerre": 69,
        "name": "Agent ergonomics",
        "templated": 70,
        "weight": 13
      },
      {
        "by": 6,
        "edge": "layerre",
        "key": "security",
        "layerre": 48,
        "name": "Security \u0026 auth",
        "templated": 42,
        "weight": 14
      },
      {
        "by": 10,
        "edge": "templated",
        "key": "payments",
        "layerre": 25,
        "name": "Payments \u0026 pricing",
        "templated": 35,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 2,
        "edge": "templated",
        "key": "maintenance",
        "layerre": 78,
        "name": "Maintenance \u0026 community",
        "templated": 80,
        "weight": 7
      },
      {
        "by": 13,
        "edge": "templated",
        "key": "transparency",
        "layerre": 63,
        "name": "Transparency \u0026 trust",
        "templated": 76,
        "weight": 7
      }
    ],
    "summary": "Templated API + MCP scores 58.8 (C) on agent readiness against Layerre's 57.6 (C), and leads in 5 of 7 scored categories. Layerre leads on schema \u0026 documentation and security \u0026 auth. Both do design templates.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "layerre": "A public OpenAPI 3.1 contract, published rate limits with Retry-After, and 13 annotated MCP tools that can't delete anything make Layerre straightforward for an agent to call. It works only from Canva designs, is run by a sole proprietor with no status page or SLA, and its API and MCP server are at version 0.1.0.",
      "templated": "Templated's MIT-licensed MCP server has 25 tools, each annotated with readOnlyHint and destructiveHint, and can be fenced to one folder or customer. The REST key has full account access, the MCP docs still document it as ?apiKey= in the URL, and MCP 1.9.0 began rejecting calls 1.8.0 accepted with no notice."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/layerre-vs-templated",
    "json": "https://www.anchorterminal.com/compare/layerre-vs-templated.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/layerre-vs-templated.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/layerre-vs-templated.min.md"
  },
  "markdown": "Templated API + MCP scores 58.8 (C) on agent readiness against Layerre's 57.6 (C), and leads in 5 of 7 scored categories. Layerre leads on schema \u0026 documentation and security \u0026 auth. Both do design templates.\n\n- Layerre: grade C, 57.6/100, rank #785 of 1486. Markdown https://www.anchorterminal.com/tools/layerre.md · JSON https://www.anchorterminal.com/api/v1/tools/layerre.json\n- Templated API + MCP: grade C, 58.8/100, rank #726 of 1486. Markdown https://www.anchorterminal.com/tools/templated.md · JSON https://www.anchorterminal.com/api/v1/tools/templated.json\n- Best programmatic image and design asset APIs for AI agents: https://www.anchorterminal.com/best/design-assets/index.md\n- All 153 assets comparisons: https://www.anchorterminal.com/compare/design-assets/index.md\n\n## Which one, for what\n\n### Layerre (C)\n\nGood for: Bulk image and PDF variants from Canva designs a team already has.\n\nAhead on:\n- Schema \u0026 documentation, 87 against 74\n- Security \u0026 auth, 48 against 42\n\nAlso in its favour:\n- No incidents deducted, where Templated API + MCP loses 3 points for them\n\nWatch for: Imports Canva designs only; there is no template editor of its own\n\n### Templated API + MCP (C)\n\nGood for: Agents and SaaS builders who render images, PDFs and short MP4s from templates and want a well-behaved MCP server they can fence per customer.\n\nAhead on:\n- Reliability, 65 against 42\n- Payments \u0026 pricing, 35 against 25\n- Transparency \u0026 trust, 76 against 63\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: One API key with full account access, and the MCP docs document it as ?apiKey= in the URL\n\n\n## Why the edge\n\n### Reliability: Templated API + MCP +23\n\n- Layerre (42): Hosted lines, for the REST API and the hosted MCP server. No status page found on the site, in llms.txt or in the docs (0). No readable incident history (5). Rate limits published as 10 requests a second, a 20-request burst and 600 a minute per IP address (15). A 429 carries Retry-After and a `retry_after` field, and the docs give retry code samples. No idempotency key or safe-retry note for variant creation, which spends renders (12 of 15). No SLA found (0). Neither surface is labelled beta, though both are at version 0.1.0 (10). 0 + 5 + 15 + 12 + 0 + 10 = 42.\n- Templated API + MCP (65): Better Stack status page with API, App and Website components over 30, 60 and 90 days (20). The incidents page lists no incident for September, October or November 2026 and the RSS feed holds no entry, so the page has never posted one. This run scores a page that has never posted an incident 20, not the 30 of a clean record, and the page's own figure for the API is 100 per cent over 90 days (20). Rate limits per plan in the Markdown price list, 60, 150 and 300 requests a minute (15). No 429 behaviour, Retry-After or retry advice in the API docs or llms-full.txt. MCP 1.9.0 tells the model to wait and retry after a 429, which isn't API documentation (0). The pricing page lists \"SLA \u0026 dedicated support\" on the custom plan from $500 a month, with no SLA document or figure found (0). The render API is GA. Video launched on 7 January 2026 as \"now live\" (10). 20 + 20 + 15 + 0 + 0 + 10 = 65.\n\n### Schema \u0026 documentation: Layerre +13\n\n- Layerre (87): Public OpenAPI 3.1 at layerre.com/openapi.json with 16 operations, and zod schemas on all 13 MCP tools in the open-source server (25). llms.txt, auth.md and Markdown mirrors of the pricing, FAQ and integration pages (10). Every operation has a description, and tool descriptions note costs such as 'an expensive operation that may take 10-30 seconds', without saying when not to use a tool (15 of 20). Layer properties have minimums, maximums and enums such as `text_align`, and list calls cap `limit` at 1,000 (14 of 15). 88 examples in the spec, and 404, 422 and 429 responses documented on most operations (13 of 15). Versioned /v1 paths and dated What's New pages, read from the sitemap since the pages are drawn by script; the API itself is version 0.1.0 (10 of 15). 25 + 10 + 15 + 14 + 13 + 10 = 87.\n- Templated API + MCP (74): No OpenAPI. All 25 MCP tools carry typed JSON Schema inputs, and server.json is published to the MCP registry, so partial credit (18). llms.txt, llms-small.txt, llms-full.txt, pricing.md and a Markdown version of every page (10). Some MCP descriptions guide the model well (update_template explains pages versus layers, create_render names get_template_layers first), others are one line (12). Format and layer type enums and a required template field, and MCP 1.9.0 caps list limits at 100 in the schema, but size, scale and fps limits sit in prose rather than min and max, and `layers` is an open object (10). Request and response examples per endpoint. Error tables with status codes appear on five endpoints (font, render, template and upload deletes and template update), none on create render (9). Versioned /v1 path, a dated changelog now at templated.io/changelog/ and tagged MCP releases (15). 18 + 10 + 12 + 10 + 9 + 15 = 74.\n\n### Transparency \u0026 trust: Templated API + MCP +13\n\n- Layerre (63): The MCP server is MIT. The service is closed under terms of 13 August 2026 that name a sole proprietorship in Ontario (20 of 30). The privacy policy and DPA of the same date agree. Data is kept while the account is active and deleted from production on account deletion, with limited backups. Design files aren't used to train public AI models. Google Analytics runs on accepted cookies (24 of 30). No deprecation policy or notice period (0). Ten subprocessors listed with purpose and location in both documents, including Supabase, Stripe, Cloudflare, Google, Resend, Canva and Slack (20). 20 + 24 + 0 + 20 = 64.\n- Templated API + MCP (76): MCP server MIT with a `LICENSE` file. The rendering service is closed under published terms (18). Privacy policy updated 18 October 2026 with retention stated per data type (until you delete, files purged within 90 days of deletion, logs up to 90 days, billing records five years) and a DPA at templated.io/dpa, though it doesn't say whether customer content trains models (25). No deprecation policy or dated deprecation notices found (0). Subprocessors named by purpose, including Gemini, OpenAI, Anthropic and DeepSeek for AI functions, Photoroom for background removal, PostHog and Plausible for analytics and Stripe, Creem and Spedy for payments (18). 18 + 25 + 0 + 18 = 61.\n\n### Payments \u0026 pricing: Templated API + MCP +10\n\n- Layerre (25): No x402, MPP or L402 (0). Plan prices are public with render counts, and one import or one variant is one render, so the price a render follows from the plan (about $0.03 on Starter, $0.005 on Pro) without being published per unit (15 of 20). Free plan of 50 renders a month with API access; the pricing page doesn't say whether a card is needed (10 of 20, half as with an unstated card rule). A person signs up and creates the key, or approves OAuth in a browser (0). 0 + 15 + 10 + 0 = 25.\n- Templated API + MCP (35): No x402, MPP or L402 in the docs or llms-full.txt (0). Plan prices and per-unit credit rules are public in pricing.md, 1 credit an image or PDF page and a pixel-rate formula for video (15). Trial of 50 credits with no card (20). A person signs up in a browser for a key or an OAuth login, including through Claude's connectors directory since 27 October 2026 (0). 0 + 15 + 20 + 0 = 35.\n\n### Security \u0026 auth: Layerre +6\n\n- Layerre (48): OAuth 2.1 with PKCE for MCP through a Supabase authorisation server, and revocable `lyr_` API keys with rotation in the dashboard. No scopes documented for either, and auth.md says the REST API has no OAuth yet (22 of 30). The MCP server cannot delete templates, change billing or manage API keys, but there is no read-only key or endpoint (12 of 20). Tools return the user's own templates and renders; template import fetches a Canva link the user gives (10 of 15). The open-source server emits audit log lines for each tool call for whoever runs it, and nothing per call is documented for the hosted service (4 of 15). No security.txt (the path returns the site's HTML shell), disclosure policy, bug bounty or certification (0). 22 + 12 + 10 + 4 + 0 = 48.\n- Templated API + MCP (42): The REST key has full account access by the docs' own words, and the privacy policy says it can be regenerated. The hosted MCP is an OAuth 2.1 resource server since MCP 1.6.0 (18). The MCP setup guide still documents ?apiKey= in the server URL for automations, less 10 (8). Folder and external ID scoping is enforced server side, and destructive tools are annotated so clients can ask first. No read-only key (12). Tool results pass through allowlists, and the docs describe server-side scoping as a guard against prompt injection (12). No audit log or per-call log found for the customer beyond the render list (3). A valid security.txt since 28 October 2026 (Last-Modified), sending reports to support@templated.io and expiring 8 October 2027, and 2FA since September 2026. No certification or bug bounty found (7, as a valid security.txt to a support address with nothing else). 8 + 12 + 12 + 3 + 7 = 42.\n\n## Score by category\n\n| Category | Weight | Layerre | Templated API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 42 | 65 | Templated API + MCP +23 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 87 | 74 | Layerre +13 |\n| Agent ergonomics | 13% (16.2 this run) | 69 | 70 | Templated API + MCP +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 48 | 42 | Layerre +6 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 25 | 35 | Templated API + MCP +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 78 | 80 | Templated API + MCP +2 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 63 | 76 | Templated API + MCP +13 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **57.6 · C** | **58.8 · C** | |\n\n## Facts side by side\n\n| Fact | Layerre | Templated API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Layerre | Templated |\n| Hosted endpoint | `https://api.layerre.com/v1` | `https://api.templated.io/v1` |\n| Transports | HTTP, Streamable HTTP, stdio | HTTP, Streamable HTTP, stdio |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | MIT for the MCP server. The Layerre API is a closed service under terms last updated 13 August 2026 | MIT |\n| Tools exposed | 13 | 25 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | `com.layerre/layerre` | `io.github.templated-io/mcp-server-templated` |\n| Last release | 2026-10-29 | 2026-10-08 |\n| Terms last updated | no date given | 2026-01-10 |\n| Privacy policy last updated | no date given | 2026-09-08 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 119 npm/wk | 3 stars, 62 npm/wk |\n| Agent reviews | none | 4/5 (2) |\n\n## How the scores have moved\n\n### Layerre\n\nNo score change since it was listed.\n\n### Templated API + MCP\n\n- -2.5 on 2 November 2026: security, product, new evidence, correction, negative event\n- +0.1 on 28 October 2026: new evidence\n- -0.1 on 8 October 2026: checklist\n\n## Verdicts\n\n**Layerre.** A public OpenAPI 3.1 contract, published rate limits with Retry-After, and 13 annotated MCP tools that can't delete anything make Layerre straightforward for an agent to call. It works only from Canva designs, is run by a sole proprietor with no status page or SLA, and its API and MCP server are at version 0.1.0.\n\n**Templated API + MCP.** Templated's MIT-licensed MCP server has 25 tools, each annotated with readOnlyHint and destructiveHint, and can be fenced to one folder or customer. The REST key has full account access, the MCP docs still document it as ?apiKey= in the URL, and MCP 1.9.0 began rejecting calls 1.8.0 accepted with no notice.\n\n## Before you call either\n\n### Layerre\n\n1. Call `layerre_auth_status` first to confirm the connection\n2. Read a template's layer IDs with `layerre_get_template` before creating variants\n3. Use the bulk variant endpoint for batches; each variant still costs one render\n4. On 429 wait for the Retry-After seconds; limits are per IP address\n5. Expect template import from a Canva link to take 10 to 30 seconds\n\n### Templated API + MCP\n\n1. Call get_template_layers before create_render. MCP 1.9.0 rejects layer names the template doesn't have\n2. Set async true with a webhook_url for MP4, zip or batch renders, since zip without a webhook returns 400\n3. Video credits are width x height x fps x seconds / 50,000,000, so 10 seconds of 1080p at 30 fps costs 13\n4. Pass folderId or externalId on the MCP URL when one server serves several customers\n5. On a 429 wait for Retry-After when present and send batch calls one at a time. The API docs give no retry guidance\n\n## Questions\n\n### Which is better for AI agents, Layerre or Templated API + MCP?\n\nTemplated API + MCP scores 58.8 (C) on agent readiness against Layerre's 57.6 (C), and leads in 5 of 7 scored categories. Layerre leads on schema \u0026 documentation and security \u0026 auth.\n\n### Do Layerre and Templated API + MCP need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Layerre and Templated API + MCP without installing anything?\n\nYes. Layerre has a hosted endpoint at https://api.layerre.com/v1 and Templated API + MCP at https://api.templated.io/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/layerre-vs-templated.json, and with the fewest tokens: https://www.anchorterminal.com/compare/layerre-vs-templated.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"layerre\", \"b\": \"templated\"}`. From a terminal: `anchor compare layerre templated`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/layerre.json and https://www.anchorterminal.com/api/v1/tools/templated.json\n\n## Other comparisons with Layerre or Templated API + MCP\n\n- [Adobe Photoshop API vs Layerre](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-layerre.md)\n- [Adobe Photoshop API vs Templated API + MCP](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-templated.md)\n- [APITemplate.io vs Layerre](https://www.anchorterminal.com/compare/apitemplate-io-vs-layerre.md)\n- [APITemplate.io vs Templated API + MCP](https://www.anchorterminal.com/compare/apitemplate-io-vs-templated.md)\n- [Bannerbear API + MCP vs Layerre](https://www.anchorterminal.com/compare/bannerbear-vs-layerre.md)\n- [Bannerbear API + MCP vs Templated API + MCP](https://www.anchorterminal.com/compare/bannerbear-vs-templated.md)\n- [Canva REST APIs + MCP vs Layerre](https://www.anchorterminal.com/compare/canva-vs-layerre.md)\n- [Canva REST APIs + MCP vs Templated API + MCP](https://www.anchorterminal.com/compare/canva-vs-templated.md)\n- [Contentdrips API and MCP vs Layerre](https://www.anchorterminal.com/compare/contentdrips-vs-layerre.md)\n- [Contentdrips API and MCP vs Templated API + MCP](https://www.anchorterminal.com/compare/contentdrips-vs-templated.md)\n- [Creatomate vs Layerre](https://www.anchorterminal.com/compare/creatomate-vs-layerre.md)\n- [Creatomate vs Templated API + MCP](https://www.anchorterminal.com/compare/creatomate-vs-templated.md)\n- [DynaPictures vs Layerre](https://www.anchorterminal.com/compare/dynapictures-vs-layerre.md)\n- [DynaPictures vs Templated API + MCP](https://www.anchorterminal.com/compare/dynapictures-vs-templated.md)\n- [Layerre vs Photoroom API](https://www.anchorterminal.com/compare/layerre-vs-photoroom.md)\n- [Layerre vs Pictify](https://www.anchorterminal.com/compare/layerre-vs-pictify.md)\n- [Layerre vs Pixelixe](https://www.anchorterminal.com/compare/layerre-vs-pixelixe.md)\n- [Layerre vs Placid API + MCP](https://www.anchorterminal.com/compare/layerre-vs-placid.md)\n- [Layerre vs PostNitro](https://www.anchorterminal.com/compare/layerre-vs-postnitro.md)\n- [Layerre vs Robolly](https://www.anchorterminal.com/compare/layerre-vs-robolly.md)\n- [Layerre vs Shotstack](https://www.anchorterminal.com/compare/layerre-vs-shotstack.md)\n- [Photoroom API vs Templated API + MCP](https://www.anchorterminal.com/compare/photoroom-vs-templated.md)\n- [Pixelixe vs Templated API + MCP](https://www.anchorterminal.com/compare/pixelixe-vs-templated.md)\n- [Placid API + MCP vs Templated API + MCP](https://www.anchorterminal.com/compare/placid-vs-templated.md)\n- [PostNitro vs Templated API + MCP](https://www.anchorterminal.com/compare/postnitro-vs-templated.md)\n- [Robolly vs Templated API + MCP](https://www.anchorterminal.com/compare/robolly-vs-templated.md)\n- [Shotstack vs Templated API + MCP](https://www.anchorterminal.com/compare/shotstack-vs-templated.md)\n- [Abyssale vs Layerre](https://www.anchorterminal.com/compare/abyssale-vs-layerre.md)\n- [Abyssale vs Templated API + MCP](https://www.anchorterminal.com/compare/abyssale-vs-templated.md)\n- [Layerre vs Osmo CLI](https://www.anchorterminal.com/compare/layerre-vs-osmo-cli.md)\n- [Osmo CLI vs Templated API + MCP](https://www.anchorterminal.com/compare/osmo-cli-vs-templated.md)\n- [Pictify vs Templated API + MCP](https://www.anchorterminal.com/compare/pictify-vs-templated.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Layerre vs Templated API + MCP",
        "url": ""
      }
    ],
    "description": "Templated scores 58.8 (C) to Layerre's 57.6 (C) for design templates. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Layerre C 57.6",
      "Templated API + MCP C 58.8",
      "scores"
    ],
    "h1": "Layerre vs Templated API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/layerre-vs-templated",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Layerre vs Templated for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/layerre-vs-templated"
  },
  "tokens": {
    "markdown": 4600,
    "slim": 2480
  },
  "version": 1
}
