{
  "data": {
    "similar": [
      {
        "grade": "B",
        "json": "https://www.anchorterminal.com/tools/canva.json",
        "name": "Canva REST APIs + MCP",
        "score": 67.3,
        "shared": [
          "design.templates",
          "design.render",
          "image.generate"
        ],
        "slug": "canva"
      },
      {
        "grade": "B",
        "json": "https://www.anchorterminal.com/tools/shotstack.json",
        "name": "Shotstack",
        "score": 67.3,
        "shared": [
          "design.templates",
          "design.render",
          "image.generate"
        ],
        "slug": "shotstack"
      },
      {
        "grade": "B",
        "json": "https://www.anchorterminal.com/tools/abyssale.json",
        "name": "Abyssale",
        "score": 65.6,
        "shared": [
          "design.render",
          "design.templates",
          "pdf.generate"
        ],
        "slug": "abyssale"
      },
      {
        "grade": "C",
        "json": "https://www.anchorterminal.com/tools/layerre.json",
        "name": "Layerre",
        "score": 57.6,
        "shared": [
          "design.templates",
          "design.render",
          "pdf.generate"
        ],
        "slug": "layerre"
      },
      {
        "grade": "C",
        "json": "https://www.anchorterminal.com/tools/pictify.json",
        "name": "Pictify",
        "score": 55.7,
        "shared": [
          "design.render",
          "design.templates",
          "pdf.generate"
        ],
        "slug": "pictify"
      },
      {
        "grade": "D",
        "json": "https://www.anchorterminal.com/tools/robolly.json",
        "name": "Robolly",
        "score": 48.4,
        "shared": [
          "design.templates",
          "design.render",
          "pdf.generate"
        ],
        "slug": "robolly"
      }
    ],
    "tool": {
      "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/",
      "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"
      },
      "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"
        ],
        "breakdown": [
          {
            "key": "reliability",
            "name": "Reliability",
            "weight": 16,
            "effectiveWeight": 20,
            "score": 42,
            "points": 8.4,
            "reason": "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.",
            "checked": "2026-11-06"
          },
          {
            "key": "performance",
            "name": "Performance",
            "weight": 10,
            "effectiveWeight": 0,
            "pending": true,
            "points": 0,
            "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
          },
          {
            "key": "schema",
            "name": "Schema \u0026 documentation",
            "weight": 13,
            "effectiveWeight": 16.25,
            "score": 82,
            "points": 13.33,
            "reason": "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.",
            "checked": "2026-11-06"
          },
          {
            "key": "ergonomics",
            "name": "Agent ergonomics",
            "weight": 13,
            "effectiveWeight": 16.25,
            "score": 45,
            "points": 7.31,
            "reason": "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.",
            "checked": "2026-11-06"
          },
          {
            "key": "security",
            "name": "Security \u0026 auth",
            "weight": 14,
            "effectiveWeight": 17.5,
            "score": 26,
            "points": 4.55,
            "reason": "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.",
            "checked": "2026-11-06"
          },
          {
            "key": "payments",
            "name": "Payments \u0026 pricing",
            "weight": 10,
            "effectiveWeight": 12.5,
            "score": 30,
            "points": 3.75,
            "reason": "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.",
            "checked": "2026-11-06"
          },
          {
            "key": "tasks",
            "name": "Task success",
            "weight": 10,
            "effectiveWeight": 0,
            "pending": true,
            "points": 0,
            "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
          },
          {
            "key": "maintenance",
            "name": "Maintenance \u0026 community",
            "weight": 7,
            "effectiveWeight": 8.75,
            "score": 4,
            "points": 0.35,
            "reason": "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.",
            "checked": "2026-11-06"
          },
          {
            "key": "transparency",
            "name": "Transparency \u0026 trust",
            "weight": 7,
            "effectiveWeight": 8.75,
            "score": 63,
            "points": 5.51,
            "note": "editorial 63, provenance 63",
            "reason": "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.",
            "checked": "2026-11-06"
          }
        ],
        "assessment": {
          "date": "2026-11-06",
          "basis": "public evidence",
          "confidence": "medium",
          "notes": {
            "ergonomics": "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.",
            "maintenance": "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.",
            "payments": "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.",
            "reliability": "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.",
            "schema": "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.",
            "security": "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.",
            "transparency": "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."
          },
          "sources": [
            {
              "what": "OpenAPI 3.1",
              "url": "https://dynapictures.com/openapi.json",
              "seen": "2026-11-06"
            },
            {
              "what": "API reference",
              "url": "https://dynapictures.com/docs/",
              "seen": "2026-11-06"
            },
            {
              "what": "llms.txt",
              "url": "https://dynapictures.com/llms.txt",
              "seen": "2026-11-06"
            },
            {
              "what": "authentication for agents",
              "url": "https://dynapictures.com/auth.md",
              "seen": "2026-11-06"
            },
            {
              "what": "agent skill",
              "url": "https://dynapictures.com/.well-known/agent-skills/dynapictures-api/SKILL.md",
              "seen": "2026-11-06"
            },
            {
              "what": "MCP server card",
              "url": "https://dynapictures.com/.well-known/mcp/server-card.json",
              "seen": "2026-11-06"
            },
            {
              "what": "pricing",
              "url": "https://dynapictures.com/p/pricing",
              "seen": "2026-11-06"
            },
            {
              "what": "about page, team",
              "url": "https://dynapictures.com/p/about",
              "seen": "2026-11-06"
            },
            {
              "what": "terms of use and SLA",
              "url": "https://dynapictures.com/p/terms",
              "seen": "2026-11-06"
            },
            {
              "what": "privacy policy and sub-processors",
              "url": "https://dynapictures.com/p/privacy-policy",
              "seen": "2026-11-06"
            },
            {
              "what": "official MCP registry search (no entry)",
              "url": "https://registry.modelcontextprotocol.io/v0/servers?search=dynapictures",
              "seen": "2026-11-06"
            }
          ],
          "openQuestions": [
            "unchecked: the MCP server's tool list and annotations, because listing them needs an MCP session.",
            "unchecked: plan prices, which the FastSpring checkout script fills in.",
            "Whether API calls are included on the free plan beyond the trial's 30 credits.",
            "The rate limit per second or minute, which isn't published."
          ]
        },
        "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
        },
        "scoreHistory": [
          {
            "date": "2026-11-06",
            "grade": "E",
            "kind": "listed",
            "method": "0.7",
            "score": 43.2
          }
        ]
      },
      "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"
      },
      "notable": [
        "OpenAPI 3.1 with 20 paths, from generation and batch jobs to layer-by-layer design authoring, workspaces, media and hooks (https://dynapictures.com/openapi.json)",
        "Removals are announced at least 6 months ahead in the API reference, with `Deprecation` and `Sunset` headers in that time, and changes are otherwise additive (https://dynapictures.com/openapi.json)",
        "llms.txt, auth.md and an agent skill say when to use the API, that requests aren't idempotent, and how to handle each error status (https://dynapictures.com/.well-known/agent-skills/dynapictures-api/SKILL.md)",
        "The terms guarantee 94 per cent annual availability, with maintenance windows outside working hours (https://dynapictures.com/p/terms)",
        "The API reference's Errors section is unedited template text about kittens, not DynaPictures' errors (https://dynapictures.com/docs/)",
        "AI images go to OpenAI, Google, Black Forest Labs or Replicate as named sub-processors (https://dynapictures.com/p/privacy-policy)"
      ],
      "area": "design-diagrams",
      "details": [
        {
          "label": "Surface listed",
          "value": "The REST API at api.dynapictures.com and the remote MCP server at mcp.dynapictures.com/mcp, read from the OpenAPI file, the API reference, llms.txt, auth.md, the agent skill, the MCP server card, the pricing, about, terms and privacy pages on 6 November 2026. No account was made, no tool was listed or called"
        },
        {
          "label": "MCP tools",
          "value": "Per llms.txt, tools list workspaces and designs, generate images, build image links, run AI image generation, manage media and author designs layer by layer. The tool list wasn't read, since that needs an MCP session"
        },
        {
          "label": "Outputs",
          "value": "PNG, JPEG, WEBP or AVIF images, multi-page PDFs, countdown timer GIFs for email, and standalone AI images"
        },
        {
          "label": "Limits",
          "value": "Monthly image quota reported in RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset on generation; 403 when it is used up. GET /links answers 503 with Retry-After when busy"
        },
        {
          "label": "Legal entity",
          "value": "DynaPictures GmbH, Zasiusstr. 6a, 79102 Freiburg im Breisgau, Germany, per the terms and privacy policy. Sales through FastSpring as reseller"
        }
      ],
      "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,
        "checks": [
          {
            "check": "Legal entity named",
            "value": "DynaPictures GmbH",
            "points": 20,
            "max": 20,
            "state": "ok"
          },
          {
            "check": "Domain age",
            "value": "dynapictures.com, registered 2021-03-14 (5 years)",
            "points": 11,
            "max": 15,
            "state": "part"
          },
          {
            "check": "Endpoint on the vendor's domain",
            "value": "api.dynapictures.com",
            "points": 15,
            "max": 15,
            "state": "ok"
          },
          {
            "check": "Terms of service",
            "value": "read, states 3 of the 7 things a reader expects",
            "points": 6.6,
            "max": 10,
            "state": "part"
          },
          {
            "check": "Privacy policy",
            "value": "read, states 5 of the 8 things a reader expects",
            "points": 7.8,
            "max": 10,
            "state": "part"
          },
          {
            "check": "Status page",
            "value": "not found",
            "points": 0,
            "max": 10,
            "state": "no"
          },
          {
            "check": "Changelog",
            "value": "not found",
            "points": 0,
            "max": 10,
            "state": "no"
          },
          {
            "check": "security.txt",
            "value": "not found",
            "points": 0,
            "max": 10,
            "state": "no"
          },
          {
            "check": "People named",
            "value": "1 named with their role, none with a public profile",
            "points": 7,
            "max": 10,
            "state": "part"
          },
          {
            "check": "Support route",
            "value": "a support address, help pages",
            "points": 5,
            "max": 5,
            "state": "ok"
          }
        ],
        "policies": [
          {
            "kind": "terms",
            "url": "https://dynapictures.com/p/terms",
            "state": "read",
            "readAt": "2026-11-06",
            "words": 1929,
            "points": 6.6,
            "max": 10,
            "expected": [
              {
                "key": "terms.date",
                "label": "Gives the date it was last updated",
                "found": false
              },
              {
                "key": "terms.law",
                "label": "Names the governing law or courts",
                "found": false
              },
              {
                "key": "terms.liability",
                "label": "States a limit on its liability",
                "found": false
              },
              {
                "key": "terms.termination",
                "label": "Says how the agreement or account can be ended",
                "found": true,
                "quote": "The Customer has the special right to terminate this contract in case of bad service provided."
              },
              {
                "key": "terms.changes",
                "label": "Says how changes to the terms are announced",
                "found": false
              },
              {
                "key": "terms.use",
                "label": "Lists what users may not do",
                "found": true,
                "quote": "The Customer shall use AI image generation features only in accordance with the Provider's Acceptable Use Policy, available at https://dynapictures.com/p/acceptable-use."
              },
              {
                "key": "terms.sla",
                "label": "Refers to a service level or uptime commitment",
                "found": true,
                "quote": "There are no availability guarantees during the 14-day trial period."
              }
            ]
          },
          {
            "kind": "privacy",
            "url": "https://dynapictures.com/p/privacy-policy",
            "state": "read",
            "readAt": "2026-11-06",
            "words": 4133,
            "points": 7.8,
            "max": 10,
            "expected": [
              {
                "key": "privacy.date",
                "label": "Gives the date it was last updated",
                "found": false
              },
              {
                "key": "privacy.collected",
                "label": "Says what personal data is collected",
                "found": false
              },
              {
                "key": "privacy.retention",
                "label": "Says how long data is kept",
                "found": true,
                "quote": "Data will be deleted no later than 6 months after processing the request.",
                "says": "Names a period of 6 months"
              },
              {
                "key": "privacy.processors",
                "label": "Says who else receives the data",
                "found": true,
                "quote": "the operating system used, the domain name of your Internet service provider,"
              },
              {
                "key": "privacy.sale",
                "label": "Says whether personal data is sold or shared for advertising",
                "found": false
              },
              {
                "key": "privacy.rights",
                "label": "Says what rights people have over their data",
                "found": true,
                "quote": "Responsible in the sense of the data protection laws, in particular the EU General Data Protection Regulation (GDPR), is:"
              },
              {
                "key": "privacy.contact",
                "label": "Gives a privacy contact",
                "found": true,
                "quote": "To contact us regarding this matter, please use the contact details given at the end of this Privacy Policy."
              },
              {
                "key": "privacy.transfers",
                "label": "Says where data is transferred or stored",
                "found": true,
                "quote": "transfers are safeguarded by the EU Standard Contractual Clauses and/or the providers' certification",
                "says": "Relies on standard contractual clauses"
              }
            ]
          }
        ]
      },
      "humans": {
        "slug": "dynapictures",
        "checked": "2026-11-06",
        "company": "DynaPictures GmbH",
        "people": [
          {
            "name": "Alexander Vushkan",
            "role": "Managing Director",
            "page": "/people/alexander-vushkan/"
          }
        ],
        "peopleNote": "The about page, read 6 November 2026, lists Alexander Vushkan as Managing Director, with others in marketing, partnerships, DevOps and product roles, links no personal accounts and says DynaPictures was founded in 2020 as a spin-off. No DynaPictures page calls anyone a founder. A web search turned up a Product Hunt profile that describes Oleksandr Vushkan as a co-founder of DynaPictures, but Product Hunt answered with a bot check, so it wasn't read and no founder flag is set. The terms and privacy policy name DynaPictures GmbH, Zasiusstr. 6a, 79102 Freiburg im Breisgau. Investors were looked for on the about page, the sitemap, llms.txt, the legal pages and in that search; none is named, and no round, total or valuation is stated anywhere read.",
        "companySocial": {
          "linkedin": "https://www.linkedin.com/company/dynapictures/",
          "x": "https://x.com/AskDynaPictures"
        },
        "support": {
          "emails": [
            "info@dynapictures.com"
          ],
          "urls": [
            "https://dynapictures.com/p/contact",
            "https://dynapictures.com/docs/"
          ],
          "contactEmails": [
            "info@dynapictures.com"
          ]
        },
        "sources": [
          "https://dynapictures.com/p/about",
          "https://dynapictures.com/p/terms",
          "https://dynapictures.com/p/privacy-policy",
          "https://dynapictures.com/llms.txt"
        ],
        "ownership": {
          "status": "private",
          "checked": "2026-11-06",
          "sources": [
            "https://dynapictures.com/p/terms",
            "https://dynapictures.com/p/privacy-policy"
          ]
        }
      },
      "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"
      }
    },
    "verify": {
      "accepts": "a page on dynapictures.com or one of its subdomains",
      "badgeUrl": "https://www.anchorterminal.com/badges/dynapictures.svg",
      "body": {
        "slug": "dynapictures",
        "url": "the page with the badge or the link"
      },
      "docs": "https://www.anchorterminal.com/builders/#verify",
      "effect": "none, it never changes a grade, rank or review",
      "endpoint": "https://www.anchorterminal.com/api/v1/verify",
      "listingUrl": "https://www.anchorterminal.com/tools/dynapictures",
      "mcpTool": "verify_listing",
      "recheck": "weekly; two failed checks in a row and it lapses, a later pass restores it",
      "snippets": {
        "html": "\u003ca href=\"https://www.anchorterminal.com/tools/dynapictures\"\u003e\u003cimg src=\"https://www.anchorterminal.com/badges/dynapictures.svg\" alt=\"DynaPictures on Anchor Terminal\" height=\"20\"\u003e\u003c/a\u003e",
        "markdown": "[![DynaPictures on Anchor Terminal](https://www.anchorterminal.com/badges/dynapictures.svg)](https://www.anchorterminal.com/tools/dynapictures)",
        "link": "\u003ca href=\"https://www.anchorterminal.com/tools/dynapictures\"\u003eDynaPictures on Anchor Terminal\u003c/a\u003e"
      }
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/dynapictures",
    "json": "https://www.anchorterminal.com/tools/dynapictures.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/dynapictures.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "pricing": "https://www.anchorterminal.com/tools/dynapictures#pricing",
    "reviews": "https://www.anchorterminal.com/tools/dynapictures#reviews",
    "slim": "https://www.anchorterminal.com/tools/dynapictures.min.md"
  },
  "markdown": "## Overview\n\n**Grade E · 43.2/100 · rank #1239 of 1486 · #13 in Programmatic asset production · not agent-ready · confidence medium**\n\n\n## Assessment\n\nAn 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## Facts\n\n| Field | Value |\n| --- | --- |\n| Vendor | DynaPictures GmbH (https://dynapictures.com) |\n| Kind | HTTP API |\n| Category | Programmatic asset production (https://www.anchorterminal.com/categories/design-assets) |\n| Transport | HTTP, Streamable HTTP |\n| Endpoint | `https://api.dynapictures.com` |\n| Auth | API key · 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. |\n| Pricing | Freemium ($0.02 / credit) · 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. |\n| x402 | No · 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. |\n| Licence | Closed service under the DynaPictures terms of use (revision 2/2026) |\n| Docs | https://dynapictures.com/docs/ |\n| llms.txt | https://dynapictures.com/llms.txt |\n| Surface listed | The REST API at api.dynapictures.com and the remote MCP server at mcp.dynapictures.com/mcp, read from the OpenAPI file, the API reference, llms.txt, auth.md, the agent skill, the MCP server card, the pricing, about, terms and privacy pages on 6 November 2026. No account was made, no tool was listed or called |\n| MCP tools | Per llms.txt, tools list workspaces and designs, generate images, build image links, run AI image generation, manage media and author designs layer by layer. The tool list wasn't read, since that needs an MCP session |\n| Outputs | PNG, JPEG, WEBP or AVIF images, multi-page PDFs, countdown timer GIFs for email, and standalone AI images |\n| Limits | Monthly image quota reported in RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset on generation; 403 when it is used up. GET /links answers 503 with Retry-After when busy |\n| Legal entity | DynaPictures GmbH, Zasiusstr. 6a, 79102 Freiburg im Breisgau, Germany, per the terms and privacy policy. Sales through FastSpring as reseller |\n| Capabilities | design.templates, design.render, pdf.generate, image.generate |\n| Tags | hosted, openapi, llms-txt, mcp, remote-mcp, api-key, freemium, free-tier, no-card, sla, eu |\n| JSON | https://www.anchorterminal.com/api/v1/tools/dynapictures.json |\n\n## Score breakdown (methodology v0.7, October 2026 research run)\n\nAssessed 2026-11-06 from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/#checklist). Confidence: medium. Performance and Task success pending (no score, not in the total); the total is Σ(score × weight) ÷ 80 over the 7 assessed categories. \"This run\" is each category's share of the 100 points.\n\n| Category | Weight | This run | Score (0–100) | Points |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% | 20 | 42 | 8.4 |\n| Performance | 10% | pending | pending | n/a |\n| Schema \u0026 documentation | 13% | 16.2 | 82 | 13.3 |\n| Agent ergonomics | 13% | 16.2 | 45 | 7.3 |\n| Security \u0026 auth | 14% | 17.5 | 26 | 4.5 |\n| Payments \u0026 pricing | 10% | 12.5 | 30 | 3.8 |\n| Task success | 10% | pending | pending | n/a |\n| Maintenance \u0026 community | 7% | 8.8 | 4 | 0.3 |\n| Transparency \u0026 trust (editorial 63, provenance 63) | 7% | 8.8 | 63 | 5.5 |\n| Negative events | up to −15 | up to −15 | none recorded | 0 |\n| **Total** | | | | **43.2 → E** |\n\n### Why each score\n\n- Reliability 42 (checked 2026-11-06): 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- Performance: Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes.\n- Schema \u0026 documentation 82 (checked 2026-11-06): 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- Agent ergonomics 45 (checked 2026-11-06): 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- Security \u0026 auth 26 (checked 2026-11-06): 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- Payments \u0026 pricing 30 (checked 2026-11-06): 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- Task success: Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored.\n- Maintenance \u0026 community 4 (checked 2026-11-06): 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- Transparency \u0026 trust 63 (checked 2026-11-06): 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\nFix list, everything this grade says the listing lacks, the biggest gain first (18 items). What it covers is at https://www.anchorterminal.com/fixes/dynapictures.md (JSON https://www.anchorterminal.com/fixes/dynapictures.json). The whole list for a coding agent comes from `POST https://www.anchorterminal.com/api/v1/fix-list` with `{\"listing\": \"dynapictures\", \"plan\": \"read\"}`, free while the beta runs\n\n### What we couldn't check\n\n- unchecked: the MCP server's tool list and annotations, because listing them needs an MCP session.\n- unchecked: plan prices, which the FastSpring checkout script fills in.\n- Whether API calls are included on the free plan beyond the trial's 30 credits.\n- The rate limit per second or minute, which isn't published.\n\n### Sources\n\n- OpenAPI 3.1: \u003chttps://dynapictures.com/openapi.json\u003e (seen 2026-11-06)\n- API reference: \u003chttps://dynapictures.com/docs/\u003e (seen 2026-11-06)\n- llms.txt: \u003chttps://dynapictures.com/llms.txt\u003e (seen 2026-11-06)\n- authentication for agents: \u003chttps://dynapictures.com/auth.md\u003e (seen 2026-11-06)\n- agent skill: \u003chttps://dynapictures.com/.well-known/agent-skills/dynapictures-api/SKILL.md\u003e (seen 2026-11-06)\n- MCP server card: \u003chttps://dynapictures.com/.well-known/mcp/server-card.json\u003e (seen 2026-11-06)\n- pricing: \u003chttps://dynapictures.com/p/pricing\u003e (seen 2026-11-06)\n- about page, team: \u003chttps://dynapictures.com/p/about\u003e (seen 2026-11-06)\n- terms of use and SLA: \u003chttps://dynapictures.com/p/terms\u003e (seen 2026-11-06)\n- privacy policy and sub-processors: \u003chttps://dynapictures.com/p/privacy-policy\u003e (seen 2026-11-06)\n- official MCP registry search (no entry): \u003chttps://registry.modelcontextprotocol.io/v0/servers?search=dynapictures\u003e (seen 2026-11-06)\n\n## Score history\n\nEvery move of a score since the listing was graded, newest first, with its cause. A score can't move without an entry here. JSON: https://www.anchorterminal.com/api/v1/tools/dynapictures/history.json\n\n- 2026-11-06: graded 43.2 E (methodology 0.7)\n\n## Who's behind it (provenance 63/100, checked 2026-11-06)\n\n| Check | Finding | Points |\n| --- | --- | --- |\n| Legal entity named | DynaPictures GmbH | 20/20 |\n| Domain age | dynapictures.com, registered 2021-03-14 (5 years) | 11/15 |\n| Endpoint on the vendor's domain | api.dynapictures.com | 15/15 |\n| Terms of service | read, states 3 of the 7 things a reader expects | 6.6/10 |\n| Privacy policy | read, states 5 of the 8 things a reader expects | 7.8/10 |\n| Status page | not found | 0/10 |\n| Changelog | not found | 0/10 |\n| security.txt | not found | 0/10 |\n| People named | 1 named with their role, none with a public profile | 7/10 |\n| Support route | a support address, help pages | 5/5 |\n\nThe 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.\n\nNo clause on automated access to the website was found in the terms.\n\ndynapictures.com/robots.txt disallows only the /tools/r/ paths. api.dynapictures.com/robots.txt answers 401.\n\nRDAP gives dynapictures.com a registration date of 14 March 2021.\n\n/.well-known/security.txt returns 404. No status page or changelog found.\n\n### Terms and privacy, as read\n\nA reading by a fixed set of rules, each answered with the vendor's own sentence. Not legal advice.\n\n**Terms of service** (https://dynapictures.com/p/terms), read 2026-11-06, gives no date, states 3 of the 7 things a reader expects.\n\n- Not found in the text. Gives the date it was last updated.\n- Not found in the text. Names the governing law or courts.\n- Not found in the text. States a limit on its liability.\n- Not found in the text. Says how changes to the terms are announced.\n\n**Privacy policy** (https://dynapictures.com/p/privacy-policy), read 2026-11-06, gives no date, states 5 of the 8 things a reader expects.\n\n- Not found in the text. Gives the date it was last updated.\n- Not found in the text. Says what personal data is collected.\n- Says how long data is kept. Names a period of 6 months.\n- Not found in the text. Says whether personal data is sold or shared for advertising.\n- Says where data is transferred or stored. Relies on standard contractual clauses.\n\n## Humans behind the project (researched 2026-11-06 from public pages, not part of the grade)\n\n### Key people\n\n- Alexander Vushkan, Managing Director\n- Note: The about page, read 6 November 2026, lists Alexander Vushkan as Managing Director, with others in marketing, partnerships, DevOps and product roles, links no personal accounts and says DynaPictures was founded in 2020 as a spin-off. No DynaPictures page calls anyone a founder. A web search turned up a Product Hunt profile that describes Oleksandr Vushkan as a co-founder of DynaPictures, but Product Hunt answered with a bot check, so it wasn't read and no founder flag is set. The terms and privacy policy name DynaPictures GmbH, Zasiusstr. 6a, 79102 Freiburg im Breisgau. Investors were looked for on the about page, the sitemap, llms.txt, the legal pages and in that search; none is named, and no round, total or valuation is stated anywhere read.\n- DynaPictures GmbH: LinkedIn https://www.linkedin.com/company/dynapictures/ X https://x.com/AskDynaPictures\n\n### Getting support\n\n- Support email: info@dynapictures.com\n- Help: https://dynapictures.com/p/contact\n- Help: https://dynapictures.com/docs/\n- Sources: https://dynapictures.com/p/about, https://dynapictures.com/p/terms, https://dynapictures.com/p/privacy-policy, https://dynapictures.com/llms.txt\n\n## Live (updated 2026-11-07 18:20 UTC)\n\n- Right now: up, HTTP 200, 339 ms, checked 2026-11-07 18:20 UTC (get on `https://api.dynapictures.com`)\n- Uptime 24h 100.0% (200 probes) · 30 days 100.0% (200 probes) · p50 220 ms · p95 337 ms\n- security.txt: none\n- Watching privacy \u003chttps://dynapictures.com/p/privacy-policy\u003e\n- Watching terms \u003chttps://dynapictures.com/p/terms\u003e\n- Tools: couldn't list them, Post \"https://mcp.dynapictures.com/mcp\": dial tcp: lookup mcp.dynapictures.com on 192.168.1.1:53: no such host (checked 2026-11-07 01:43 UTC)\n- Always current: https://www.anchorterminal.com/api/v1/live/dynapictures.json\n\n## Probe metrics\n\nNot measured yet. Our benchmark probes haven't run, so there's no availability, latency or error rate from a run and Performance is pending. Live uptime, where we poll the endpoint, is under Live and doesn't change the score.\n\n## Prices\n\n| Item | Price | Unit | Note |\n| --- | --- | --- | --- |\n| AI credit pack | $0.02 | per credit | $20 for 1,000 AI credits, about 250 AI images; packs never expire |\n\nAcross all listings: https://www.anchorterminal.com/prices/index.md\n\n## Strengths\n\n- OpenAPI 3.1 with 20 paths, llms.txt, auth.md and an agent skill written for agents\n- Removals announced six months ahead with Deprecation and Sunset headers\n- Free plan and a 14-day trial with 30 API credits, no card\n- Identical image URLs return a cached image without using another credit\n- Terms guarantee 94 per cent annual availability; AI sub-processors named in the privacy policy\n\n## Weaknesses\n\n- One API key per user with full account access and no scopes; a new key needs an email to support\n- Generation requests aren't idempotent, so a retry can spend a second credit\n- No changelog, status page or dated release found\n- The docs' Errors section is unedited template text\n- Not in the official MCP registry, and plan prices are drawn by script\n\n\n\n## Before you call it (notes for agents)\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## Connect\n\nFirst request:\n\n```bash\ncurl https://api.dynapictures.com/workspaces -H \"Authorization: Bearer YOUR_API_KEY\"\n```\n\nMCP client configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"dynapictures\": {\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_API_KEY\"\n      },\n      \"url\": \"https://mcp.dynapictures.com/mcp\"\n    }\n  }\n}\n```\n\nThrough letme: https://letme.dev/dynapictures. letme answers with the pick and how to call it direct. How it works: https://www.anchorterminal.com/letme/index.md\n\n## Similar tools\n\nRanked by shared capabilities, then score. Same-category tools with no shared capability key are listed last.\n\n| Tool | Grade | Score | Rank | Shared capabilities | x402 | Markdown |\n| --- | --- | --- | --- | --- | --- | --- |\n| Canva REST APIs + MCP | B | 67.3 | 332 | design.templates, design.render, image.generate | no | https://www.anchorterminal.com/tools/canva.md |\n| Shotstack | B | 67.3 | 333 | design.templates, design.render, image.generate | no | https://www.anchorterminal.com/tools/shotstack.md |\n| Abyssale | B | 65.6 | 411 | design.render, design.templates, pdf.generate | no | https://www.anchorterminal.com/tools/abyssale.md |\n| Layerre | C | 57.6 | 785 | design.templates, design.render, pdf.generate | no | https://www.anchorterminal.com/tools/layerre.md |\n| Pictify | C | 55.7 | 856 | design.render, design.templates, pdf.generate | no | https://www.anchorterminal.com/tools/pictify.md |\n| Robolly | D | 48.4 | 1115 | design.templates, design.render, pdf.generate | no | https://www.anchorterminal.com/tools/robolly.md |\n\n## Panel reviews (0)\n\nReviewed by the Anchor panel (https://www.anchorterminal.com/reviewers/index.md): .\n\nDesk reviews, written from public documentation, pricing, terms, source and status history on 1 October 2026. No calls made. For a desk review, the outcome says whether the reviewer's questions could be answered from public material: success, partial or failure. How reviews work: https://www.anchorterminal.com/reviews/how-it-works.md\n\n## Notable\n\n- OpenAPI 3.1 with 20 paths, from generation and batch jobs to layer-by-layer design authoring, workspaces, media and hooks (source: \u003chttps://dynapictures.com/openapi.json\u003e)\n- Removals are announced at least 6 months ahead in the API reference, with `Deprecation` and `Sunset` headers in that time, and changes are otherwise additive (source: \u003chttps://dynapictures.com/openapi.json\u003e)\n- llms.txt, auth.md and an agent skill say when to use the API, that requests aren't idempotent, and how to handle each error status (source: \u003chttps://dynapictures.com/.well-known/agent-skills/dynapictures-api/SKILL.md\u003e)\n- The terms guarantee 94 per cent annual availability, with maintenance windows outside working hours (source: \u003chttps://dynapictures.com/p/terms\u003e)\n- The API reference's Errors section is unedited template text about kittens, not DynaPictures' errors (source: \u003chttps://dynapictures.com/docs/\u003e)\n- AI images go to OpenAI, Google, Black Forest Labs or Replicate as named sub-processors (source: \u003chttps://dynapictures.com/p/privacy-policy\u003e)\n\n- #13 of 18 in 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## Compare\n\n- [Adobe Photoshop API vs DynaPictures](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-dynapictures.md): E 44 vs E 43.2\n- [APITemplate.io vs DynaPictures](https://www.anchorterminal.com/compare/apitemplate-io-vs-dynapictures.md): F 30.1 vs E 43.2\n- [Bannerbear API + MCP vs DynaPictures](https://www.anchorterminal.com/compare/bannerbear-vs-dynapictures.md): C 59.6 vs E 43.2\n- [Canva REST APIs + MCP vs DynaPictures](https://www.anchorterminal.com/compare/canva-vs-dynapictures.md): B 67.3 vs E 43.2\n- [Contentdrips API and MCP vs DynaPictures](https://www.anchorterminal.com/compare/contentdrips-vs-dynapictures.md): F 36.3 vs E 43.2\n- [Creatomate vs DynaPictures](https://www.anchorterminal.com/compare/creatomate-vs-dynapictures.md): D 49.6 vs E 43.2\n- [DynaPictures vs Layerre](https://www.anchorterminal.com/compare/dynapictures-vs-layerre.md): E 43.2 vs C 57.6\n- [DynaPictures vs Photoroom API](https://www.anchorterminal.com/compare/dynapictures-vs-photoroom.md): E 43.2 vs D 53.5\n- [DynaPictures vs Pictify](https://www.anchorterminal.com/compare/dynapictures-vs-pictify.md): E 43.2 vs C 55.7\n- [DynaPictures vs Pixelixe](https://www.anchorterminal.com/compare/dynapictures-vs-pixelixe.md): E 43.2 vs F 37.3\n- [DynaPictures vs Placid API + MCP](https://www.anchorterminal.com/compare/dynapictures-vs-placid.md): E 43.2 vs E 43\n- [DynaPictures vs PostNitro](https://www.anchorterminal.com/compare/dynapictures-vs-postnitro.md): E 43.2 vs D 52.6\n- [DynaPictures vs Robolly](https://www.anchorterminal.com/compare/dynapictures-vs-robolly.md): E 43.2 vs D 48.4\n- [DynaPictures vs Shotstack](https://www.anchorterminal.com/compare/dynapictures-vs-shotstack.md): E 43.2 vs B 67.3\n- [DynaPictures vs Templated API + MCP](https://www.anchorterminal.com/compare/dynapictures-vs-templated.md): E 43.2 vs C 58.8\n- [Abyssale vs DynaPictures](https://www.anchorterminal.com/compare/abyssale-vs-dynapictures.md): B 65.6 vs E 43.2\n- [DynaPictures vs Osmo CLI](https://www.anchorterminal.com/compare/dynapictures-vs-osmo-cli.md): E 43.2 vs F 35.2\n\n## Verify this listing\n\nFor the vendor. The badge or a plain link to this page verifies the listing, from a page on dynapictures.com or one of its subdomains. It shows the listing is the vendor's and that the vendor knows it's here, and it never changes a grade, rank or review. The vendor sends the page's address to `POST https://www.anchorterminal.com/api/v1/verify` as `{\"slug\": \"dynapictures\", \"url\": \"…\"}`, or calls the `verify_listing` tool at https://www.anchorterminal.com/mcp. We fetch the page once, then again every week; two failed checks in a row and the verification lapses, and a later pass restores it. What we check: https://www.anchorterminal.com/builders/index.md#verify\n\nHTML badge:\n\n```html\n\u003ca href=\"https://www.anchorterminal.com/tools/dynapictures\"\u003e\u003cimg src=\"https://www.anchorterminal.com/badges/dynapictures.svg\" alt=\"DynaPictures on Anchor Terminal\" height=\"20\"\u003e\u003c/a\u003e\n```\n\nMarkdown badge, for a README:\n\n```markdown\n[![DynaPictures on Anchor Terminal](https://www.anchorterminal.com/badges/dynapictures.svg)](https://www.anchorterminal.com/tools/dynapictures)\n```\n\nPlain link:\n\n```html\n\u003ca href=\"https://www.anchorterminal.com/tools/dynapictures\"\u003eDynaPictures on Anchor Terminal\u003c/a\u003e\n```\n\n## Share this listing\n\nFor the vendor. Sharing assets for social media, two PNGs of 1200 × 630 that say DynaPictures is listed on Anchor Terminal, with the vendor's logo and this page's address and no grade or score.\n\n- Dark: https://www.anchorterminal.com/assets/share/dynapictures-dark.png\n- Light: https://www.anchorterminal.com/assets/share/dynapictures-light.png\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": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Programmatic asset production",
        "url": "https://www.anchorterminal.com/categories/design-assets"
      },
      {
        "name": "DynaPictures",
        "url": ""
      }
    ],
    "description": "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.",
    "facts": [
      "rank #1239 of 1486",
      "API key auth",
      "0 desk reviews"
    ],
    "h1": "DynaPictures",
    "image": "https://www.anchorterminal.com/assets/og/tools-dynapictures.png",
    "path": "/tools/dynapictures",
    "published": "2026-10-01",
    "section": "tools",
    "title": "DynaPictures review (2026): pricing, alternatives and grade E",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/tools/dynapictures"
  },
  "tokens": {
    "markdown": 6100,
    "slim": 1430
  },
  "version": 1
}
