{
  "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",
      "dns": "apitemplate-io.grade.anchorterminal.com",
      "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": 30.1,
        "grade": "F",
        "agentReady": false,
        "rank": 1420,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 18,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 24,
          "maintenance": 11,
          "payments": 30,
          "reliability": 45,
          "schema": 5,
          "security": 48,
          "transparency": 60
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-05"
        },
        "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": "APITemplate.io publishes rate limits, regional endpoints, a 99.9 per cent uptime SLA and a free plan of 50 files a month with no card. 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": [
          "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 REST guide",
          "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 `export_type=file` returns output without vendor storage"
        ],
        "weaknesses": [
          "One API key per account or team with no scopes or read-only mode",
          "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 REST guide names `rest-de` and `rest-us` and a Singapore default",
          "The terms of use forbid any robot or other automatic device accessing the Site or Service, and bar load or vulnerability testing without agreement"
        ],
        "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",
          "Set `expiration` in minutes or `export_type=file` for sensitive output. By default the download URL does not expire",
          "On HTTP 429 pause and retry on your own schedule. The docs give no `Retry-After` header or backoff interval",
          "Use Direct URL `auth` codes only in page markup, with a quota and an expiry set, never the API key"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 2.8,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "F",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 30.1
          }
        ],
        "editorialScores": {
          "ergonomics": 24,
          "maintenance": 11,
          "payments": 30,
          "reliability": 45,
          "schema": 5,
          "security": 48,
          "transparency": 58
        },
        "provenanceScore": 61,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-05",
            "maintenance": "2026-11-05",
            "payments": "2026-11-05",
            "reliability": "2026-11-05",
            "schema": "2026-11-05",
            "security": "2026-11-05",
            "transparency": "2026-11-05"
          },
          "last": "2026-11-05",
          "lastMoved": "2026-11-05",
          "oldest": "2026-11-05",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "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-11-05",
        "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. Clause 8.1(b) bars any deep-link, page-scrape, robot, spider or other automatic device used to access, acquire, copy or monitor any portion of the Site or Service (read 5 November 2026).",
          "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 guides. We sent no request to an API host.",
          "apitemplate.io/.well-known/security.txt returned 404 on 9 October 2026.",
          "The status page is hosted by UptimeRobot. Its figures load by script from a path its robots.txt disallows.",
          "The OpenAPI file sits on apitemplateio.s3.ap-southeast-1.amazonaws.com, whose robots.txt answers 403 AccessDenied (5 November 2026).",
          "No changelog or release notes page was found on the site, in the docs or in the SDK repositories."
        ],
        "score": 61
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/apitemplate-io.json",
      "live": {
        "slug": "apitemplate-io",
        "probe": {
          "target": "https://rest.apitemplate.io/v2",
          "method": "get",
          "lastAt": "2026-11-07T19:21:52.512340376Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 546,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 544,
          "p95ms24h": 633,
          "samples24h": 238,
          "samples30d": 7215,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "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": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 248,
              "ok": 248
            },
            {
              "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": 197,
              "ok": 197
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.apitemplate.io",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:47:06.454973681Z"
        },
        "securityTxt": {
          "url": "https://apitemplate.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:23.231253153Z"
        },
        "domain": {
          "domain": "apitemplate.io",
          "checkedAt": "2026-11-01T14:21:47.267151528Z"
        },
        "pages": [
          {
            "url": "https://apitemplate.io/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T13:59:25.281628541Z",
            "changedAt": "2026-10-21T00:19:55.227442573Z",
            "fingerprint": "29d83cd2f8ca"
          },
          {
            "url": "https://apitemplate.io/terms-of-use/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T13:59:27.430632711Z",
            "changedAt": "2026-10-21T00:19:57.371218655Z",
            "fingerprint": "573b5c536079"
          }
        ],
        "updatedAt": "2026-11-07T19:21:52.512340376Z"
      }
    },
    "answer": "Layerre scores 57.6 (C) on agent readiness against APITemplate.io's 30.1 (F), and leads in 4 of 7 scored categories. APITemplate.io leads on payments \u0026 pricing.",
    "b": {
      "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": 789,
        "ranked": true,
        "rankOf": 1510,
        "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-07T19:22:15.995094205Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 311,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 310,
          "p95ms24h": 415,
          "samples24h": 210,
          "samples30d": 210,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 197
            }
          ]
        },
        "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-07T19:22:15.995094205Z"
      }
    },
    "edges": [
      {
        "by": 82,
        "category": "schema",
        "leads": "layerre",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "APITemplate.io's terms bar robots and other automatic devices on any portion of the Site or Service, so its sites were not re-read on 5 November, and the OpenAPI file's storage host answers robots.txt with an access-denied error, so readings of that file are struck. The REST guide links an OpenAPI 3.0.0 description for Postman or code generators, but every reading of the file is struck and none can be taken today (0). No llms.txt (404) and no Markdown docs for agents (0). The operation and parameter descriptions, types, enums, request samples and error schema were read from the file (0, 0 and 0). A `/v2` path in the guides, with no changelog (5). 0+0+0+0+0+5 = 5.",
          "b": "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."
        },
        "scores": {
          "a": 5,
          "b": 87
        }
      },
      {
        "by": 67,
        "category": "maintenance",
        "leads": "layerre",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "APITemplate.io's terms bar robots and other automatic devices on any portion of the Site or Service, so its sites were not re-read on 5 November, and the OpenAPI file's storage host answers robots.txt with an access-denied error, so readings of that file are struck. Per the 9 October check. No changelog or release notes exist, and the file's Last-Modified header was metadata, not a dated release (0). No dated changelog entries in the last 90 days (0). Support by email with a stated reply within 24 hours and response times in the SLA, with no public changelog (6). Five SDK repositories, each a generated client committed on 17 September 2023; the Python and JavaScript clones on 5 November show no later commit (3). No tags, CI results or licence files in those repositories (2). 0+0+6+3+2 = 11.",
          "b": "@layerre/mcp-server 0.1.0 published to npm on 29 October 2026, 8 days before this check (30). MCP server commits from 19 to 24 October, the registry entry of 29 October, and What's New entries dated 21 August and 18 October in the sitemap (20). The repository is a week old with no issues to judge; support by email and in-app chat (5 of 25). com.layerre/layerre is in the official MCP registry under a domain-verified namespace (15). CI runs the vitest suite on push and pull requests to main on Node 22 (8 of 10). 30 + 20 + 5 + 15 + 8 = 78."
        },
        "scores": {
          "a": 11,
          "b": 78
        }
      },
      {
        "by": 45,
        "category": "ergonomics",
        "leads": "layerre",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "APITemplate.io's terms bar robots and other automatic devices on any portion of the Site or Service, so its sites were not re-read on 5 November, and the OpenAPI file's storage host answers robots.txt with an access-denied error, so readings of that file are struck. Per the 9 October check except where struck. `export_type=file` returns bytes rather than a stored file and `expiration` sets how long a download URL lasts, per the secure PDF FAQ (15 of 25, an earlier partial kept). Pagination and filters, the error object and the `meta` reference were read from the struck file (0, 0 and 0). Calls are synchronous by default, and the five SDK repositories are generated clients from September 2023 with placeholder install commands, confirmed from clones on 5 November (9 of 15, an earlier partial kept). 15+0+0+0+9 = 24.",
          "b": "13 MCP tools (15 for 11 to 30), with no toolsets or read-only subset (15). Template and variant lists take `skip` and `limit`, and templates filter by `tag` and `q` and can leave out layers (16 of 20). 422 validation bodies and a JSON 429 with `retry_after` (17 of 20). Every tool is annotated, read tools with readOnlyHint and idempotentHint, updates idempotent, no tool destructive, and the server has no delete tool. The REST API has no idempotency keys for variant creation (16 of 20). Few required fields, but no official SDK; a Postman collection and the MCP package only (5 of 15). 15 + 16 + 17 + 16 + 5 = 69."
        },
        "scores": {
          "a": 24,
          "b": 69
        }
      },
      {
        "by": 5,
        "category": "payments",
        "leads": "apitemplate-io",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "APITemplate.io's terms bar robots and other automatic devices on any portion of the Site or Service, so its sites were not re-read on 5 November, and the OpenAPI file's storage host answers robots.txt with an access-denied error, so readings of that file are struck. Per the 9 October check. No x402, MPP or L402 (0). Plan prices with monthly file counts are public without a login, and no per-file or overage rate is published (10). Free plan of 50 files a month with no card (20). A person signs up in a browser to get the key (0). 0+10+20+0 = 30.",
          "b": "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."
        },
        "scores": {
          "a": 30,
          "b": 25
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Alphacloud Technologies Pte Ltd",
        "b": "Layerre",
        "name": "Vendor"
      },
      {
        "a": "https://rest.apitemplate.io/v2",
        "b": "https://api.layerre.com/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, Streamable HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "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": "MIT for the MCP server. The Layerre API is a closed service under terms last updated 13 August 2026",
        "name": "Licence"
      },
      {
        "a": "0",
        "b": "13",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "com.layerre/layerre",
        "name": "MCP registry"
      },
      {
        "a": "none",
        "b": "2026-10-29",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "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": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "119 npm/wk",
        "name": "Popularity"
      },
      {
        "a": "2.8/5 (4)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Layerre scores 57.6 (C) on agent readiness against APITemplate.io's 30.1 (F), and leads in 4 of 7 scored categories. APITemplate.io leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, APITemplate.io or Layerre?"
      },
      {
        "answer": "APITemplate.io needs an API key. Layerre takes an API key or an OAuth sign-in.",
        "question": "Do APITemplate.io and Layerre need an API key?"
      },
      {
        "answer": "Yes. APITemplate.io has a hosted endpoint at https://rest.apitemplate.io/v2 and Layerre at https://api.layerre.com/v1.",
        "question": "Can an agent call APITemplate.io and Layerre without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Payments \u0026 pricing, 30 against 25"
        ],
        "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"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 87 against 5",
          "Agent ergonomics, 69 against 24",
          "Maintenance \u0026 community, 78 against 11"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "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"
      }
    ],
    "history": {
      "apitemplate-io": [
        {
          "causes": [
            "evidence",
            "correction"
          ],
          "date": "2026-11-05",
          "delta": -16.6,
          "from": 46.7,
          "fromGrade": "D",
          "to": 30.1,
          "toGrade": "F"
        },
        {
          "causes": [
            "correction"
          ],
          "date": "2026-10-28",
          "delta": 0,
          "from": 46.7,
          "fromGrade": "D",
          "to": 46.7,
          "toGrade": "D"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 46.6,
          "fromGrade": "D",
          "to": 46.7,
          "toGrade": "D"
        }
      ],
      "layerre": null
    },
    "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-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/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-canva.json",
        "title": "APITemplate.io vs Canva REST APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-canva"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apitemplate-io-vs-contentdrips.json",
        "title": "APITemplate.io vs Contentdrips API and MCP",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-contentdrips"
      },
      {
        "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-dynapictures.json",
        "title": "APITemplate.io vs DynaPictures",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-dynapictures"
      },
      {
        "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-pictify.json",
        "title": "APITemplate.io vs Pictify",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-pictify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apitemplate-io-vs-pixelixe.json",
        "title": "APITemplate.io vs Pixelixe",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-pixelixe"
      },
      {
        "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-postnitro.json",
        "title": "APITemplate.io vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-postnitro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apitemplate-io-vs-robolly.json",
        "title": "APITemplate.io vs Robolly",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-robolly"
      },
      {
        "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-layerre.json",
        "title": "Bannerbear API + MCP vs Layerre",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-layerre"
      },
      {
        "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/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/creatomate-vs-layerre.json",
        "title": "Creatomate vs Layerre",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-layerre"
      },
      {
        "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/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/layerre-vs-templated.json",
        "title": "Layerre vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/layerre-vs-templated"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-apitemplate-io.json",
        "title": "Abyssale vs APITemplate.io",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-apitemplate-io"
      },
      {
        "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/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/layerre-vs-osmo-cli.json",
        "title": "Layerre vs Osmo CLI",
        "url": "https://www.anchorterminal.com/compare/layerre-vs-osmo-cli"
      }
    ],
    "panel": null,
    "scores": [
      {
        "apitemplate-io": 45,
        "by": 3,
        "edge": "apitemplate-io",
        "key": "reliability",
        "layerre": 42,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "apitemplate-io": 5,
        "by": 82,
        "edge": "layerre",
        "key": "schema",
        "layerre": 87,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "apitemplate-io": 24,
        "by": 45,
        "edge": "layerre",
        "key": "ergonomics",
        "layerre": 69,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "apitemplate-io": 48,
        "by": 0,
        "edge": "",
        "key": "security",
        "layerre": 48,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "apitemplate-io": 30,
        "by": 5,
        "edge": "apitemplate-io",
        "key": "payments",
        "layerre": 25,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "apitemplate-io": 11,
        "by": 67,
        "edge": "layerre",
        "key": "maintenance",
        "layerre": 78,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "apitemplate-io": 60,
        "by": 3,
        "edge": "layerre",
        "key": "transparency",
        "layerre": 63,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Layerre scores 57.6 (C) on agent readiness against APITemplate.io's 30.1 (F), and leads in 4 of 7 scored categories. APITemplate.io leads on payments \u0026 pricing. Both do design templates.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "apitemplate-io": "APITemplate.io publishes rate limits, regional endpoints, a 99.9 per cent uptime SLA and a free plan of 50 files a month with no card. 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.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/apitemplate-io-vs-layerre",
    "json": "https://www.anchorterminal.com/compare/apitemplate-io-vs-layerre.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/apitemplate-io-vs-layerre.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/apitemplate-io-vs-layerre.min.md"
  },
  "markdown": "Layerre scores 57.6 (C) on agent readiness against APITemplate.io's 30.1 (F), and leads in 4 of 7 scored categories. APITemplate.io leads on payments \u0026 pricing. Both do design templates.\n\n- APITemplate.io: grade F, 30.1/100, rank #1420 of 1510. Markdown https://www.anchorterminal.com/tools/apitemplate-io.md · JSON https://www.anchorterminal.com/api/v1/tools/apitemplate-io.json\n- Layerre: grade C, 57.6/100, rank #789 of 1510. Markdown https://www.anchorterminal.com/tools/layerre.md · JSON https://www.anchorterminal.com/api/v1/tools/layerre.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### APITemplate.io (F)\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\nAhead on:\n- Payments \u0026 pricing, 30 against 25\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\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 5\n- Agent ergonomics, 69 against 24\n- Maintenance \u0026 community, 78 against 11\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: Imports Canva designs only; there is no template editor of its own\n\n\n## Why the edge\n\n### Schema \u0026 documentation: Layerre +82\n\n- APITemplate.io (5): APITemplate.io's terms bar robots and other automatic devices on any portion of the Site or Service, so its sites were not re-read on 5 November, and the OpenAPI file's storage host answers robots.txt with an access-denied error, so readings of that file are struck. The REST guide links an OpenAPI 3.0.0 description for Postman or code generators, but every reading of the file is struck and none can be taken today (0). No llms.txt (404) and no Markdown docs for agents (0). The operation and parameter descriptions, types, enums, request samples and error schema were read from the file (0, 0 and 0). A `/v2` path in the guides, with no changelog (5). 0+0+0+0+0+5 = 5.\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\n### Maintenance \u0026 community: Layerre +67\n\n- APITemplate.io (11): APITemplate.io's terms bar robots and other automatic devices on any portion of the Site or Service, so its sites were not re-read on 5 November, and the OpenAPI file's storage host answers robots.txt with an access-denied error, so readings of that file are struck. Per the 9 October check. No changelog or release notes exist, and the file's Last-Modified header was metadata, not a dated release (0). No dated changelog entries in the last 90 days (0). Support by email with a stated reply within 24 hours and response times in the SLA, with no public changelog (6). Five SDK repositories, each a generated client committed on 17 September 2023; the Python and JavaScript clones on 5 November show no later commit (3). No tags, CI results or licence files in those repositories (2). 0+0+6+3+2 = 11.\n- Layerre (78): @layerre/mcp-server 0.1.0 published to npm on 29 October 2026, 8 days before this check (30). MCP server commits from 19 to 24 October, the registry entry of 29 October, and What's New entries dated 21 August and 18 October in the sitemap (20). The repository is a week old with no issues to judge; support by email and in-app chat (5 of 25). com.layerre/layerre is in the official MCP registry under a domain-verified namespace (15). CI runs the vitest suite on push and pull requests to main on Node 22 (8 of 10). 30 + 20 + 5 + 15 + 8 = 78.\n\n### Agent ergonomics: Layerre +45\n\n- APITemplate.io (24): APITemplate.io's terms bar robots and other automatic devices on any portion of the Site or Service, so its sites were not re-read on 5 November, and the OpenAPI file's storage host answers robots.txt with an access-denied error, so readings of that file are struck. Per the 9 October check except where struck. `export_type=file` returns bytes rather than a stored file and `expiration` sets how long a download URL lasts, per the secure PDF FAQ (15 of 25, an earlier partial kept). Pagination and filters, the error object and the `meta` reference were read from the struck file (0, 0 and 0). Calls are synchronous by default, and the five SDK repositories are generated clients from September 2023 with placeholder install commands, confirmed from clones on 5 November (9 of 15, an earlier partial kept). 15+0+0+0+9 = 24.\n- Layerre (69): 13 MCP tools (15 for 11 to 30), with no toolsets or read-only subset (15). Template and variant lists take `skip` and `limit`, and templates filter by `tag` and `q` and can leave out layers (16 of 20). 422 validation bodies and a JSON 429 with `retry_after` (17 of 20). Every tool is annotated, read tools with readOnlyHint and idempotentHint, updates idempotent, no tool destructive, and the server has no delete tool. The REST API has no idempotency keys for variant creation (16 of 20). Few required fields, but no official SDK; a Postman collection and the MCP package only (5 of 15). 15 + 16 + 17 + 16 + 5 = 69.\n\n### Payments \u0026 pricing: APITemplate.io +5\n\n- APITemplate.io (30): APITemplate.io's terms bar robots and other automatic devices on any portion of the Site or Service, so its sites were not re-read on 5 November, and the OpenAPI file's storage host answers robots.txt with an access-denied error, so readings of that file are struck. Per the 9 October check. No x402, MPP or L402 (0). Plan prices with monthly file counts are public without a login, and no per-file or overage rate is published (10). Free plan of 50 files a month with no card (20). A person signs up in a browser to get the key (0). 0+10+20+0 = 30.\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\n## Score by category\n\n| Category | Weight | APITemplate.io | Layerre | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 45 | 42 | APITemplate.io +3 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 5 | 87 | Layerre +82 |\n| Agent ergonomics | 13% (16.2 this run) | 24 | 69 | Layerre +45 |\n| Security \u0026 auth | 14% (17.5 this run) | 48 | 48 | even |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 25 | APITemplate.io +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 11 | 78 | Layerre +67 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 60 | 63 | Layerre +3 |\n| Negative events | ≤15 | -2 | 0 | |\n| **Total** | | **30.1 · F** | **57.6 · C** | |\n\n## Facts side by side\n\n| Fact | APITemplate.io | Layerre |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Alphacloud Technologies Pte Ltd | Layerre |\n| Hosted endpoint | `https://rest.apitemplate.io/v2` | `https://api.layerre.com/v1` |\n| Transports | HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | API key | OAuth or key |\n| Pricing | Freemium | Freemium |\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 | MIT for the MCP server. The Layerre API is a closed service under terms last updated 13 August 2026 |\n| Tools exposed | 0 | 13 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| MCP registry | not listed | `com.layerre/layerre` |\n| Last release | none | 2026-10-29 |\n| Terms last updated | no date given | no date given |\n| Privacy policy last updated | no date given | no date given |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | 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 | yes | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | none | 119 npm/wk |\n| Agent reviews | 2.8/5 (4) | none |\n\n## How the scores have moved\n\n### APITemplate.io\n\n- -16.6 on 5 November 2026 (D to F): new evidence, correction\n- no change on 28 October 2026: correction\n- +0.1 on 27 October 2026: checklist\n\n### Layerre\n\nNo score change since it was listed.\n\n## Verdicts\n\n**APITemplate.io.** APITemplate.io publishes rate limits, regional endpoints, a 99.9 per cent uptime SLA and a free plan of 50 files a month with no card. 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**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## 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. Set `expiration` in minutes or `export_type=file` for sensitive output. By default the download URL does not expire\n3. On HTTP 429 pause and retry on your own schedule. The docs give no `Retry-After` header or backoff interval\n4. Use Direct URL `auth` codes only in page markup, with a quota and an expiry set, never the API key\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## Questions\n\n### Which is better for AI agents, APITemplate.io or Layerre?\n\nLayerre scores 57.6 (C) on agent readiness against APITemplate.io's 30.1 (F), and leads in 4 of 7 scored categories. APITemplate.io leads on payments \u0026 pricing.\n\n### Do APITemplate.io and Layerre need an API key?\n\nAPITemplate.io needs an API key. Layerre takes an API key or an OAuth sign-in.\n\n### Can an agent call APITemplate.io and Layerre without installing anything?\n\nYes. APITemplate.io has a hosted endpoint at https://rest.apitemplate.io/v2 and Layerre at https://api.layerre.com/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/apitemplate-io-vs-layerre.json, and with the fewest tokens: https://www.anchorterminal.com/compare/apitemplate-io-vs-layerre.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"apitemplate-io\", \"b\": \"layerre\"}`. From a terminal: `anchor compare apitemplate-io layerre`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/apitemplate-io.json and https://www.anchorterminal.com/api/v1/tools/layerre.json\n\n## Other comparisons with APITemplate.io or Layerre\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 Layerre](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-layerre.md)\n- [APITemplate.io vs Bannerbear API + MCP](https://www.anchorterminal.com/compare/apitemplate-io-vs-bannerbear.md)\n- [APITemplate.io vs Canva REST APIs + MCP](https://www.anchorterminal.com/compare/apitemplate-io-vs-canva.md)\n- [APITemplate.io vs Contentdrips API and MCP](https://www.anchorterminal.com/compare/apitemplate-io-vs-contentdrips.md)\n- [APITemplate.io vs Creatomate](https://www.anchorterminal.com/compare/apitemplate-io-vs-creatomate.md)\n- [APITemplate.io vs DynaPictures](https://www.anchorterminal.com/compare/apitemplate-io-vs-dynapictures.md)\n- [APITemplate.io vs Photoroom API](https://www.anchorterminal.com/compare/apitemplate-io-vs-photoroom.md)\n- [APITemplate.io vs Pictify](https://www.anchorterminal.com/compare/apitemplate-io-vs-pictify.md)\n- [APITemplate.io vs Pixelixe](https://www.anchorterminal.com/compare/apitemplate-io-vs-pixelixe.md)\n- [APITemplate.io vs Placid API + MCP](https://www.anchorterminal.com/compare/apitemplate-io-vs-placid.md)\n- [APITemplate.io vs PostNitro](https://www.anchorterminal.com/compare/apitemplate-io-vs-postnitro.md)\n- [APITemplate.io vs Robolly](https://www.anchorterminal.com/compare/apitemplate-io-vs-robolly.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 Layerre](https://www.anchorterminal.com/compare/bannerbear-vs-layerre.md)\n- [Canva REST APIs + MCP vs Layerre](https://www.anchorterminal.com/compare/canva-vs-layerre.md)\n- [Contentdrips API and MCP vs Layerre](https://www.anchorterminal.com/compare/contentdrips-vs-layerre.md)\n- [Creatomate vs Layerre](https://www.anchorterminal.com/compare/creatomate-vs-layerre.md)\n- [DynaPictures vs Layerre](https://www.anchorterminal.com/compare/dynapictures-vs-layerre.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- [Layerre vs Templated API + MCP](https://www.anchorterminal.com/compare/layerre-vs-templated.md)\n- [Abyssale vs APITemplate.io](https://www.anchorterminal.com/compare/abyssale-vs-apitemplate-io.md)\n- [Abyssale vs Layerre](https://www.anchorterminal.com/compare/abyssale-vs-layerre.md)\n- [APITemplate.io vs Osmo CLI](https://www.anchorterminal.com/compare/apitemplate-io-vs-osmo-cli.md)\n- [Layerre vs Osmo CLI](https://www.anchorterminal.com/compare/layerre-vs-osmo-cli.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": "APITemplate.io vs Layerre",
        "url": ""
      }
    ],
    "description": "Layerre scores 57.6 (C) to APITemplate.io's 30.1 (F) for design templates. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "APITemplate.io F 30.1",
      "Layerre C 57.6",
      "scores"
    ],
    "h1": "APITemplate.io vs Layerre",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/apitemplate-io-vs-layerre",
    "published": "2026-10-01",
    "section": "tools",
    "title": "APITemplate.io vs Layerre for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-layerre"
  },
  "tokens": {
    "markdown": 4100,
    "slim": 2080
  },
  "version": 1
}
