{
  "data": {
    "a": {
      "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": 1239,
        "ranked": true,
        "rankOf": 1486,
        "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-07T18:20:21.965331454Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 339,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 220,
          "p95ms24h": 337,
          "samples24h": 200,
          "samples30d": 200,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "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-07T18:20:21.965331454Z"
      }
    },
    "answer": "DynaPictures and Placid API + MCP score within a point of each other on agent readiness, 43.2 (E) and 43 (E). Placid API + MCP leads on reliability, security \u0026 auth and payments \u0026 pricing.",
    "b": {
      "slug": "placid",
      "name": "Placid API + MCP",
      "vendor": "Placid",
      "vendorUrl": "https://placid.app",
      "kind": "http-api",
      "category": "design-assets",
      "summary": "Template rendering to images, PDFs and videos through a REST API, a URL API and an MCP server, with an embeddable template editor SDK.",
      "url": "https://www.anchorterminal.com/tools/placid",
      "markdownUrl": "https://www.anchorterminal.com/tools/placid.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/placid.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/placid.json",
      "dns": "placid.grade.anchorterminal.com",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.placid.app/api/rest",
      "packages": [],
      "auth": "api-key",
      "authNotes": "Project-scoped API token, sent as a bearer token in the Authorization header. The MCP server has a per-project URL and takes the token as a bearer header or, where a client can't set headers, as ?api_token= in the URL.",
      "pricing": "paid",
      "pricingNotes": "Free trial, and unlimited watermarked previews in test mode. Basic $19 a month (500 credits), Pro $39 (2,500), Business $89 (25,000), VIP $249 (100,000). Yearly billing is 10 times the monthly price. 1 image is 1 credit (up to 4,000 px), 10 seconds of video is 10 credits, 1 PDF page is 2 credits (https://placid.app/pricing).",
      "priceSummary": "$19 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "Subscription credits only. No x402 in the docs (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://placid.app/docs/2.0/introduction",
      "capabilities": [
        "design.templates",
        "design.render",
        "video.render"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "mcp",
        "async-jobs",
        "webhooks"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 43,
        "grade": "E",
        "agentReady": false,
        "rank": 1244,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 14,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 40,
          "maintenance": 7,
          "payments": 35,
          "reliability": 75,
          "schema": 34,
          "security": 34,
          "transparency": 58
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Hyperping status page with separate App and API components and 90-day history. No OpenAPI, no llms.txt, and the MCP tool list isn't published.",
        "bestFor": "Small teams and no-code builders who want template renders to image, PDF and video at a low monthly price, and agents that should be fenced to a few templates.",
        "strengths": [
          "Hyperping status page with separate App and API components and 90-day history",
          "Rate-limit headers (Limit, Remaining, Reset) and exponential backoff guidance documented",
          "Unlimited watermarked previews in test mode, and a trial with no card",
          "MCP settings restrict which templates and which output types an agent can use",
          "Named Austrian legal entity, privacy policy updated in November 2024, DPA on request"
        ],
        "weaknesses": [
          "No OpenAPI, no llms.txt, and the MCP tool list isn't published",
          "MCP setup guide documents the API token in the URL query string",
          "Changelog has no dates, so there's no public record of recent changes",
          "PHP and Laravel libraries last tagged on 2022-07-20, pointing at the older placid.app/api/rest base",
          "Subprocessors and hosting location aren't disclosed"
        ],
        "agentNotes": [
          "Send the token in the `Authorization` header, not as ?api_token=, wherever the client allows it",
          "Read X-RateLimit-Remaining and wait for X-RateLimit-Reset after a 429",
          "Use test mode for watermarked previews while matching layer names, then switch to live renders",
          "Leave create_now off for batches, since it caps at 10 at once and may fail under load",
          "Poll the returned polling_url or pass webhook_success, since images start as queued"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "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
          }
        ],
        "editorialScores": {
          "ergonomics": 40,
          "maintenance": 7,
          "payments": 35,
          "reliability": 75,
          "schema": 34,
          "security": 34,
          "transparency": 33
        },
        "provenanceScore": 83,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-01",
            "maintenance": "2026-10-01",
            "payments": "2026-10-01",
            "reliability": "2026-10-01",
            "schema": "2026-10-01",
            "security": "2026-10-01",
            "transparency": "2026-10-01"
          },
          "last": "2026-10-01",
          "lastMoved": "2026-10-27",
          "oldest": "2026-10-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl https://api.placid.app/api/rest/templates -H \"Authorization: Bearer $PLACID_API_TOKEN\"",
        "claudeCode": "claude mcp add --transport http placid https://mcp.placid.app/\u003cyour-project-url\u003e --header \"Authorization: Bearer $PLACID_API_TOKEN\""
      },
      "letme": {
        "capability": "https://letme.dev/design.templates",
        "tool": "https://letme.dev/placid"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Basic",
          "unit": "month",
          "usd": 19,
          "note": "500 credits, $190 billed yearly"
        },
        {
          "item": "Pro",
          "unit": "month",
          "usd": 39,
          "note": "2,500 credits, $390 billed yearly"
        },
        {
          "item": "Business",
          "unit": "month",
          "usd": 89,
          "note": "25,000 credits, $890 billed yearly"
        },
        {
          "item": "VIP",
          "unit": "month",
          "usd": 249,
          "note": "100,000 credits, $2,490 billed yearly"
        }
      ],
      "provenance": {
        "legalEntity": "Nifty Software GmbH",
        "domain": "placid.app",
        "domainRegistered": "2018-05-08",
        "endpointOnVendorDomain": true,
        "terms": "https://placid.app/terms-and-conditions",
        "privacy": "https://placid.app/privacy",
        "statusPage": "https://status.placid.app",
        "changelog": "https://headwayapp.co/placid-changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The changelog is hosted on Headway (headwayapp.co), not on placid.app"
        ],
        "score": 83
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/placid.json",
      "live": {
        "slug": "placid",
        "probe": {
          "target": "https://api.placid.app/api/rest",
          "method": "get",
          "lastAt": "2026-11-07T18:20:47.319012301Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 207,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.99,
          "p50ms24h": 169,
          "p95ms24h": 282,
          "samples24h": 239,
          "samples30d": 7910,
          "days": [
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 184
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.placid.app",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:48:36.694737265Z"
        },
        "securityTxt": {
          "url": "https://placid.app/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T15:59:42.59382187Z"
        },
        "domain": {
          "domain": "placid.app",
          "registered": "2018-05-08",
          "source": "https://pubapi.registry.google/rdap/domain/placid.app",
          "checkedAt": "2026-11-01T14:12:11.788930956Z"
        },
        "pages": [
          {
            "url": "https://headwayapp.co/placid-changelog",
            "kind": "changelog",
            "status": 0,
            "checkedAt": "2026-11-07T14:10:51.649582378Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "blockedByRobots": true
          },
          {
            "url": "https://placid.app/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:16:31.049458005Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "99e692b08293"
          },
          {
            "url": "https://placid.app/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:16:33.283749241Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "4ce631cc70ce"
          },
          {
            "url": "https://placid.app/terms-and-conditions",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:16:35.47662252Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c733087a07e6"
          }
        ],
        "updatedAt": "2026-11-07T18:20:47.319012301Z"
      }
    },
    "edges": [
      {
        "by": 48,
        "category": "schema",
        "leads": "dynapictures",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "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.",
          "b": "No OpenAPI or other machine-readable contract, and the MCP tool definitions aren't published (0). /llms.txt returns 404 (0). Endpoint pages state purpose and warn that create_now may fail under high load (12). template_uuid is the one required field and status is an enum, but `layers` and `modifications` are open objects keyed by layer name (8). Request and response examples per endpoint, and an error page with six codes but no body format (9). Docs are versioned 2.0, but the changelog on Headway carries no dates and its newest entries predate the MCP server (5)."
        },
        "scores": {
          "a": 82,
          "b": 34
        }
      },
      {
        "by": 33,
        "category": "reliability",
        "leads": "placid",
        "name": "Reliability",
        "reasons": {
          "a": "Hosted lines. No status page found in the docs, llms.txt or footer (0). No readable incident history (5). The monthly image quota is reported in RateLimit headers on generation, but no per-second or per-minute limit is published (5 of 15). The agent skill gives a status table with what to do for each, GET /links sends Retry-After on 503, and the docs warn that generation isn't idempotent and to check before retrying a 504 (12 of 15). The terms guarantee 94 per cent annual availability, a low figure but a published SLA (10). Nothing is labelled beta (10). 0 + 5 + 5 + 12 + 10 + 10 = 42.",
          "b": "Hyperping status page at status.placid.app with separate App and API components and 90-day bars (20). No incidents are posted. The page's own figure for the API is 99.963 per cent over 90 days, roughly 48 minutes of recorded downtime with no write-up, so minor rather than clean (20). 60 requests a minute and 10 simultaneous create_now requests, documented (15). X-RateLimit-Limit, -Remaining and -Reset headers and exponential backoff advice on 429, but no idempotency key or safe-retry note for renders, which are writes (10). No SLA found on the pricing page or in the docs (0). REST API 2.0 is GA (10)."
        },
        "scores": {
          "a": 42,
          "b": 75
        }
      },
      {
        "by": 8,
        "category": "security",
        "leads": "placid",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "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.",
          "b": "One bearer token per project, no scopes, and the docs say nothing on revoking or rotating it (15). The MCP setup guide documents ?api_token= in the server URL for clients that can't set headers, less 10 (5). MCP settings restrict which templates and which output types (image, PDF, video, docs only) the server can use (14). Returns renders from your own templates (10). A dashboard activity log is mentioned in the changelog, nothing per call documented (5). No security.txt (404), no certification in the privacy policy and no disclosure policy found (0)."
        },
        "scores": {
          "a": 26,
          "b": 34
        }
      },
      {
        "by": 5,
        "category": "ergonomics",
        "leads": "dynapictures",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "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.",
          "b": "Image, PDF and video objects are small and the MCP can be limited to chosen templates and creative types (15). We found no pagination or filter parameters on the pages we read (5). Six status codes documented without an error body format (10). No idempotency key, no MCP tool annotations we could see, and DELETE removes an image for good. Polling the polling_url is safe (3). Only template_uuid is required, but the official libraries are PHP and Laravel only, both last tagged v1.0.1 on 2022-07-20 (7)."
        },
        "scores": {
          "a": 45,
          "b": 40
        }
      },
      {
        "by": 5,
        "category": "payments",
        "leads": "placid",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "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.",
          "b": "No x402, MPP or L402 (0). Plan prices are public per the 30 September check (our fetch of the pricing page didn't render the amounts), and the FAQ states credit costs per unit, 1 per image, 2 per PDF page and 10 per 10 seconds of video (15). Free trial with no card and unlimited watermarked previews in test mode (20). A person signs up in a browser and copies a project token (0)."
        },
        "scores": {
          "a": 30,
          "b": 35
        }
      },
      {
        "by": 5,
        "category": "transparency",
        "leads": "dynapictures",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "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.",
          "b": "Closed service under published terms, per the 30 September check (15). Privacy policy updated 18 November 2024, a DPA on request, and raw request data kept 'for a limited amount of time' with no period stated (12). No deprecation policy or dated notices. The old changelog says v1 remains functional (3). Subprocessor categories only, with 'We don't publish further details of our data processors', and no hosting location (3)."
        },
        "scores": {
          "a": 63,
          "b": 58
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "DynaPictures GmbH",
        "b": "Placid",
        "name": "Vendor"
      },
      {
        "a": "https://api.dynapictures.com",
        "b": "https://api.placid.app/api/rest",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Closed service under the DynaPictures terms of use (revision 2/2026)",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "no date given",
        "b": "2024-11-25",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2024-11-18",
        "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": "yes",
        "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": "3.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "DynaPictures and Placid API + MCP score within a point of each other on agent readiness, 43.2 (E) and 43 (E). Placid API + MCP leads on reliability, security \u0026 auth and payments \u0026 pricing.",
        "question": "Which is better for AI agents, DynaPictures or Placid API + MCP?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do DynaPictures and Placid API + MCP need an API key?"
      },
      {
        "answer": "Yes. DynaPictures has a hosted endpoint at https://api.dynapictures.com and Placid API + MCP at https://api.placid.app/api/rest.",
        "question": "Can an agent call DynaPictures and Placid API + MCP without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 82 against 34",
          "Agent ergonomics, 45 against 40",
          "Transparency \u0026 trust, 63 against 58"
        ],
        "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"
      },
      {
        "aheadOn": [
          "Reliability, 75 against 42",
          "Security \u0026 auth, 34 against 26",
          "Payments \u0026 pricing, 35 against 30"
        ],
        "also": null,
        "goodFor": "Small teams and no-code builders who want template renders to image, PDF and video at a low monthly price, and agents that should be fenced to a few templates.",
        "slug": "placid",
        "watchFor": "No OpenAPI, no llms.txt, and the MCP tool list isn't published"
      }
    ],
    "history": {
      "dynapictures": null,
      "placid": [
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 42.9,
          "fromGrade": "E",
          "to": 43,
          "toGrade": "E"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.3,
          "from": 43.2,
          "fromGrade": "E",
          "to": 42.9,
          "toGrade": "E"
        }
      ]
    },
    "job": {
      "capability": "design.templates",
      "name": "Design templates"
    },
    "others": [
      {
        "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/adobe-photoshop-api-vs-placid.json",
        "title": "Adobe Photoshop API vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-placid"
      },
      {
        "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-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/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/bannerbear-vs-placid.json",
        "title": "Bannerbear API + MCP vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-placid"
      },
      {
        "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/canva-vs-placid.json",
        "title": "Canva REST APIs + MCP vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/canva-vs-placid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/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/contentdrips-vs-placid.json",
        "title": "Contentdrips API and MCP vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/contentdrips-vs-placid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/creatomate-vs-dynapictures.json",
        "title": "Creatomate vs DynaPictures",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-dynapictures"
      },
      {
        "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/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-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/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/photoroom-vs-placid.json",
        "title": "Photoroom API vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/photoroom-vs-placid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pixelixe-vs-placid.json",
        "title": "Pixelixe vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/pixelixe-vs-placid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/placid-vs-postnitro.json",
        "title": "Placid API + MCP vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/placid-vs-postnitro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/placid-vs-robolly.json",
        "title": "Placid API + MCP vs Robolly",
        "url": "https://www.anchorterminal.com/compare/placid-vs-robolly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/placid-vs-shotstack.json",
        "title": "Placid API + MCP vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/placid-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/placid-vs-templated.json",
        "title": "Placid API + MCP vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/placid-vs-templated"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-dynapictures.json",
        "title": "Abyssale vs DynaPictures",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-dynapictures"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-placid.json",
        "title": "Abyssale vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-placid"
      },
      {
        "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"
      },
      {
        "json": "https://www.anchorterminal.com/compare/osmo-cli-vs-placid.json",
        "title": "Osmo CLI vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/osmo-cli-vs-placid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pictify-vs-placid.json",
        "title": "Pictify vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/pictify-vs-placid"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 33,
        "dynapictures": 42,
        "edge": "placid",
        "key": "reliability",
        "name": "Reliability",
        "placid": 75,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 48,
        "dynapictures": 82,
        "edge": "dynapictures",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "placid": 34,
        "weight": 13
      },
      {
        "by": 5,
        "dynapictures": 45,
        "edge": "dynapictures",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "placid": 40,
        "weight": 13
      },
      {
        "by": 8,
        "dynapictures": 26,
        "edge": "placid",
        "key": "security",
        "name": "Security \u0026 auth",
        "placid": 34,
        "weight": 14
      },
      {
        "by": 5,
        "dynapictures": 30,
        "edge": "placid",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "placid": 35,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 3,
        "dynapictures": 4,
        "edge": "placid",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "placid": 7,
        "weight": 7
      },
      {
        "by": 5,
        "dynapictures": 63,
        "edge": "dynapictures",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "placid": 58,
        "weight": 7
      }
    ],
    "summary": "DynaPictures and Placid API + MCP score within a point of each other on agent readiness, 43.2 (E) and 43 (E). Placid API + MCP leads on reliability, security \u0026 auth and payments \u0026 pricing. Both do design templates.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "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.",
      "placid": "Hyperping status page with separate App and API components and 90-day history. No OpenAPI, no llms.txt, and the MCP tool list isn't published."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/dynapictures-vs-placid",
    "json": "https://www.anchorterminal.com/compare/dynapictures-vs-placid.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/dynapictures-vs-placid.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/dynapictures-vs-placid.min.md"
  },
  "markdown": "DynaPictures and Placid API + MCP score within a point of each other on agent readiness, 43.2 (E) and 43 (E). Placid API + MCP leads on reliability, security \u0026 auth and payments \u0026 pricing. Both do design templates.\n\n- DynaPictures: grade E, 43.2/100, rank #1239 of 1486. Markdown https://www.anchorterminal.com/tools/dynapictures.md · JSON https://www.anchorterminal.com/api/v1/tools/dynapictures.json\n- Placid API + MCP: grade E, 43/100, rank #1244 of 1486. Markdown https://www.anchorterminal.com/tools/placid.md · JSON https://www.anchorterminal.com/api/v1/tools/placid.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### 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 34\n- Agent ergonomics, 45 against 40\n- Transparency \u0026 trust, 63 against 58\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### Placid API + MCP (E)\n\nGood for: Small teams and no-code builders who want template renders to image, PDF and video at a low monthly price, and agents that should be fenced to a few templates.\n\nAhead on:\n- Reliability, 75 against 42\n- Security \u0026 auth, 34 against 26\n- Payments \u0026 pricing, 35 against 30\n\nWatch for: No OpenAPI, no llms.txt, and the MCP tool list isn't published\n\n\n## Why the edge\n\n### Schema \u0026 documentation: DynaPictures +48\n\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- Placid API + MCP (34): No OpenAPI or other machine-readable contract, and the MCP tool definitions aren't published (0). /llms.txt returns 404 (0). Endpoint pages state purpose and warn that create_now may fail under high load (12). template_uuid is the one required field and status is an enum, but `layers` and `modifications` are open objects keyed by layer name (8). Request and response examples per endpoint, and an error page with six codes but no body format (9). Docs are versioned 2.0, but the changelog on Headway carries no dates and its newest entries predate the MCP server (5).\n\n### Reliability: Placid API + MCP +33\n\n- DynaPictures (42): Hosted lines. No status page found in the docs, llms.txt or footer (0). No readable incident history (5). The monthly image quota is reported in RateLimit headers on generation, but no per-second or per-minute limit is published (5 of 15). The agent skill gives a status table with what to do for each, GET /links sends Retry-After on 503, and the docs warn that generation isn't idempotent and to check before retrying a 504 (12 of 15). The terms guarantee 94 per cent annual availability, a low figure but a published SLA (10). Nothing is labelled beta (10). 0 + 5 + 5 + 12 + 10 + 10 = 42.\n- Placid API + MCP (75): Hyperping status page at status.placid.app with separate App and API components and 90-day bars (20). No incidents are posted. The page's own figure for the API is 99.963 per cent over 90 days, roughly 48 minutes of recorded downtime with no write-up, so minor rather than clean (20). 60 requests a minute and 10 simultaneous create_now requests, documented (15). X-RateLimit-Limit, -Remaining and -Reset headers and exponential backoff advice on 429, but no idempotency key or safe-retry note for renders, which are writes (10). No SLA found on the pricing page or in the docs (0). REST API 2.0 is GA (10).\n\n### Security \u0026 auth: Placid API + MCP +8\n\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- Placid API + MCP (34): One bearer token per project, no scopes, and the docs say nothing on revoking or rotating it (15). The MCP setup guide documents ?api_token= in the server URL for clients that can't set headers, less 10 (5). MCP settings restrict which templates and which output types (image, PDF, video, docs only) the server can use (14). Returns renders from your own templates (10). A dashboard activity log is mentioned in the changelog, nothing per call documented (5). No security.txt (404), no certification in the privacy policy and no disclosure policy found (0).\n\n### Agent ergonomics: DynaPictures +5\n\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- Placid API + MCP (40): Image, PDF and video objects are small and the MCP can be limited to chosen templates and creative types (15). We found no pagination or filter parameters on the pages we read (5). Six status codes documented without an error body format (10). No idempotency key, no MCP tool annotations we could see, and DELETE removes an image for good. Polling the polling_url is safe (3). Only template_uuid is required, but the official libraries are PHP and Laravel only, both last tagged v1.0.1 on 2022-07-20 (7).\n\n### Payments \u0026 pricing: Placid API + MCP +5\n\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- Placid API + MCP (35): No x402, MPP or L402 (0). Plan prices are public per the 30 September check (our fetch of the pricing page didn't render the amounts), and the FAQ states credit costs per unit, 1 per image, 2 per PDF page and 10 per 10 seconds of video (15). Free trial with no card and unlimited watermarked previews in test mode (20). A person signs up in a browser and copies a project token (0).\n\n### Transparency \u0026 trust: DynaPictures +5\n\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- Placid API + MCP (58): Closed service under published terms, per the 30 September check (15). Privacy policy updated 18 November 2024, a DPA on request, and raw request data kept 'for a limited amount of time' with no period stated (12). No deprecation policy or dated notices. The old changelog says v1 remains functional (3). Subprocessor categories only, with 'We don't publish further details of our data processors', and no hosting location (3).\n\n## Score by category\n\n| Category | Weight | DynaPictures | Placid API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 42 | 75 | Placid API + MCP +33 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 82 | 34 | DynaPictures +48 |\n| Agent ergonomics | 13% (16.2 this run) | 45 | 40 | DynaPictures +5 |\n| Security \u0026 auth | 14% (17.5 this run) | 26 | 34 | Placid API + MCP +8 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 35 | Placid API + MCP +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 4 | 7 | Placid API + MCP +3 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 63 | 58 | DynaPictures +5 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **43.2 · E** | **43 · E** | |\n\n## Facts side by side\n\n| Fact | DynaPictures | Placid API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | DynaPictures GmbH | Placid |\n| Hosted endpoint | `https://api.dynapictures.com` | `https://api.placid.app/api/rest` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | API key | API key |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | Closed service under the DynaPictures terms of use (revision 2/2026) | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Terms last updated | no date given | 2024-11-25 |\n| Privacy policy last updated | no date given | 2024-11-18 |\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 | yes |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Agent reviews | none | 3.5/5 (2) |\n\n## How the scores have moved\n\n### DynaPictures\n\nNo score change since it was listed.\n\n### Placid API + MCP\n\n- +0.1 on 27 October 2026: checklist\n- -0.3 on 8 October 2026: checklist\n\n## Verdicts\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**Placid API + MCP.** Hyperping status page with separate App and API components and 90-day history. No OpenAPI, no llms.txt, and the MCP tool list isn't published.\n\n## Before you call either\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### Placid API + MCP\n\n1. Send the token in the `Authorization` header, not as ?api_token=, wherever the client allows it\n2. Read X-RateLimit-Remaining and wait for X-RateLimit-Reset after a 429\n3. Use test mode for watermarked previews while matching layer names, then switch to live renders\n4. Leave create_now off for batches, since it caps at 10 at once and may fail under load\n5. Poll the returned polling_url or pass webhook_success, since images start as queued\n\n## Questions\n\n### Which is better for AI agents, DynaPictures or Placid API + MCP?\n\nDynaPictures and Placid API + MCP score within a point of each other on agent readiness, 43.2 (E) and 43 (E). Placid API + MCP leads on reliability, security \u0026 auth and payments \u0026 pricing.\n\n### Do DynaPictures and Placid API + MCP need an API key?\n\nBoth need an API key.\n\n### Can an agent call DynaPictures and Placid API + MCP without installing anything?\n\nYes. DynaPictures has a hosted endpoint at https://api.dynapictures.com and Placid API + MCP at https://api.placid.app/api/rest.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/dynapictures-vs-placid.json, and with the fewest tokens: https://www.anchorterminal.com/compare/dynapictures-vs-placid.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"dynapictures\", \"b\": \"placid\"}`. From a terminal: `anchor compare dynapictures placid`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/dynapictures.json and https://www.anchorterminal.com/api/v1/tools/placid.json\n\n## Other comparisons with DynaPictures or Placid API + MCP\n\n- [Adobe Photoshop API vs DynaPictures](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-dynapictures.md)\n- [Adobe Photoshop API vs Placid API + MCP](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-placid.md)\n- [APITemplate.io vs DynaPictures](https://www.anchorterminal.com/compare/apitemplate-io-vs-dynapictures.md)\n- [APITemplate.io vs Placid API + MCP](https://www.anchorterminal.com/compare/apitemplate-io-vs-placid.md)\n- [Bannerbear API + MCP vs DynaPictures](https://www.anchorterminal.com/compare/bannerbear-vs-dynapictures.md)\n- [Bannerbear API + MCP vs Placid API + MCP](https://www.anchorterminal.com/compare/bannerbear-vs-placid.md)\n- [Canva REST APIs + MCP vs DynaPictures](https://www.anchorterminal.com/compare/canva-vs-dynapictures.md)\n- [Canva REST APIs + MCP vs Placid API + MCP](https://www.anchorterminal.com/compare/canva-vs-placid.md)\n- [Contentdrips API and MCP vs DynaPictures](https://www.anchorterminal.com/compare/contentdrips-vs-dynapictures.md)\n- [Contentdrips API and MCP vs Placid API + MCP](https://www.anchorterminal.com/compare/contentdrips-vs-placid.md)\n- [Creatomate vs DynaPictures](https://www.anchorterminal.com/compare/creatomate-vs-dynapictures.md)\n- [Creatomate vs Placid API + MCP](https://www.anchorterminal.com/compare/creatomate-vs-placid.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 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- [Layerre vs Placid API + MCP](https://www.anchorterminal.com/compare/layerre-vs-placid.md)\n- [Photoroom API vs Placid API + MCP](https://www.anchorterminal.com/compare/photoroom-vs-placid.md)\n- [Pixelixe vs Placid API + MCP](https://www.anchorterminal.com/compare/pixelixe-vs-placid.md)\n- [Placid API + MCP vs PostNitro](https://www.anchorterminal.com/compare/placid-vs-postnitro.md)\n- [Placid API + MCP vs Robolly](https://www.anchorterminal.com/compare/placid-vs-robolly.md)\n- [Placid API + MCP vs Shotstack](https://www.anchorterminal.com/compare/placid-vs-shotstack.md)\n- [Placid API + MCP vs Templated API + MCP](https://www.anchorterminal.com/compare/placid-vs-templated.md)\n- [Abyssale vs DynaPictures](https://www.anchorterminal.com/compare/abyssale-vs-dynapictures.md)\n- [Abyssale vs Placid API + MCP](https://www.anchorterminal.com/compare/abyssale-vs-placid.md)\n- [DynaPictures vs Osmo CLI](https://www.anchorterminal.com/compare/dynapictures-vs-osmo-cli.md)\n- [Osmo CLI vs Placid API + MCP](https://www.anchorterminal.com/compare/osmo-cli-vs-placid.md)\n- [Pictify vs Placid API + MCP](https://www.anchorterminal.com/compare/pictify-vs-placid.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": "DynaPictures vs Placid API + MCP",
        "url": ""
      }
    ],
    "description": "DynaPictures and Placid score within a point of each other for design templates, 43.2 and 43 out of 100. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "DynaPictures E 43.2",
      "Placid API + MCP E 43",
      "scores"
    ],
    "h1": "DynaPictures vs Placid API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/dynapictures-vs-placid",
    "published": "2026-10-01",
    "section": "tools",
    "title": "DynaPictures vs Placid for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/dynapictures-vs-placid"
  },
  "tokens": {
    "markdown": 4400,
    "slim": 2380
  },
  "version": 1
}
