{
  "data": {
    "a": {
      "slug": "creatomate",
      "name": "Creatomate",
      "vendor": "Creatomate",
      "vendorUrl": "https://creatomate.com",
      "kind": "http-api",
      "category": "design-assets",
      "summary": "Creatomate renders videos, images and GIFs from templates or from RenderScript, its JSON format. Agents reach it through a REST API with a project key or a hosted MCP server with OAuth.",
      "url": "https://www.anchorterminal.com/tools/creatomate",
      "markdownUrl": "https://www.anchorterminal.com/tools/creatomate.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/creatomate.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/creatomate.json",
      "dns": "creatomate.grade.anchorterminal.com",
      "repo": "https://github.com/creatomate/creatomate-node",
      "license": "Proprietary service under Creatomate's Terms and Conditions. The Node, PHP and Preview SDK libraries on GitHub are MIT",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.creatomate.com/v2",
      "packages": [
        {
          "registry": "npm",
          "name": "creatomate"
        },
        {
          "registry": "npm",
          "name": "@creatomate/preview"
        }
      ],
      "auth": "mixed",
      "authNotes": "REST calls take a project API key as a bearer token. Each project has one key, copied from Project Settings after a browser signup, with no scopes found in the docs. The MCP server uses OAuth (authorisation code with PKCE S256, dynamic client registration, one scope, `mcp`), and each connection reaches one project. It also accepts the project key as a bearer token for headless use. Connections are listed and revoked under Account Settings.",
      "pricing": "paid",
      "pricingNotes": "Free plan with 50 credits, no card and no time limit, with output limited to 480 px per side. Paid plans are monthly credit allowances that do not carry over. Billed yearly, Essential is $540 (2,000 credits a month), Growth from $1,290 (10,000) and Beyond from $3,290 (50,000); the docs give $54 a month for Essential and $129 for Growth 10K billed monthly. An image is 1 credit and video is width x height x frame rate x seconds / 100,000,000 (checked 2026-11-04).",
      "priceSummary": "$54 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "Subscription credits billed through Paddle. No x402, MPP or L402 in the docs, llms.txt or pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 8,
      "popularity": {
        "githubStars": 9,
        "npmWeekly": 12714,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://creatomate.com/docs/api/reference/introduction",
      "llmsTxt": "https://creatomate.com/llms.txt",
      "capabilities": [
        "design.templates",
        "design.render",
        "video.render"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "mcp",
        "oauth",
        "llms-txt",
        "async-jobs",
        "webhooks",
        "video",
        "images"
      ],
      "lastRelease": "2026-09-19",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 49.6,
        "grade": "D",
        "agentReady": false,
        "rank": 1088,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 10,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 67,
          "maintenance": 54,
          "payments": 35,
          "reliability": 40,
          "schema": 53,
          "security": 48,
          "transparency": 52
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-04"
        },
        "negative": 0,
        "verdict": "A hosted MCP server with eight tools and OAuth with PKCE sits beside a small REST API whose errors carry a hint and a documentation link, a documented rate limit with `Retry-After`, and a free `dry_run`. No status page, changelog, OpenAPI file or security contact was found, and the terms and privacy policy date from June 2022.",
        "bestFor": "Teams that render video, images and GIFs from templates or JSON and want an agent to draft templates and start renders through MCP.",
        "strengths": [
          "Hosted MCP server at `https://api.creatomate.com/mcp` with eight named tools, OAuth authorisation code with PKCE and dynamic client registration",
          "Documented errors return a `hint` and a `documentation` URL on 400, 401, 404 and 429",
          "`dry_run` on `POST /v2/renders` validates a request and returns the effective source with no credits spent",
          "Rate limit of 30 requests per 10 seconds is documented, with `X-RateLimit-*` headers on every response and `Retry-After` on 429",
          "Free plan with 50 credits and no card, public plan prices and a public credit formula (1 credit an image)"
        ],
        "weaknesses": [
          "No status page, incident history or SLA found. `status.creatomate.com` does not resolve",
          "No OpenAPI file and no changelog. `/v1` and `/v2` routes are both documented with no deprecation policy",
          "Credits come only in monthly plans that don't carry over, from $54 a month for 2,000",
          "No security.txt, disclosure policy or certification found, and REST keys have no scopes",
          "Terms and privacy policy are dated 27 June 2022, define the Service as the website, and let Creatomate make user Content available to other users"
        ],
        "agentNotes": [
          "Send `\"dry_run\": true` to `POST /v2/renders` before a paid render. It returns `valid`, `errors`, `warnings` and the effective source",
          "Read `warnings` on every render response. A modification keyed to an unknown element or property name is ignored without an error",
          "Keep under 30 requests per 10 seconds across the whole account, and wait for `Retry-After` on a 429",
          "Download each file when the webhook fires. Renders, their URLs and their status records are deleted after 30 days",
          "Use `render_scale` 0.5 for draft videos, about a quarter of the credits, and remember MCP `create_render` spends credits without a confirmation step from the server"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 49.6
          }
        ],
        "editorialScores": {
          "ergonomics": 67,
          "maintenance": 54,
          "payments": 35,
          "reliability": 40,
          "schema": 53,
          "security": 48,
          "transparency": 37
        },
        "provenanceScore": 67,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "lastMoved": "2026-11-04",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install creatomate",
        "http": "curl -X POST https://api.creatomate.com/v2/renders -H \"Content-Type: application/json\" -H \"Authorization: Bearer $CREATOMATE_API_KEY\" -d '{\"template_id\": \"YOUR_TEMPLATE_ID\", \"dry_run\": true, \"modifications\": {\"Title-1\": \"Your headline here\"}}'",
        "claudeCode": "claude mcp add creatomate --transport http https://api.creatomate.com/mcp",
        "config": {
          "mcpServers": {
            "creatomate": {
              "url": "https://api.creatomate.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.templates",
        "tool": "https://letme.dev/creatomate"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Essential",
          "unit": "month",
          "usd": 54,
          "note": "2,000 credits, billed monthly, price as stated in the docs"
        },
        {
          "item": "Essential, billed yearly",
          "unit": "month",
          "usd": 45,
          "note": "2,000 credits a month, $540 billed once a year"
        },
        {
          "item": "Growth 10K",
          "unit": "month",
          "usd": 129,
          "note": "10,000 credits, billed monthly, price as stated in the docs"
        },
        {
          "item": "Growth 10K, billed yearly",
          "unit": "month",
          "usd": 108,
          "note": "10,000 credits a month, $1,290 billed once a year"
        },
        {
          "item": "Beyond 50K, billed yearly",
          "unit": "month",
          "usd": 274,
          "note": "50,000 credits a month, $3,290 billed once a year"
        }
      ],
      "provenance": {
        "legalEntity": "Creatomate",
        "domain": "creatomate.com",
        "domainRegistered": "2021-03-27",
        "endpointOnVendorDomain": true,
        "terms": "https://creatomate.com/terms-of-service",
        "privacy": "https://creatomate.com/privacy-policy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The terms and privacy policy name the company as Creatomate, Leeuwarden, The Netherlands, with no legal form. The site footer gives the Dutch company number 90174356.",
          "Both documents are dated 27 June 2022 and define the Service as the website. They are the only terms and privacy policy published, and the terms cover subscriptions, so they govern API use. No DPA was found.",
          "The API and the MCP server answer at api.creatomate.com, and rendered files are served from cdn.creatomate.com.",
          "creatomate.com/.well-known/security.txt returns 404.",
          "No status page was found. status.creatomate.com does not resolve, and no page we read links to one.",
          "No changelog was found. /changelog returns 404 and /docs/changelog redirects to the docs introduction.",
          "RDAP for creatomate.com gives a registration date of 2021-03-27 and Cloudflare, Inc. as registrar."
        ],
        "score": 67
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/creatomate.json",
      "live": {
        "slug": "creatomate",
        "probe": {
          "target": "https://api.creatomate.com/v2",
          "method": "get",
          "lastAt": "2026-11-07T19:22:01.677389134Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 522,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.95,
          "p50ms24h": 533,
          "p95ms24h": 637,
          "samples24h": 238,
          "samples30d": 7299,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 169,
              "ok": 169
            },
            {
              "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": 246
            },
            {
              "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": 246
            },
            {
              "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": 248,
              "ok": 248
            },
            {
              "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": 197,
              "ok": 197
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "creatomate/creatomate-node",
            "version": "1.2.1",
            "released": "2024-09-23",
            "seenAt": "2026-11-06T23:18:17.901284638Z"
          },
          {
            "registry": "npm",
            "name": "@creatomate/preview",
            "version": "1.6.1",
            "seenAt": "2026-11-06T23:18:15.925923832Z"
          },
          {
            "registry": "npm",
            "name": "creatomate",
            "version": "1.2.1",
            "seenAt": "2026-11-06T23:18:15.688611281Z"
          }
        ],
        "githubStars": 9,
        "npmWeekly": 15327,
        "securityTxt": {
          "url": "https://creatomate.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:01:38.286983677Z"
        },
        "llmsTxt": {
          "url": "https://creatomate.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:13.131093086Z"
        },
        "domain": {
          "domain": "creatomate.com",
          "registered": "2021-03-27",
          "source": "https://rdap.verisign.com/com/v1/domain/creatomate.com",
          "checkedAt": "2026-11-01T14:11:17.446847399Z"
        },
        "pages": [
          {
            "url": "https://creatomate.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:02:05.558608712Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7679daa5c968"
          },
          {
            "url": "https://creatomate.com/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:02:08.266851041Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a4b5ce36278d"
          }
        ],
        "mcpTools": {
          "url": "https://api.creatomate.com/mcp",
          "checkedAt": "2026-11-07T01:43:34.14203954Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:43:34.14203954Z"
        },
        "github": {
          "repo": "creatomate/creatomate-node",
          "checkedAt": "2026-11-02T08:41:52.500950848Z",
          "stars": 9,
          "archived": false,
          "issuesEnabled": false,
          "pushedAt": "2024-09-23T09:46:26Z",
          "openIssues": 0,
          "openPRs": 0,
          "issuesOpened90d": 0,
          "issuesClosed90d": 0,
          "prsMerged90d": 0
        },
        "updatedAt": "2026-11-07T19:22:01.677389134Z"
      }
    },
    "answer": "Creatomate scores 49.6 (D) on agent readiness against DynaPictures's 43.2 (E), and leads in 4 of 7 scored categories. DynaPictures leads on schema \u0026 documentation and transparency \u0026 trust.",
    "b": {
      "slug": "dynapictures",
      "name": "DynaPictures",
      "vendor": "DynaPictures GmbH",
      "vendorUrl": "https://dynapictures.com",
      "kind": "http-api",
      "category": "design-assets",
      "summary": "DynaPictures, from DynaPictures GmbH in Freiburg, fills templates made in its no-code editor with data to produce images, multi-page PDFs, countdown timer GIFs and AI images, through a REST API, image URLs, forms and a remote MCP server.",
      "url": "https://www.anchorterminal.com/tools/dynapictures",
      "markdownUrl": "https://www.anchorterminal.com/tools/dynapictures.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/dynapictures.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/dynapictures.json",
      "dns": "dynapictures.grade.anchorterminal.com",
      "license": "Closed service under the DynaPictures terms of use (revision 2/2026)",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.dynapictures.com",
      "packages": [],
      "auth": "api-key",
      "authNotes": "One API key per user, copied from the account page and sent as `Authorization: Bearer`, for both the REST API and the MCP server at mcp.dynapictures.com/mcp. The key carries the user's full access, with no workspace or action limits, and a new key is requested by email. No OAuth.",
      "pricing": "freemium",
      "pricingNotes": "Free plan, and a 14-day trial with 30 API credits, neither needing a card. Lite from 250 images a month and Pro from 2,000, priced through a FastSpring checkout whose amounts are drawn by script. One credit per image or PDF page. AI credit packs from $20 for 1,000 credits (about 250 images), which never expire.",
      "priceSummary": "$0.02 / credit",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "Subscriptions and credit packs through FastSpring. No x402, MPP or L402 in the OpenAPI, llms.txt, auth.md or the agent skill (checked 2026-11-06). A spent quota returns 403 and missing AI credits 402, with no payment requirements.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://dynapictures.com/docs/",
      "llmsTxt": "https://dynapictures.com/llms.txt",
      "openapi": "https://dynapictures.com/openapi.json",
      "capabilities": [
        "design.templates",
        "design.render",
        "pdf.generate",
        "image.generate"
      ],
      "tags": [
        "hosted",
        "openapi",
        "llms-txt",
        "mcp",
        "remote-mcp",
        "api-key",
        "freemium",
        "free-tier",
        "no-card",
        "sla",
        "eu"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 43.2,
        "grade": "E",
        "agentReady": false,
        "rank": 1257,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 13,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 45,
          "maintenance": 4,
          "payments": 30,
          "reliability": 42,
          "schema": 82,
          "security": 26,
          "transparency": 63
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "An OpenAPI 3.1 file, an agent skill and a six-month removal notice with Sunset headers make DynaPictures' template rendering easy to plan around, with a free plan and no-card trial. The single API key opens the whole account, requests aren't idempotent, and no changelog, status page or dated release was found.",
        "bestFor": "Personalised images and PDFs per record, image URLs in emails and pages, and email countdown timers, for marketing teams in the EU.",
        "strengths": [
          "OpenAPI 3.1 with 20 paths, llms.txt, auth.md and an agent skill written for agents",
          "Removals announced six months ahead with Deprecation and Sunset headers",
          "Free plan and a 14-day trial with 30 API credits, no card",
          "Identical image URLs return a cached image without using another credit",
          "Terms guarantee 94 per cent annual availability; AI sub-processors named in the privacy policy"
        ],
        "weaknesses": [
          "One API key per user with full account access and no scopes; a new key needs an email to support",
          "Generation requests aren't idempotent, so a retry can spend a second credit",
          "No changelog, status page or dated release found",
          "The docs' Errors section is unedited template text",
          "Not in the official MCP registry, and plan prices are drawn by script"
        ],
        "agentNotes": [
          "Use `GET /templates` to find a template UID and its layer names before generating",
          "Check whether an image exists before retrying a timed-out `POST /designs/{UID}`; retries can be charged",
          "Treat 403 as a spent quota or expired trial and stop; wait for `Retry-After` only on 503",
          "Poll `GET /ai/generate/{jobUid}` about every 2 seconds and download the result, since the URL may expire",
          "Keep the API key out of image URLs; use signed or public links for embedding"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 43.2
          }
        ],
        "editorialScores": {
          "ergonomics": 45,
          "maintenance": 4,
          "payments": 30,
          "reliability": 42,
          "schema": 82,
          "security": 26,
          "transparency": 63
        },
        "provenanceScore": 63,
        "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.dynapictures.com/workspaces -H \"Authorization: Bearer YOUR_API_KEY\"",
        "config": {
          "mcpServers": {
            "dynapictures": {
              "headers": {
                "Authorization": "Bearer YOUR_API_KEY"
              },
              "url": "https://mcp.dynapictures.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.templates",
        "tool": "https://letme.dev/dynapictures"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "AI credit pack",
          "unit": "credit",
          "usd": 0.02,
          "note": "$20 for 1,000 AI credits, about 250 AI images; packs never expire"
        }
      ],
      "provenance": {
        "legalEntity": "DynaPictures GmbH",
        "domain": "dynapictures.com",
        "domainRegistered": "2021-03-14",
        "endpointOnVendorDomain": true,
        "terms": "https://dynapictures.com/p/terms",
        "privacy": "https://dynapictures.com/p/privacy-policy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "The terms (revision 2/2026) and privacy policy name DynaPictures GmbH, Zasiusstr. 6a, 79102 Freiburg im Breisgau, Germany. The terms apply to business customers only and guarantee 94 per cent annual availability.",
          "No clause on automated access to the website was found in the terms.",
          "dynapictures.com/robots.txt disallows only the /tools/r/ paths. api.dynapictures.com/robots.txt answers 401.",
          "RDAP gives dynapictures.com a registration date of 14 March 2021.",
          "/.well-known/security.txt returns 404. No status page or changelog found."
        ],
        "score": 63
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/dynapictures.json",
      "live": {
        "slug": "dynapictures",
        "probe": {
          "target": "https://api.dynapictures.com",
          "method": "get",
          "lastAt": "2026-11-07T19:22:04.384664691Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 356,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 221,
          "p95ms24h": 339,
          "samples24h": 210,
          "samples30d": 210,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 197,
              "ok": 197
            }
          ]
        },
        "securityTxt": {
          "url": "https://dynapictures.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:01:15.164343855Z"
        },
        "llmsTxt": {
          "url": "https://dynapictures.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:20.007030228Z"
        },
        "pages": [
          {
            "url": "https://dynapictures.com/p/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:09:06.124953966Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ef81a0377c7a"
          },
          {
            "url": "https://dynapictures.com/p/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:09:08.231434531Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "6e15c5e4788d"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.dynapictures.com/mcp",
          "checkedAt": "2026-11-07T01:43:58.466398541Z",
          "status": "error",
          "note": "Post \"https://mcp.dynapictures.com/mcp\": dial tcp: lookup mcp.dynapictures.com on 192.168.1.1:53: no such host",
          "changedAt": "2026-11-07T01:43:58.466398541Z"
        },
        "updatedAt": "2026-11-07T19:22:04.384664691Z"
      }
    },
    "edges": [
      {
        "by": 50,
        "category": "maintenance",
        "leads": "creatomate",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "No changelog. Dated releases since 6 August are the n8n node 0.2.0 (11 August, per the 8 October npm reading), the rebuilt n8n node v1.0.0 (11 September) and v1.0.1 (19 September, a category metadata fix, half), and `@creatomate/preview` 1.6.1 (3 September, removing a dependency and type definitions from the build, half). The newest release that changes code is n8n v1.0.0, 54 days before the check (20). Three counted entries in 90 days (20, cause evidence; it drops to 0 after 9 November when 0.2.0 leaves the window). Support by email, no public changelog or forum found, and two open GitHub issues across the libraries per the 8 October check (5). The Node library was last tagged 1.2.1 on 23 September 2024 and calls `/v1`, the PHP library was last pushed on 21 October 2024, and the Preview SDK is current (7). No CI in the Node repository (2). 20+20+5+7+2 = 54.",
          "b": "No changelog, release notes or dated API change was found, and the MCP server card gives version 1.0.0 with no date (0). No dated changes since 8 August (0). Support by email and contact form, not tested (4 of 15). Not in the official MCP registry and no API SDKs (0). No public package or repository (0). 0 + 0 + 4 + 0 + 0 = 4."
        },
        "scores": {
          "a": 54,
          "b": 4
        }
      },
      {
        "by": 29,
        "category": "schema",
        "leads": "dynapictures",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "No OpenAPI file linked from the docs or llms.txt (0); the 8 October check of a guessed path on the API host is struck as a request to the product's API. The MCP tool schemas can't be read without an account. llms.txt with 50 Markdown topic links (10). Reference and topic pages state purpose and when to use `dry_run`, templates or raw RenderScript, with an out-of-scope page (16). Render options are typed with ranges and `status` is an enum, but `modifications` and `source` are open objects, and unknown names are ignored without an error (9). Examples in nine languages and a documented error body for 400, 401, 402, 404, 429 and 500 (13). `/v1` and `/v2` paths, no changelog (5). 0+10+16+9+13+5 = 53.",
          "b": "OpenAPI 3.1 at dynapictures.com/openapi.json with 20 paths (25). llms.txt, auth.md and an agent skill in Markdown (10). llms.txt says when to use the product and when it's a poor fit, and the skill gives call order for each job (17 of 20). Enums for formats and options, with layer overrides keyed by layer name (12 of 15). Request examples throughout and a status table in the skill, but the API reference's Errors section is unedited Slate template text about kittens (9 of 15). No URL version, additive changes, removals announced six months ahead with Deprecation and Sunset headers, and no changelog (9 of 15). 25 + 10 + 17 + 12 + 9 + 9 = 82."
        },
        "scores": {
          "a": 53,
          "b": 82
        }
      },
      {
        "by": 22,
        "category": "ergonomics",
        "leads": "creatomate",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "Eight MCP tools on the vendor's list, re-read on 4 November, definitions unseen, and the template list omits sources (22). A `tags` filter on the template list, with no pagination, limit or render list found (6). The API reference documents a `hint` and a `documentation` URL on 400, 401, 404 and 429, a `hint` on 402 and 500, plus advisory `errors` and `warnings` and a free `dry_run` (20). No idempotency key. `dry_run` and status polling are safe, and template delete is now described as a soft delete that an open editor can restore; MCP annotations were not readable (8). `template_id` alone starts a render, and the Node and PHP libraries are official but last published in 2024 (11). 22+6+20+8+11 = 67.",
          "b": "The MCP tool definitions weren't read (listing them needs a session), and llms.txt describes groups that include layer-by-layer design authoring, so the count is unknown. REST responses are small objects with image URLs (12 of 25). Template and generated-image listings, with no field selection documented (10 of 20). Errors are JSON with a `message` and documented statuses, without codes (12 of 20). Requests aren't idempotent, by the vendor's own note, though identical image URLs are served from cache without a credit (6 of 20). An Editor SDK for embedding the editor, and no API client SDKs (5 of 15). 12 + 10 + 12 + 6 + 5 = 45."
        },
        "scores": {
          "a": 67,
          "b": 45
        }
      },
      {
        "by": 22,
        "category": "security",
        "leads": "creatomate",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "MCP uses OAuth authorisation code with PKCE S256 and dynamic client registration, one scope, with connections revocable per application. REST uses one unscoped key per project, and key rotation is not documented (22). Each MCP connection reaches one project and a project can have a monthly credit budget, but there is no read-only mode and no server-side confirmation before a render or delete (8). Returns the account's own templates and renders (10). Account Settings lists MCP connections with last use, and the dashboard has an API log of renders (8). No security.txt, disclosure policy, bounty or certification found (0). No security.txt (404 on 4 November). 22+8+10+8+0 = 48.",
          "b": "One API key per user with the user's full access, not limited to workspaces or actions; a new key is requested by email to support, with no rotation in the account (10 of 30). No read-only mode, and the MCP server can author and change designs (3 of 20). Tools return the account's own templates and renders; image layers accept outside URLs (10 of 15). A list of generated images, with no audit log documented (3 of 15). No security.txt, disclosure policy, bug bounty or certification found (0). 10 + 3 + 10 + 3 + 0 = 26."
        },
        "scores": {
          "a": 48,
          "b": 26
        }
      },
      {
        "by": 11,
        "category": "transparency",
        "leads": "dynapictures",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service under published terms, with MIT client libraries (15). Render retention of 30 days is stated the same way in the docs, pricing page and llms.txt. The privacy policy is dated 27 June 2022 with no retention period for personal data, no DPA was found, and the terms let Creatomate make user Content available to other users (12). No deprecation policy, and `/v1` and `/v2` are documented side by side with no dates (2). The privacy policy names Paddle, AWS, DigitalOcean, Google Analytics, Cloudflare and GitLab, with no data locations (8). Terms and privacy policy re-read on 4 November, both still dated 27 June 2022. 15+12+2+8 = 37.",
          "b": "Closed service under terms (revision 2/2026) from DynaPictures GmbH in Freiburg, for business customers (15). The privacy policy names the controller, keeps generated images as long as needed or until deleted, gives plan image retention (3 months on Lite), and says the named AI providers don't train on API inputs under their API terms; other periods follow bookkeeping law (20 of 30). The OpenAPI file commits to six months' notice before removing an endpoint or field, with Deprecation and Sunset headers (16 of 20). AI sub-processors named with addresses (OpenAI, Google, Black Forest Labs, Replicate) and FastSpring for payments, while hosting providers aren't named (12 of 20). 15 + 20 + 16 + 12 = 63."
        },
        "scores": {
          "a": 52,
          "b": 63
        }
      },
      {
        "by": 5,
        "category": "payments",
        "leads": "creatomate",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). The pricing page now shows its plan prices in the page (Essential $540 a year for 2,000 credits a month, Growth from $1,290 a year for 10,000, Beyond from $3,290 a year for 50,000), the docs give $54 and $129 for the monthly Essential and Growth 10K, and the credit formula per image and per video is public. Credits come only inside monthly plans, with no per-credit price or top-up, so this sits between plan-only and per-unit pricing, as bannerbear, placid and templated are read (15, the earlier partial kept, see open questions). A free plan with 50 credits, no card and no time limit (20). A person signs up in a browser and copies a key or signs in through OAuth (0). 0+15+20+0 = 35.",
          "b": "No x402, MPP or L402 (0). Image allowances per plan and AI credit packs ($20 for 1,000 credits) are public, but plan prices are filled in by the FastSpring script and weren't readable (10 of 20). Free plan and a 14-day trial with 30 API credits, no card (20). auth.md says a person has to copy the key; there is no OAuth or programmatic key (0). 0 + 10 + 20 + 0 = 30."
        },
        "scores": {
          "a": 35,
          "b": 30
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Creatomate",
        "b": "DynaPictures GmbH",
        "name": "Vendor"
      },
      {
        "a": "https://api.creatomate.com/v2",
        "b": "https://api.dynapictures.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Creatomate's Terms and Conditions. The Node, PHP and Preview SDK libraries on GitHub are MIT",
        "b": "Closed service under the DynaPictures terms of use (revision 2/2026)",
        "name": "Licence"
      },
      {
        "a": "8",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-19",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "2022-06-27",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2022-06-27",
        "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": "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": "9 stars, 13k npm/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3.3/5 (4)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Creatomate scores 49.6 (D) on agent readiness against DynaPictures's 43.2 (E), and leads in 4 of 7 scored categories. DynaPictures leads on schema \u0026 documentation and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Creatomate or DynaPictures?"
      },
      {
        "answer": "Creatomate takes an API key or an OAuth sign-in. DynaPictures needs an API key.",
        "question": "Do Creatomate and DynaPictures need an API key?"
      },
      {
        "answer": "Yes. Creatomate has a hosted endpoint at https://api.creatomate.com/v2 and DynaPictures at https://api.dynapictures.com.",
        "question": "Can an agent call Creatomate and DynaPictures without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 67 against 45",
          "Security \u0026 auth, 48 against 26",
          "Payments \u0026 pricing, 35 against 30",
          "Maintenance \u0026 community, 54 against 4"
        ],
        "also": null,
        "goodFor": "Teams that render video, images and GIFs from templates or JSON and want an agent to draft templates and start renders through MCP.",
        "slug": "creatomate",
        "watchFor": "No status page, incident history or SLA found. `status.creatomate.com` does not resolve"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 82 against 53",
          "Transparency \u0026 trust, 63 against 52"
        ],
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "Personalised images and PDFs per record, image URLs in emails and pages, and email countdown timers, for marketing teams in the EU.",
        "slug": "dynapictures",
        "watchFor": "One API key per user with full account access and no scopes; a new key needs an email to support"
      }
    ],
    "history": {
      "creatomate": [
        {
          "causes": [
            "evidence"
          ],
          "date": "2026-11-04",
          "delta": 1.8,
          "from": 47.8,
          "fromGrade": "D",
          "to": 49.6,
          "toGrade": "D"
        },
        {
          "causes": [
            "evidence"
          ],
          "date": "2026-10-28",
          "delta": -0.2,
          "from": 48,
          "fromGrade": "D",
          "to": 47.8,
          "toGrade": "D"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.3,
          "from": 47.7,
          "fromGrade": "D",
          "to": 48,
          "toGrade": "D"
        }
      ],
      "dynapictures": null
    },
    "job": {
      "capability": "design.templates",
      "name": "Design templates"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-creatomate.json",
        "title": "Adobe Photoshop API vs Creatomate",
        "url": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-creatomate"
      },
      {
        "json": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-dynapictures.json",
        "title": "Adobe Photoshop API vs DynaPictures",
        "url": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-dynapictures"
      },
      {
        "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/bannerbear-vs-creatomate.json",
        "title": "Bannerbear API + MCP vs Creatomate",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-creatomate"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bannerbear-vs-dynapictures.json",
        "title": "Bannerbear API + MCP vs DynaPictures",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-dynapictures"
      },
      {
        "json": "https://www.anchorterminal.com/compare/canva-vs-creatomate.json",
        "title": "Canva REST APIs + MCP vs Creatomate",
        "url": "https://www.anchorterminal.com/compare/canva-vs-creatomate"
      },
      {
        "json": "https://www.anchorterminal.com/compare/canva-vs-dynapictures.json",
        "title": "Canva REST APIs + MCP vs DynaPictures",
        "url": "https://www.anchorterminal.com/compare/canva-vs-dynapictures"
      },
      {
        "json": "https://www.anchorterminal.com/compare/contentdrips-vs-creatomate.json",
        "title": "Contentdrips API and MCP vs Creatomate",
        "url": "https://www.anchorterminal.com/compare/contentdrips-vs-creatomate"
      },
      {
        "json": "https://www.anchorterminal.com/compare/contentdrips-vs-dynapictures.json",
        "title": "Contentdrips API and MCP vs DynaPictures",
        "url": "https://www.anchorterminal.com/compare/contentdrips-vs-dynapictures"
      },
      {
        "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-photoroom.json",
        "title": "Creatomate vs Photoroom API",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-photoroom"
      },
      {
        "json": "https://www.anchorterminal.com/compare/creatomate-vs-pictify.json",
        "title": "Creatomate vs Pictify",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-pictify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/creatomate-vs-pixelixe.json",
        "title": "Creatomate vs Pixelixe",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-pixelixe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/creatomate-vs-placid.json",
        "title": "Creatomate vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-placid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/creatomate-vs-postnitro.json",
        "title": "Creatomate vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-postnitro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/creatomate-vs-robolly.json",
        "title": "Creatomate vs Robolly",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-robolly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/creatomate-vs-shotstack.json",
        "title": "Creatomate vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-shotstack"
      },
      {
        "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-photoroom.json",
        "title": "DynaPictures vs Photoroom API",
        "url": "https://www.anchorterminal.com/compare/dynapictures-vs-photoroom"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dynapictures-vs-pictify.json",
        "title": "DynaPictures vs Pictify",
        "url": "https://www.anchorterminal.com/compare/dynapictures-vs-pictify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dynapictures-vs-pixelixe.json",
        "title": "DynaPictures vs Pixelixe",
        "url": "https://www.anchorterminal.com/compare/dynapictures-vs-pixelixe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dynapictures-vs-placid.json",
        "title": "DynaPictures vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/dynapictures-vs-placid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dynapictures-vs-postnitro.json",
        "title": "DynaPictures vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/dynapictures-vs-postnitro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dynapictures-vs-robolly.json",
        "title": "DynaPictures vs Robolly",
        "url": "https://www.anchorterminal.com/compare/dynapictures-vs-robolly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dynapictures-vs-shotstack.json",
        "title": "DynaPictures vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/dynapictures-vs-shotstack"
      },
      {
        "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/abyssale-vs-creatomate.json",
        "title": "Abyssale vs Creatomate",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-creatomate"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-dynapictures.json",
        "title": "Abyssale vs DynaPictures",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-dynapictures"
      },
      {
        "json": "https://www.anchorterminal.com/compare/creatomate-vs-osmo-cli.json",
        "title": "Creatomate vs Osmo CLI",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-osmo-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dynapictures-vs-osmo-cli.json",
        "title": "DynaPictures vs Osmo CLI",
        "url": "https://www.anchorterminal.com/compare/dynapictures-vs-osmo-cli"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 2,
        "creatomate": 40,
        "dynapictures": 42,
        "edge": "dynapictures",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 29,
        "creatomate": 53,
        "dynapictures": 82,
        "edge": "dynapictures",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 22,
        "creatomate": 67,
        "dynapictures": 45,
        "edge": "creatomate",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 22,
        "creatomate": 48,
        "dynapictures": 26,
        "edge": "creatomate",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 5,
        "creatomate": 35,
        "dynapictures": 30,
        "edge": "creatomate",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 50,
        "creatomate": 54,
        "dynapictures": 4,
        "edge": "creatomate",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 11,
        "creatomate": 52,
        "dynapictures": 63,
        "edge": "dynapictures",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Creatomate scores 49.6 (D) on agent readiness against DynaPictures's 43.2 (E), and leads in 4 of 7 scored categories. DynaPictures leads on schema \u0026 documentation and transparency \u0026 trust. Both do design templates.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "creatomate": "A hosted MCP server with eight tools and OAuth with PKCE sits beside a small REST API whose errors carry a hint and a documentation link, a documented rate limit with `Retry-After`, and a free `dry_run`. No status page, changelog, OpenAPI file or security contact was found, and the terms and privacy policy date from June 2022.",
      "dynapictures": "An OpenAPI 3.1 file, an agent skill and a six-month removal notice with Sunset headers make DynaPictures' template rendering easy to plan around, with a free plan and no-card trial. The single API key opens the whole account, requests aren't idempotent, and no changelog, status page or dated release was found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/creatomate-vs-dynapictures",
    "json": "https://www.anchorterminal.com/compare/creatomate-vs-dynapictures.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/creatomate-vs-dynapictures.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/creatomate-vs-dynapictures.min.md"
  },
  "markdown": "Creatomate scores 49.6 (D) on agent readiness against DynaPictures's 43.2 (E), and leads in 4 of 7 scored categories. DynaPictures leads on schema \u0026 documentation and transparency \u0026 trust. Both do design templates.\n\n- Creatomate: grade D, 49.6/100, rank #1088 of 1510. Markdown https://www.anchorterminal.com/tools/creatomate.md · JSON https://www.anchorterminal.com/api/v1/tools/creatomate.json\n- DynaPictures: grade E, 43.2/100, rank #1257 of 1510. Markdown https://www.anchorterminal.com/tools/dynapictures.md · JSON https://www.anchorterminal.com/api/v1/tools/dynapictures.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### Creatomate (D)\n\nGood for: Teams that render video, images and GIFs from templates or JSON and want an agent to draft templates and start renders through MCP.\n\nAhead on:\n- Agent ergonomics, 67 against 45\n- Security \u0026 auth, 48 against 26\n- Payments \u0026 pricing, 35 against 30\n- Maintenance \u0026 community, 54 against 4\n\nWatch for: No status page, incident history or SLA found. `status.creatomate.com` does not resolve\n\n### DynaPictures (E)\n\nGood for: Personalised images and PDFs per record, image URLs in emails and pages, and email countdown timers, for marketing teams in the EU.\n\nAhead on:\n- Schema \u0026 documentation, 82 against 53\n- Transparency \u0026 trust, 63 against 52\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: One API key per user with full account access and no scopes; a new key needs an email to support\n\n\n## Why the edge\n\n### Maintenance \u0026 community: Creatomate +50\n\n- Creatomate (54): No changelog. Dated releases since 6 August are the n8n node 0.2.0 (11 August, per the 8 October npm reading), the rebuilt n8n node v1.0.0 (11 September) and v1.0.1 (19 September, a category metadata fix, half), and `@creatomate/preview` 1.6.1 (3 September, removing a dependency and type definitions from the build, half). The newest release that changes code is n8n v1.0.0, 54 days before the check (20). Three counted entries in 90 days (20, cause evidence; it drops to 0 after 9 November when 0.2.0 leaves the window). Support by email, no public changelog or forum found, and two open GitHub issues across the libraries per the 8 October check (5). The Node library was last tagged 1.2.1 on 23 September 2024 and calls `/v1`, the PHP library was last pushed on 21 October 2024, and the Preview SDK is current (7). No CI in the Node repository (2). 20+20+5+7+2 = 54.\n- DynaPictures (4): No changelog, release notes or dated API change was found, and the MCP server card gives version 1.0.0 with no date (0). No dated changes since 8 August (0). Support by email and contact form, not tested (4 of 15). Not in the official MCP registry and no API SDKs (0). No public package or repository (0). 0 + 0 + 4 + 0 + 0 = 4.\n\n### Schema \u0026 documentation: DynaPictures +29\n\n- Creatomate (53): No OpenAPI file linked from the docs or llms.txt (0); the 8 October check of a guessed path on the API host is struck as a request to the product's API. The MCP tool schemas can't be read without an account. llms.txt with 50 Markdown topic links (10). Reference and topic pages state purpose and when to use `dry_run`, templates or raw RenderScript, with an out-of-scope page (16). Render options are typed with ranges and `status` is an enum, but `modifications` and `source` are open objects, and unknown names are ignored without an error (9). Examples in nine languages and a documented error body for 400, 401, 402, 404, 429 and 500 (13). `/v1` and `/v2` paths, no changelog (5). 0+10+16+9+13+5 = 53.\n- DynaPictures (82): OpenAPI 3.1 at dynapictures.com/openapi.json with 20 paths (25). llms.txt, auth.md and an agent skill in Markdown (10). llms.txt says when to use the product and when it's a poor fit, and the skill gives call order for each job (17 of 20). Enums for formats and options, with layer overrides keyed by layer name (12 of 15). Request examples throughout and a status table in the skill, but the API reference's Errors section is unedited Slate template text about kittens (9 of 15). No URL version, additive changes, removals announced six months ahead with Deprecation and Sunset headers, and no changelog (9 of 15). 25 + 10 + 17 + 12 + 9 + 9 = 82.\n\n### Agent ergonomics: Creatomate +22\n\n- Creatomate (67): Eight MCP tools on the vendor's list, re-read on 4 November, definitions unseen, and the template list omits sources (22). A `tags` filter on the template list, with no pagination, limit or render list found (6). The API reference documents a `hint` and a `documentation` URL on 400, 401, 404 and 429, a `hint` on 402 and 500, plus advisory `errors` and `warnings` and a free `dry_run` (20). No idempotency key. `dry_run` and status polling are safe, and template delete is now described as a soft delete that an open editor can restore; MCP annotations were not readable (8). `template_id` alone starts a render, and the Node and PHP libraries are official but last published in 2024 (11). 22+6+20+8+11 = 67.\n- DynaPictures (45): The MCP tool definitions weren't read (listing them needs a session), and llms.txt describes groups that include layer-by-layer design authoring, so the count is unknown. REST responses are small objects with image URLs (12 of 25). Template and generated-image listings, with no field selection documented (10 of 20). Errors are JSON with a `message` and documented statuses, without codes (12 of 20). Requests aren't idempotent, by the vendor's own note, though identical image URLs are served from cache without a credit (6 of 20). An Editor SDK for embedding the editor, and no API client SDKs (5 of 15). 12 + 10 + 12 + 6 + 5 = 45.\n\n### Security \u0026 auth: Creatomate +22\n\n- Creatomate (48): MCP uses OAuth authorisation code with PKCE S256 and dynamic client registration, one scope, with connections revocable per application. REST uses one unscoped key per project, and key rotation is not documented (22). Each MCP connection reaches one project and a project can have a monthly credit budget, but there is no read-only mode and no server-side confirmation before a render or delete (8). Returns the account's own templates and renders (10). Account Settings lists MCP connections with last use, and the dashboard has an API log of renders (8). No security.txt, disclosure policy, bounty or certification found (0). No security.txt (404 on 4 November). 22+8+10+8+0 = 48.\n- DynaPictures (26): One API key per user with the user's full access, not limited to workspaces or actions; a new key is requested by email to support, with no rotation in the account (10 of 30). No read-only mode, and the MCP server can author and change designs (3 of 20). Tools return the account's own templates and renders; image layers accept outside URLs (10 of 15). A list of generated images, with no audit log documented (3 of 15). No security.txt, disclosure policy, bug bounty or certification found (0). 10 + 3 + 10 + 3 + 0 = 26.\n\n### Transparency \u0026 trust: DynaPictures +11\n\n- Creatomate (52): Closed service under published terms, with MIT client libraries (15). Render retention of 30 days is stated the same way in the docs, pricing page and llms.txt. The privacy policy is dated 27 June 2022 with no retention period for personal data, no DPA was found, and the terms let Creatomate make user Content available to other users (12). No deprecation policy, and `/v1` and `/v2` are documented side by side with no dates (2). The privacy policy names Paddle, AWS, DigitalOcean, Google Analytics, Cloudflare and GitLab, with no data locations (8). Terms and privacy policy re-read on 4 November, both still dated 27 June 2022. 15+12+2+8 = 37.\n- DynaPictures (63): Closed service under terms (revision 2/2026) from DynaPictures GmbH in Freiburg, for business customers (15). The privacy policy names the controller, keeps generated images as long as needed or until deleted, gives plan image retention (3 months on Lite), and says the named AI providers don't train on API inputs under their API terms; other periods follow bookkeeping law (20 of 30). The OpenAPI file commits to six months' notice before removing an endpoint or field, with Deprecation and Sunset headers (16 of 20). AI sub-processors named with addresses (OpenAI, Google, Black Forest Labs, Replicate) and FastSpring for payments, while hosting providers aren't named (12 of 20). 15 + 20 + 16 + 12 = 63.\n\n### Payments \u0026 pricing: Creatomate +5\n\n- Creatomate (35): No x402, MPP or L402 (0). The pricing page now shows its plan prices in the page (Essential $540 a year for 2,000 credits a month, Growth from $1,290 a year for 10,000, Beyond from $3,290 a year for 50,000), the docs give $54 and $129 for the monthly Essential and Growth 10K, and the credit formula per image and per video is public. Credits come only inside monthly plans, with no per-credit price or top-up, so this sits between plan-only and per-unit pricing, as bannerbear, placid and templated are read (15, the earlier partial kept, see open questions). A free plan with 50 credits, no card and no time limit (20). A person signs up in a browser and copies a key or signs in through OAuth (0). 0+15+20+0 = 35.\n- DynaPictures (30): No x402, MPP or L402 (0). Image allowances per plan and AI credit packs ($20 for 1,000 credits) are public, but plan prices are filled in by the FastSpring script and weren't readable (10 of 20). Free plan and a 14-day trial with 30 API credits, no card (20). auth.md says a person has to copy the key; there is no OAuth or programmatic key (0). 0 + 10 + 20 + 0 = 30.\n\n## Score by category\n\n| Category | Weight | Creatomate | DynaPictures | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 40 | 42 | DynaPictures +2 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 53 | 82 | DynaPictures +29 |\n| Agent ergonomics | 13% (16.2 this run) | 67 | 45 | Creatomate +22 |\n| Security \u0026 auth | 14% (17.5 this run) | 48 | 26 | Creatomate +22 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 30 | Creatomate +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 54 | 4 | Creatomate +50 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 52 | 63 | DynaPictures +11 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **49.6 · D** | **43.2 · E** | |\n\n## Facts side by side\n\n| Fact | Creatomate | DynaPictures |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Creatomate | DynaPictures GmbH |\n| Hosted endpoint | `https://api.creatomate.com/v2` | `https://api.dynapictures.com` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Paid | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under Creatomate's Terms and Conditions. The Node, PHP and Preview SDK libraries on GitHub are MIT | Closed service under the DynaPictures terms of use (revision 2/2026) |\n| Tools exposed | 8 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-09-19 | none |\n| Terms last updated | 2022-06-27 | no date given |\n| Privacy policy last updated | 2022-06-27 | no date given |\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 | 9 stars, 13k npm/wk | none |\n| Agent reviews | 3.3/5 (4) | none |\n\n## How the scores have moved\n\n### Creatomate\n\n- +1.8 on 4 November 2026: new evidence\n- -0.2 on 28 October 2026: new evidence\n- +0.3 on 27 October 2026: checklist\n\n### DynaPictures\n\nNo score change since it was listed.\n\n## Verdicts\n\n**Creatomate.** A hosted MCP server with eight tools and OAuth with PKCE sits beside a small REST API whose errors carry a hint and a documentation link, a documented rate limit with `Retry-After`, and a free `dry_run`. No status page, changelog, OpenAPI file or security contact was found, and the terms and privacy policy date from June 2022.\n\n**DynaPictures.** An OpenAPI 3.1 file, an agent skill and a six-month removal notice with Sunset headers make DynaPictures' template rendering easy to plan around, with a free plan and no-card trial. The single API key opens the whole account, requests aren't idempotent, and no changelog, status page or dated release was found.\n\n## Before you call either\n\n### Creatomate\n\n1. Send `\"dry_run\": true` to `POST /v2/renders` before a paid render. It returns `valid`, `errors`, `warnings` and the effective source\n2. Read `warnings` on every render response. A modification keyed to an unknown element or property name is ignored without an error\n3. Keep under 30 requests per 10 seconds across the whole account, and wait for `Retry-After` on a 429\n4. Download each file when the webhook fires. Renders, their URLs and their status records are deleted after 30 days\n5. Use `render_scale` 0.5 for draft videos, about a quarter of the credits, and remember MCP `create_render` spends credits without a confirmation step from the server\n\n### DynaPictures\n\n1. Use `GET /templates` to find a template UID and its layer names before generating\n2. Check whether an image exists before retrying a timed-out `POST /designs/{UID}`; retries can be charged\n3. Treat 403 as a spent quota or expired trial and stop; wait for `Retry-After` only on 503\n4. Poll `GET /ai/generate/{jobUid}` about every 2 seconds and download the result, since the URL may expire\n5. Keep the API key out of image URLs; use signed or public links for embedding\n\n## Questions\n\n### Which is better for AI agents, Creatomate or DynaPictures?\n\nCreatomate scores 49.6 (D) on agent readiness against DynaPictures's 43.2 (E), and leads in 4 of 7 scored categories. DynaPictures leads on schema \u0026 documentation and transparency \u0026 trust.\n\n### Do Creatomate and DynaPictures need an API key?\n\nCreatomate takes an API key or an OAuth sign-in. DynaPictures needs an API key.\n\n### Can an agent call Creatomate and DynaPictures without installing anything?\n\nYes. Creatomate has a hosted endpoint at https://api.creatomate.com/v2 and DynaPictures at https://api.dynapictures.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/creatomate-vs-dynapictures.json, and with the fewest tokens: https://www.anchorterminal.com/compare/creatomate-vs-dynapictures.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"creatomate\", \"b\": \"dynapictures\"}`. From a terminal: `anchor compare creatomate dynapictures`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/creatomate.json and https://www.anchorterminal.com/api/v1/tools/dynapictures.json\n\n## Other comparisons with Creatomate or DynaPictures\n\n- [Adobe Photoshop API vs Creatomate](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-creatomate.md)\n- [Adobe Photoshop API vs DynaPictures](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-dynapictures.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- [Bannerbear API + MCP vs Creatomate](https://www.anchorterminal.com/compare/bannerbear-vs-creatomate.md)\n- [Bannerbear API + MCP vs DynaPictures](https://www.anchorterminal.com/compare/bannerbear-vs-dynapictures.md)\n- [Canva REST APIs + MCP vs Creatomate](https://www.anchorterminal.com/compare/canva-vs-creatomate.md)\n- [Canva REST APIs + MCP vs DynaPictures](https://www.anchorterminal.com/compare/canva-vs-dynapictures.md)\n- [Contentdrips API and MCP vs Creatomate](https://www.anchorterminal.com/compare/contentdrips-vs-creatomate.md)\n- [Contentdrips API and MCP vs DynaPictures](https://www.anchorterminal.com/compare/contentdrips-vs-dynapictures.md)\n- [Creatomate vs Layerre](https://www.anchorterminal.com/compare/creatomate-vs-layerre.md)\n- [Creatomate vs Photoroom API](https://www.anchorterminal.com/compare/creatomate-vs-photoroom.md)\n- [Creatomate vs Pictify](https://www.anchorterminal.com/compare/creatomate-vs-pictify.md)\n- [Creatomate vs Pixelixe](https://www.anchorterminal.com/compare/creatomate-vs-pixelixe.md)\n- [Creatomate vs Placid API + MCP](https://www.anchorterminal.com/compare/creatomate-vs-placid.md)\n- [Creatomate vs PostNitro](https://www.anchorterminal.com/compare/creatomate-vs-postnitro.md)\n- [Creatomate vs Robolly](https://www.anchorterminal.com/compare/creatomate-vs-robolly.md)\n- [Creatomate vs Shotstack](https://www.anchorterminal.com/compare/creatomate-vs-shotstack.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 Photoroom API](https://www.anchorterminal.com/compare/dynapictures-vs-photoroom.md)\n- [DynaPictures vs Pictify](https://www.anchorterminal.com/compare/dynapictures-vs-pictify.md)\n- [DynaPictures vs Pixelixe](https://www.anchorterminal.com/compare/dynapictures-vs-pixelixe.md)\n- [DynaPictures vs Placid API + MCP](https://www.anchorterminal.com/compare/dynapictures-vs-placid.md)\n- [DynaPictures vs PostNitro](https://www.anchorterminal.com/compare/dynapictures-vs-postnitro.md)\n- [DynaPictures vs Robolly](https://www.anchorterminal.com/compare/dynapictures-vs-robolly.md)\n- [DynaPictures vs Shotstack](https://www.anchorterminal.com/compare/dynapictures-vs-shotstack.md)\n- [DynaPictures vs Templated API + MCP](https://www.anchorterminal.com/compare/dynapictures-vs-templated.md)\n- [Abyssale vs Creatomate](https://www.anchorterminal.com/compare/abyssale-vs-creatomate.md)\n- [Abyssale vs DynaPictures](https://www.anchorterminal.com/compare/abyssale-vs-dynapictures.md)\n- [Creatomate vs Osmo CLI](https://www.anchorterminal.com/compare/creatomate-vs-osmo-cli.md)\n- [DynaPictures vs Osmo CLI](https://www.anchorterminal.com/compare/dynapictures-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": "Creatomate vs DynaPictures",
        "url": ""
      }
    ],
    "description": "Creatomate scores 49.6 (D) to DynaPictures's 43.2 (E) for design templates. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Creatomate D 49.6",
      "DynaPictures E 43.2",
      "scores"
    ],
    "h1": "Creatomate vs DynaPictures",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/creatomate-vs-dynapictures",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Creatomate vs DynaPictures for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/creatomate-vs-dynapictures"
  },
  "tokens": {
    "markdown": 4800,
    "slim": 2630
  },
  "version": 1
}
