{
  "data": {
    "a": {
      "slug": "pictify",
      "name": "Pictify",
      "vendor": "Pictify.io",
      "vendorUrl": "https://pictify.io",
      "kind": "http-api",
      "category": "design-assets",
      "summary": "Pictify renders HTML, URLs and saved templates into PNG, JPG or WebP images, PDFs, GIFs and MP4 video through a REST API, official SDKs in four languages and an MCP server.",
      "url": "https://www.anchorterminal.com/tools/pictify",
      "markdownUrl": "https://www.anchorterminal.com/tools/pictify.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/pictify.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/pictify.json",
      "dns": "pictify.grade.anchorterminal.com",
      "repo": "https://github.com/pictify-io/mcp",
      "license": "MIT for the MCP server. The Pictify API is a closed service under terms last updated 18 July 2024",
      "transports": [
        "http",
        "stdio",
        "streamable-http"
      ],
      "remoteUrl": "https://api.pictify.io",
      "packages": [
        {
          "registry": "npm",
          "name": "@pictify/mcp-server"
        }
      ],
      "auth": "mixed",
      "authNotes": "API keys (`pic_live_` plus 64 hex characters since September 2026) created in the dashboard and sent as `Authorization: Bearer`. Keys can be rotated (a replacement is made, then the old key revoked) or revoked at once. No scopes. The local MCP server reads `PICTIFY_API_KEY`; a hosted MCP endpoint at mcp.pictify.io advertises OAuth with an `mcp:tools` scope, which the docs don't describe.",
      "pricing": "freemium",
      "pricingNotes": "Free $0 with 50 renders a month, 3 saved templates and no card. Basic $19 a month ($15 yearly) with 1,000 renders and $0.02 per extra render, Pro $49 ($39) with 10,000 and $0.01, Business $249 ($199) with 40,000 and $0.005. One render pool covers images, PDF pages, GIFs and video. Failed requests aren't billed.",
      "priceSummary": "Freemium",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "Subscriptions with overage billing. No x402, MPP or L402 in the OpenAPI, the docs, llms.txt or pricing.md (checked 2026-11-06). Exhausted credits return 429 or 402 with `quota_exceeded` and no payment requirements.",
        "endpoints": []
      },
      "toolCount": 25,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 55,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://docs.pictify.io",
      "llmsTxt": "https://docs.pictify.io/llms.txt",
      "openapi": "https://docs.pictify.io/openapi/v1.yaml",
      "registryName": "io.github.pictify-io/mcp",
      "capabilities": [
        "design.render",
        "design.templates",
        "pdf.generate",
        "video.generate"
      ],
      "tags": [
        "hosted",
        "openapi",
        "llms-txt",
        "mcp",
        "stdio",
        "mcp-registry",
        "api-key",
        "freemium",
        "free-tier",
        "no-card",
        "webhooks",
        "telemetry"
      ],
      "lastRelease": "2026-09-20",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 55.7,
        "grade": "C",
        "agentReady": false,
        "rank": 856,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 7,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 74,
          "maintenance": 68,
          "payments": 40,
          "reliability": 45,
          "schema": 88,
          "security": 45,
          "transparency": 52
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": -3,
        "negativeNotes": [
          "Workflows (CSV or webhook runs with per-recipient email delivery) were retired in September 2026 per the changelog (https://docs.pictify.io/resources/changelog.md), while pictify.io's llms.txt still calls the Render-to-Recipient workflow Pictify's core pattern and pricing.md (last updated 9 August 2026) still says per-recipient email delivery is included on paid workflow runs (https://pictify.io/llms.txt, https://pictify.io/pricing.md), read 6 November 2026. A retired feature still advertised, -3."
        ],
        "verdict": "A public OpenAPI 3.1 contract, per-render overage prices, a recurring no-card free tier and error codes that tell quota apart from rate limits make Pictify easy for an agent to call and budget. Its MCP server reports tool arguments and results to PostHog by default, and the privacy policy, last updated July 2024, mentions neither.",
        "bestFor": "HTML-to-image, template renders, PDFs and short video from one API, with per-render prices an agent can budget.",
        "strengths": [
          "Public OpenAPI 3.1, llms.txt and Markdown docs, with official SDKs in Node.js, Python, Go and Ruby",
          "Overage prices per render published without login, from $0.02 down to $0.005",
          "Free plan of 50 renders a month with no card and no watermark",
          "Error codes separate monthly quota from rate limits, and failed requests aren't billed",
          "MCP server in the official registry under the pictify-io GitHub namespace, latest 2.0.0"
        ],
        "weaknesses": [
          "The MCP server sends tool arguments, results and the account email to PostHog unless turned off",
          "Privacy policy and terms date from 18 July 2024 and name no company or processors",
          "Workflows were retired in September 2026 but llms.txt and pricing.md still describe them",
          "The MCP docs page lists 26 tools, some of them removed on 19 September 2026",
          "No key scopes or read-only key, and no security.txt or disclosure policy"
        ],
        "agentNotes": [
          "Set `PICTIFY_ANALYTICS_DISABLED=1` in the MCP server's env when tool inputs are confidential",
          "On a 429, read `code` first; `quota_exceeded` means wait for the monthly reset, not retry",
          "Retry a 5xx once; a failed generation bills nothing",
          "Pass only one of `html`, `url` or `template` to `pictify_create_image`",
          "Use batch render for one image per row rather than many single calls"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 55.7
          }
        ],
        "editorialScores": {
          "ergonomics": 74,
          "maintenance": 68,
          "payments": 40,
          "reliability": 45,
          "schema": 88,
          "security": 45,
          "transparency": 39
        },
        "provenanceScore": 64,
        "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": {
        "install": "npx -y @pictify/mcp-server",
        "claudeCode": "claude mcp add pictify -- npx -y @pictify/mcp-server",
        "config": {
          "mcpServers": {
            "pictify": {
              "args": [
                "-y",
                "@pictify/mcp-server"
              ],
              "command": "npx",
              "env": {
                "PICTIFY_API_KEY": "YOUR_API_KEY"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.render",
        "tool": "https://letme.dev/pictify"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Extra render on Basic",
          "unit": "image",
          "usd": 0.02,
          "note": "Basic $19 a month includes 1,000 renders; one pool for images, PDF pages, GIFs and video"
        },
        {
          "item": "Extra render on Pro",
          "unit": "image",
          "usd": 0.01,
          "note": "Pro $49 a month includes 10,000 renders"
        },
        {
          "item": "Extra render on Business",
          "unit": "image",
          "usd": 0.005,
          "note": "Business $249 a month includes 40,000 renders"
        }
      ],
      "provenance": {
        "legalEntity": "",
        "domain": "pictify.io",
        "domainRegistered": "2024-02-18",
        "endpointOnVendorDomain": true,
        "terms": "https://pictify.io/terms",
        "privacy": "https://pictify.io/privacy",
        "statusPage": "https://status.pictify.io",
        "changelog": "https://docs.pictify.io/resources/changelog",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "The terms and privacy policy, both last updated 18 July 2024, name only Pictify.io and choose United States law. No company form or address is given. The npm package's maintainer is Suyash Thakur.",
          "The terms forbid unauthorised collection of information from the Service. Public pages were read as data.",
          "pictify.io/robots.txt allows all but the dashboard, login, signup, workspace, canvas, invite and /api/ paths, with Content-Signal search=yes, ai-input=yes, ai-train=yes. docs.pictify.io allows the docs. status.pictify.io/robots.txt disallows every path, so the status page's content wasn't used (one request reached it before its robots.txt was read, and what it returned was discarded).",
          "RDAP gives pictify.io a registration date of 18 February 2024.",
          "/.well-known/security.txt returns 404."
        ],
        "score": 64
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/pictify.json",
      "live": {
        "slug": "pictify",
        "probe": {
          "target": "https://api.pictify.io",
          "method": "get",
          "lastAt": "2026-11-07T18:20:46.929814597Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 260,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 247,
          "p95ms24h": 416,
          "samples24h": 200,
          "samples30d": 200,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.pictify.io",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:48:36.108648674Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.github.pictify-io/mcp",
            "version": "2.0.0",
            "seenAt": "2026-11-07T18:16:28.95801333Z"
          },
          {
            "registry": "npm",
            "name": "@pictify/mcp-server",
            "version": "2.0.0",
            "seenAt": "2026-11-06T23:56:03.791188542Z"
          }
        ],
        "githubStars": 0,
        "npmWeekly": 55,
        "securityTxt": {
          "url": "https://pictify.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:53.674703481Z"
        },
        "llmsTxt": {
          "url": "https://docs.pictify.io/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:37.409193605Z"
        },
        "pages": [
          {
            "url": "https://docs.pictify.io/resources/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:07:29.763829977Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "8886bf07ecff"
          },
          {
            "url": "https://pictify.io/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:16:26.928025338Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "de6aaaa6113c"
          },
          {
            "url": "https://pictify.io/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:16:29.17143268Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f3dfbe385bd9"
          }
        ],
        "updatedAt": "2026-11-07T18:20:46.929814597Z"
      }
    },
    "answer": "Shotstack scores 67.3 (B) on agent readiness against Pictify's 55.7 (C), and leads in 5 of 7 scored categories. Pictify leads on agent ergonomics.",
    "b": {
      "slug": "shotstack",
      "name": "Shotstack",
      "vendor": "ShotStack Pty Ltd",
      "vendorUrl": "https://shotstack.io",
      "kind": "http-api",
      "category": "design-assets",
      "summary": "Shotstack is a cloud video editor driven by JSON. It renders video, images and audio from edits and templates with merge fields. Agents reach it through the Edit API, a hosted MCP server or a CLI with an agent skill.",
      "url": "https://www.anchorterminal.com/tools/shotstack",
      "markdownUrl": "https://www.anchorterminal.com/tools/shotstack.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/shotstack.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/shotstack.json",
      "dns": "shotstack.grade.anchorterminal.com",
      "repo": "https://github.com/shotstack/shotstack-cli",
      "license": "Proprietary service under Shotstack's Terms and Conditions. The schemas package and SDKs are MIT and the Studio SDK is under PolyForm Shield 1.0.0. The CLI was Apache-2.0 up to its last public source (0.15.2, 22 October 2026); since 25 October 2026 its source isn't published and the shotstack-cli repository holds only the agent skill",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.shotstack.io/edit/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "@shotstack/cli"
        },
        {
          "registry": "npm",
          "name": "@shotstack/schemas"
        },
        {
          "registry": "npm",
          "name": "shotstack-sdk"
        },
        {
          "registry": "pypi",
          "name": "shotstack-sdk"
        }
      ],
      "auth": "mixed",
      "authNotes": "REST calls and the CLI send an API key in the `x-api-key` header. A browser signup at app.shotstack.io gives one sandbox key and one production key, self-serve, with no scopes found in the docs. The same keys reach the Edit, Serve and Ingest APIs. The MCP server uses OAuth (authorisation code with PKCE S256, dynamic client registration, one scope, `mcp:tools`) or the API key in an `x-api-key` header for headless use.",
      "pricing": "usage",
      "pricingNotes": "10 free credits on signup, valid 30 days, with no card. Pay as you go is $10 for 50 credits, 20 cents a minute of rendered video. Monthly plans run from $39 for 250 minutes to $499 for 10,000. The `stage` sandbox renders free with a watermark, so an agent can start without a contract. AI generation is charged per model in credits (checked 2026-10-08).",
      "priceSummary": "$0.20 / credit",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "Prepaid credits and monthly plans. No x402, MPP or L402 in the docs, llms.txt, OpenAPI definition or pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 15,
      "popularity": {
        "githubStars": 0,
        "npmWeekly": 1211,
        "pypiWeekly": 326,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://shotstack.io/docs/guide/",
      "llmsTxt": "https://shotstack.io/llms.txt",
      "openapi": "https://shotstack.io/docs/api/api.edit.json",
      "capabilities": [
        "design.templates",
        "design.render",
        "video.edit",
        "video.generate",
        "image.generate",
        "speech.tts",
        "audio.music"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "mcp",
        "oauth",
        "openapi",
        "llms-txt",
        "cli",
        "agent-skill",
        "async-jobs",
        "webhooks",
        "video",
        "images",
        "sandbox",
        "status-page",
        "sla"
      ],
      "lastRelease": "2026-10-27",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.3,
        "grade": "B",
        "agentReady": false,
        "rank": 333,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 2,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 73,
          "payments": 45,
          "reliability": 95,
          "schema": 88,
          "security": 48,
          "transparency": 73
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-02"
        },
        "negative": -3,
        "negativeNotes": [
          "4 October 2026. Release 1.22.0 of the published API definition removed the `pricing` object from the `GET /models` response and replaced it with `POST /generate/quote`, in a minor release with no breaking-change mark and no notice found. We did not test whether the live response changed that day (https://github.com/shotstack/oas-api-definition/blob/main/CHANGELOG.md)"
        ],
        "verdict": "A public OpenAPI definition, Markdown docs, a hosted MCP server with OAuth and a free watermarked sandbox let an agent draft, check and render video with little setup. API keys have no scopes, webhooks are unsigned, no security contact or certification of Shotstack's own was found, and the npm Node SDK dates from July 2024.",
        "bestFor": "Teams that render video, images or audio from JSON or templates at volume and want an agent to draft edits that a person reviews in Studio.",
        "strengths": [
          "OpenAPI 3.0.1 definition at `https://shotstack.io/docs/api/api.edit.json` with 122 schemas, plus llms.txt, llms-full.txt and a Markdown twin of every guide page",
          "Hosted MCP server at `https://mcp.shotstack.io/` with 15 tools, OAuth authorisation code with PKCE S256 and dynamic client registration, or an `x-api-key` header",
          "`shotstack validate` checks an edit offline and `shotstack studio` opens a preview link, both with no API key and no credits",
          "The `stage` environment renders free with a watermark, and `POST /generate/quote` returns the credit cost of an AI generation without charging",
          "Rate limits are published per API (Edit 300 requests per 60 seconds in production), no incident in the 90 days to 2 November 2026, and a 99.9 per cent SLA"
        ],
        "weaknesses": [
          "API keys have no scopes. One production key and one sandbox key reach the Edit, Serve and Ingest APIs, and key rotation was not found in the docs",
          "Webhook callbacks are not signed, per the webhooks guide, which tells receivers to confirm a render by calling the API",
          "No security.txt, disclosure policy or certification of Shotstack's own was found. The DPA relies on AWS's SOC 2 and ISO 27001 reports",
          "The published API definition dropped the `pricing` object from `GET /models` in release 1.22.0 on 4 October 2026, a minor release with no breaking-change mark",
          "The npm `shotstack-sdk` package (0.2.9) was last published in July 2024, and since 25 October 2026 the CLI's source is no longer public"
        ],
        "agentNotes": [
          "Fetch `https://shotstack.io/docs/api/api.edit.json` and the conventions guide before writing an edit. Track order is reversed, so the first track renders on top",
          "Render in `stage` first. It is free and watermarked, but AI generation there is charged from the production credit balance",
          "Call `POST /generate/quote` before `POST /generate`, and send an `Idempotency-Key` header on generation. `POST /render` has no idempotency key, so do not resubmit blindly",
          "Do not store the `url` from the render status response. It expires after 24 hours. Use the CDN address built from `owner` and the render id",
          "On a 429, wait for the 60-second window to reset and retry with backoff. Limits are per API key, 300 a minute on the Edit API in production"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67.3
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 73,
          "payments": 45,
          "reliability": 95,
          "schema": 88,
          "security": 48,
          "transparency": 61
        },
        "provenanceScore": 85,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-02",
            "maintenance": "2026-11-02",
            "payments": "2026-11-02",
            "reliability": "2026-11-02",
            "schema": "2026-11-02",
            "security": "2026-11-02",
            "transparency": "2026-11-02"
          },
          "last": "2026-11-02",
          "lastMoved": "2026-11-02",
          "oldest": "2026-11-02",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install -g @shotstack/cli",
        "http": "curl -X POST https://api.shotstack.io/edit/stage/render -H \"Content-Type: application/json\" -H \"x-api-key: $SHOTSTACK_API_KEY\" -d @edit.json",
        "claudeCode": "claude mcp add --transport http shotstack https://mcp.shotstack.io",
        "config": {
          "mcpServers": {
            "shotstack": {
              "url": "https://mcp.shotstack.io/"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.templates",
        "tool": "https://letme.dev/shotstack"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Pay as you go credit",
          "unit": "credit",
          "usd": 0.2,
          "note": "$10 for 50 credits, one credit renders one minute of video, valid 12 months"
        },
        {
          "item": "Starter",
          "unit": "month",
          "usd": 39,
          "note": "250 minutes a month"
        },
        {
          "item": "Pro",
          "unit": "month",
          "usd": 99,
          "note": "750 minutes a month"
        },
        {
          "item": "Scale",
          "unit": "month",
          "usd": 199,
          "note": "2,000 minutes a month"
        },
        {
          "item": "Volume",
          "unit": "month",
          "usd": 499,
          "note": "10,000 minutes a month"
        }
      ],
      "provenance": {
        "legalEntity": "ShotStack Pty Ltd",
        "domain": "shotstack.io",
        "domainRegistered": "2017-06-30",
        "endpointOnVendorDomain": true,
        "terms": "https://shotstack.io/terms/",
        "privacy": "https://shotstack.io/privacy/",
        "statusPage": "https://status.shotstack.io",
        "changelog": "https://github.com/shotstack/oas-api-definition/blob/main/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-11-02",
        "notes": [
          "The terms name ShotStack Pty Ltd, ACN 632 863 024, and the privacy policy gives an address in Maroubra, New South Wales.",
          "The terms were last updated on 6 October 2026. They cover the APIs, Studio and AI generation, and include plans and an SLA as schedules.",
          "The privacy policy was last updated on 21 December 2021. A DPA and a sub-processor list, both updated 6 October 2026, are at shotstack.io/dpa/ and shotstack.io/sub-processors/.",
          "The API answers at api.shotstack.io, the MCP server at mcp.shotstack.io and hosted files at cdn.shotstack.io.",
          "shotstack.io/.well-known/security.txt returns 404 (re-read 2 November 2026).",
          "The status page runs on Kener and links an RSS feed of incidents and maintenance.",
          "The changelog is the CHANGELOG.md of the API definition repository. No changelog page was found on shotstack.io.",
          "RDAP for shotstack.io gives a registration date of 2017-06-30 and Gandi SAS as registrar."
        ],
        "score": 85
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/shotstack.json",
      "live": {
        "slug": "shotstack",
        "probe": {
          "target": "https://api.shotstack.io/edit/v1",
          "method": "get",
          "lastAt": "2026-11-07T18:20:54.288364838Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 902,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 872,
          "p95ms24h": 1000,
          "samples24h": 239,
          "samples30d": 7289,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 169,
              "ok": 169
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.shotstack.io",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:48:45.114558047Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@shotstack/cli",
            "version": "0.17.0",
            "seenAt": "2026-11-07T00:05:41.083663572Z"
          },
          {
            "registry": "npm",
            "name": "@shotstack/schemas",
            "version": "1.23.3",
            "seenAt": "2026-11-07T00:05:41.625150494Z"
          },
          {
            "registry": "npm",
            "name": "shotstack-sdk",
            "version": "0.2.9",
            "seenAt": "2026-11-07T00:05:43.32367796Z"
          },
          {
            "registry": "pypi",
            "name": "shotstack-sdk",
            "version": "0.2.8",
            "released": "2024-07-19",
            "seenAt": "2026-11-07T00:05:45.311644882Z"
          }
        ],
        "githubStars": 0,
        "npmWeekly": 370,
        "pypiWeekly": 245,
        "securityTxt": {
          "url": "https://shotstack.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:00:10.982687762Z"
        },
        "llmsTxt": {
          "url": "https://shotstack.io/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:55.150019501Z"
        },
        "domain": {
          "domain": "shotstack.io",
          "checkedAt": "2026-11-01T14:22:55.371274673Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/shotstack/oas-api-definition/main/CHANGELOG.md",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-11-07T14:23:31.082600398Z",
            "changedAt": "2026-10-27T03:55:55.627870867Z",
            "fingerprint": "0b2656bd7b4a"
          },
          {
            "url": "https://shotstack.io/privacy/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-11-07T14:19:46.779374273Z",
            "changedAt": "2026-11-04T08:32:42.350513445Z",
            "fingerprint": "e09c706eb4f5"
          },
          {
            "url": "https://shotstack.io/terms/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-11-07T14:19:49.363330236Z",
            "changedAt": "2026-11-04T08:32:46.005681016Z",
            "fingerprint": "5e9074a6f69a"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.shotstack.io",
          "checkedAt": "2026-11-07T01:48:01.653435881Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:48:01.653435881Z"
        },
        "github": {
          "repo": "shotstack/shotstack-cli",
          "checkedAt": "2026-11-02T09:25:34.758841111Z",
          "stars": 0,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-30T12:00:41Z",
          "openIssues": 0,
          "openPRs": 0,
          "issuesOpened90d": 0,
          "issuesClosed90d": 0,
          "prsMerged90d": 51
        },
        "updatedAt": "2026-11-07T18:20:54.288364838Z"
      }
    },
    "edges": [
      {
        "by": 50,
        "category": "reliability",
        "leads": "shotstack",
        "name": "Reliability",
        "reasons": {
          "a": "Hosted lines, for the REST API. The home page links a status page at status.pictify.io, but its robots.txt disallows every path, so its components and history weren't read. Half for a page that exists (10 of 20) and no readable history (5). Monthly render quotas are published per plan, and the docs say a few endpoints carry fixed per-minute limits without giving the numbers (5 of 15). Retry guidance is explicit. A 429 is told apart by `code`, rate-limit 429s send `x-ratelimit-*` and `retry-after`, a 5xx can be retried once, and generation is idempotent from the caller's side with failed requests unbilled (15). No SLA found (0). The API isn't labelled beta (10). 10 + 5 + 5 + 15 + 0 + 10 = 45.",
          "b": "Hosted lines. Public status page at status.shotstack.io with monitors, the Edit API in production among them (20). Its feed and incident pages hold no incident in the 90 days from 4 August 2026. The newest incident, number 8 (range parameters in render payloads causing failures, 21 July 2026), left the window on 20 October, /incidents/9 answers 404, and the window holds only two completed maintenance windows (11 August, rendering stayed available; 4 and 5 September, billing, with the API fully available). A readable page that posts incidents, none in the window, is a clean record (30, was 20). Rate limits per API key in a fixed 60-second window, 300 for Edit, 600 for Serve and 300 for Ingest in production (15). A 429 returns `rate_limit_error` with advice to wait for the window and retry with exponential backoff, and `POST /generate` takes an `Idempotency-Key`, but `POST /render` has none and no `Retry-After` is documented for rate limits (10). Schedule 2 of the terms is an SLA of 99.9 per cent with a 10 per cent credit, free plans excluded (10). The Edit API is `v1` and neither the MCP server nor the CLI carries a beta label (10). 20 + 30 + 15 + 10 + 10 + 10 = 95."
        },
        "scores": {
          "a": 45,
          "b": 95
        }
      },
      {
        "by": 21,
        "category": "transparency",
        "leads": "shotstack",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "The MCP server is MIT. The service is closed under terms of 18 July 2024 that name only Pictify.io (20 of 30). The privacy policy of the same date keeps data 'for as long as necessary' with no periods, names no processors and doesn't mention that the MCP server sends tool arguments, results and the account email to PostHog (6 of 30). The changelog records retirements, Workflows in September 2026 and MCP tools on 19 September, with no notice period or deprecation policy (5 of 20). MCP analytics are on by default and disclosed with an opt-out in the README only, and no subprocessors or data locations are listed (8 of 20). 20 + 6 + 5 + 8 = 39.",
          "b": "Closed service under published terms, with the schemas and SDKs under MIT. The CLI was Apache-2.0 in its last public source (0.15.2, 22 October 2026); since 25 October its source isn't published and the repository keeps only the agent skill (15). A DPA and sub-processor list updated 6 October 2026, and terms that say customer data is not used to train AI models. The privacy policy is dated 21 December 2021 and says ingested media is deleted after rendering, while the Ingest guide says sources are stored until deleted, and the DPA gives 24 hours for outputs while the hosting guide calls CDN hosting permanent by default (18). The terms promise reasonable notice before a feature is retired and 30 days before material changes to the terms, and deprecated asset types keep working, but no dated deprecation policy was found (8). Five sub-processors named with purposes and locations, AWS in Sydney and the United States, with seven days' notice of additions (20)."
        },
        "scores": {
          "a": 52,
          "b": 73
        }
      },
      {
        "by": 11,
        "category": "ergonomics",
        "leads": "pictify",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "25 MCP tools in the 2.0.0 source (15 for 11 to 30), with no toolsets or read-only subset (15). List endpoints page with `page` and `limit` (16 of 20). Error bodies carry `code` slugs such as `quota_exceeded`, `template_limit_reached` and `invalid_variable`, and the docs say which are retryable (18 of 20). Generation is safe to retry and failed calls bill nothing, but the MCP source sets no readOnlyHint or destructiveHint, and the delete tools for templates and video templates run without a confirmation step (10 of 20). Official SDKs for Node.js, Python, Go and Ruby, sensible defaults such as 1200 x 630 PNG (15). 15 + 16 + 18 + 10 + 15 = 74.",
          "b": "15 MCP tools by the vendor's list, with the authoring guide loaded on demand through `get_shotstack_guide` and skill references read only when relevant (18). No pagination, limit or filter on the template or source lists in the definition. The CLI prints JSON with `--output json` (6). Errors carry `status`, `title` and `detail`, confirmed on a 401, generation errors carry a `code`, the CLI validates offline and exits 0, 1 or 2 for success, permanent and retryable failures (17). `Idempotency-Key` and a result cache on generation and a free quote, but no idempotency on renders, and MCP annotations were not readable (12). Smart clip lengths and a default `v1` environment keep requests short. Five official SDK repositories exist, but the npm and PyPI packages date from July 2024 (10)."
        },
        "scores": {
          "a": 74,
          "b": 63
        }
      },
      {
        "by": 5,
        "category": "payments",
        "leads": "shotstack",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). Overage prices per render published without login, $0.02 on Basic, $0.01 on Pro and $0.005 on Business, with plan prices (20). Free plan of 50 renders a month, marked no card and no watermark (20). A person signs up and creates the key in the dashboard (0). 0 + 20 + 20 + 0 = 40.",
          "b": "No x402, MPP or L402 (0). Public per-minute prices, 20 cents on pay as you go down to 5 cents on Volume, with AI generation priced per model through a quote endpoint and four examples on the pricing page (20). 10 credits for 30 days with no card, and a free watermarked sandbox (20). Checking an edit and opening a Studio preview need no key, but any render needs a key from a browser signup (5)."
        },
        "scores": {
          "a": 40,
          "b": 45
        }
      },
      {
        "by": 5,
        "category": "maintenance",
        "leads": "shotstack",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "@pictify/mcp-server 2.0.0 published on 20 September 2026, 47 days before this check, with the changelog's newest entry dated September 2026 (20). Since 8 August, MCP versions 1.5.0 (8 August), 1.5.1 (11 August) and 2.0.0 (20 September), and changelog entries for August and September (20). GitHub issues weren't read, and the repository has one committer (5 of 25, unchecked). io.github.pictify-io/mcp is in the official MCP registry under the GitHub-verified namespace at 2.0.0, and official SDKs exist in four languages (15). CI builds and runs tests on push and pull requests (8 of 10). 20 + 20 + 5 + 15 + 8 = 68.",
          "b": "API definition 1.23.3 (@shotstack/schemas) tagged on 27 October 2026, six days before the check, after 1.23.0 on 15 October added a source file on generation assets (30). 21 definition tags and 13 CLI tags (0.8.x to 0.15.2, the last on 22 October) since 4 August 2026, and the skill repository synced from CLI 0.16.0 to 0.17.0 between 25 and 30 October (20). Dated changelog for the definition in its repository, in-app support on every plan and a GitHub issue template for the CLI. Issue threads were not read (8). `@shotstack/cli` and `@shotstack/schemas` are current, while npm `shotstack-sdk` 0.2.9 dates from July 2024 per the 8 October check; the PyPI release date came from a path pypi.org's robots.txt disallows and is struck, and pypi.org didn't resolve on 2 November. The MCP registry entry was not checked (7). The definition repository runs build, smoke and example tests on pull requests. Since 25 October the CLI repository holds only the agent skill and says the CLI's source isn't published there, so its release tests can no longer be read (8). 30 + 20 + 8 + 7 + 8 = 73."
        },
        "scores": {
          "a": 68,
          "b": 73
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Pictify.io",
        "b": "ShotStack Pty Ltd",
        "name": "Vendor"
      },
      {
        "a": "https://api.pictify.io",
        "b": "https://api.shotstack.io/edit/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, stdio, Streamable HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "$0.005 per image",
        "b": "not published",
        "name": "Price for design rendering"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT for the MCP server. The Pictify API is a closed service under terms last updated 18 July 2024",
        "b": "Proprietary service under Shotstack's Terms and Conditions. The schemas package and SDKs are MIT and the Studio SDK is under PolyForm Shield 1.0.0. The CLI was Apache-2.0 up to its last public source (0.15.2, 22 October 2026); since 25 October 2026 its source isn't published and the shotstack-cli repository holds only the agent skill",
        "name": "Licence"
      },
      {
        "a": "25",
        "b": "15",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "io.github.pictify-io/mcp",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-09-20",
        "b": "2026-10-27",
        "name": "Last release"
      },
      {
        "a": "2024-07-18",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2024-07-18",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "55 npm/wk",
        "b": "0 stars, 1.2k npm/wk, 326 PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3.5/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Shotstack scores 67.3 (B) on agent readiness against Pictify's 55.7 (C), and leads in 5 of 7 scored categories. Pictify leads on agent ergonomics.",
        "question": "Which is better for AI agents, Pictify or Shotstack?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Pictify and Shotstack need an API key?"
      },
      {
        "answer": "Yes. Pictify has a hosted endpoint at https://api.pictify.io and Shotstack at https://api.shotstack.io/edit/v1.",
        "question": "Can an agent call Pictify and Shotstack without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 74 against 63"
        ],
        "also": [
          "Runs on your own machine",
          "Free to start without a card"
        ],
        "goodFor": "HTML-to-image, template renders, PDFs and short video from one API, with per-render prices an agent can budget.",
        "slug": "pictify",
        "watchFor": "The MCP server sends tool arguments, results and the account email to PostHog unless turned off"
      },
      {
        "aheadOn": [
          "Reliability, 95 against 45",
          "Payments \u0026 pricing, 45 against 40",
          "Maintenance \u0026 community, 73 against 68",
          "Transparency \u0026 trust, 73 against 52"
        ],
        "also": null,
        "goodFor": "Teams that render video, images or audio from JSON or templates at volume and want an agent to draft edits that a person reviews in Studio.",
        "slug": "shotstack",
        "watchFor": "API keys have no scopes. One production key and one sandbox key reach the Edit, Serve and Ingest APIs, and key rotation was not found in the docs"
      }
    ],
    "history": {
      "pictify": null,
      "shotstack": [
        {
          "causes": [
            "time"
          ],
          "date": "2026-11-02",
          "delta": 2,
          "from": 65.3,
          "fromGrade": "B",
          "to": 67.3,
          "toGrade": "B"
        }
      ]
    },
    "job": {
      "capability": "design.render",
      "name": "Design rendering"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-shotstack.json",
        "title": "Adobe Photoshop API vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apitemplate-io-vs-pictify.json",
        "title": "APITemplate.io vs Pictify",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-pictify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apitemplate-io-vs-shotstack.json",
        "title": "APITemplate.io vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bannerbear-vs-pictify.json",
        "title": "Bannerbear API + MCP vs Pictify",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-pictify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bannerbear-vs-shotstack.json",
        "title": "Bannerbear API + MCP vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/canva-vs-pictify.json",
        "title": "Canva REST APIs + MCP vs Pictify",
        "url": "https://www.anchorterminal.com/compare/canva-vs-pictify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/canva-vs-shotstack.json",
        "title": "Canva REST APIs + MCP vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/canva-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/contentdrips-vs-pictify.json",
        "title": "Contentdrips API and MCP vs Pictify",
        "url": "https://www.anchorterminal.com/compare/contentdrips-vs-pictify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/contentdrips-vs-shotstack.json",
        "title": "Contentdrips API and MCP vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/contentdrips-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/creatomate-vs-pictify.json",
        "title": "Creatomate vs Pictify",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-pictify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/creatomate-vs-shotstack.json",
        "title": "Creatomate vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-shotstack"
      },
      {
        "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-shotstack.json",
        "title": "DynaPictures vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/dynapictures-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/layerre-vs-pictify.json",
        "title": "Layerre vs Pictify",
        "url": "https://www.anchorterminal.com/compare/layerre-vs-pictify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/layerre-vs-shotstack.json",
        "title": "Layerre vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/layerre-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photoroom-vs-pictify.json",
        "title": "Photoroom API vs Pictify",
        "url": "https://www.anchorterminal.com/compare/photoroom-vs-pictify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photoroom-vs-shotstack.json",
        "title": "Photoroom API vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/photoroom-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pixelixe-vs-shotstack.json",
        "title": "Pixelixe vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/pixelixe-vs-shotstack"
      },
      {
        "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/postnitro-vs-shotstack.json",
        "title": "PostNitro vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/postnitro-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/robolly-vs-shotstack.json",
        "title": "Robolly vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/robolly-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shotstack-vs-templated.json",
        "title": "Shotstack vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/shotstack-vs-templated"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-pictify.json",
        "title": "Abyssale vs Pictify",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-pictify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/abyssale-vs-shotstack.json",
        "title": "Abyssale vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-pictify.json",
        "title": "Adobe Photoshop API vs Pictify",
        "url": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-pictify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/osmo-cli-vs-pictify.json",
        "title": "Osmo CLI vs Pictify",
        "url": "https://www.anchorterminal.com/compare/osmo-cli-vs-pictify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/osmo-cli-vs-shotstack.json",
        "title": "Osmo CLI vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/osmo-cli-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pictify-vs-pixelixe.json",
        "title": "Pictify vs Pixelixe",
        "url": "https://www.anchorterminal.com/compare/pictify-vs-pixelixe"
      },
      {
        "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"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pictify-vs-postnitro.json",
        "title": "Pictify vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/pictify-vs-postnitro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pictify-vs-robolly.json",
        "title": "Pictify vs Robolly",
        "url": "https://www.anchorterminal.com/compare/pictify-vs-robolly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pictify-vs-templated.json",
        "title": "Pictify vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/pictify-vs-templated"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 50,
        "edge": "shotstack",
        "key": "reliability",
        "name": "Reliability",
        "pictify": 45,
        "shotstack": 95,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 0,
        "edge": "",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "pictify": 88,
        "shotstack": 88,
        "weight": 13
      },
      {
        "by": 11,
        "edge": "pictify",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "pictify": 74,
        "shotstack": 63,
        "weight": 13
      },
      {
        "by": 3,
        "edge": "shotstack",
        "key": "security",
        "name": "Security \u0026 auth",
        "pictify": 45,
        "shotstack": 48,
        "weight": 14
      },
      {
        "by": 5,
        "edge": "shotstack",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "pictify": 40,
        "shotstack": 45,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 5,
        "edge": "shotstack",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "pictify": 68,
        "shotstack": 73,
        "weight": 7
      },
      {
        "by": 21,
        "edge": "shotstack",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "pictify": 52,
        "shotstack": 73,
        "weight": 7
      }
    ],
    "summary": "Shotstack scores 67.3 (B) on agent readiness against Pictify's 55.7 (C), and leads in 5 of 7 scored categories. Pictify leads on agent ergonomics. Both do design rendering.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "pictify": "A public OpenAPI 3.1 contract, per-render overage prices, a recurring no-card free tier and error codes that tell quota apart from rate limits make Pictify easy for an agent to call and budget. Its MCP server reports tool arguments and results to PostHog by default, and the privacy policy, last updated July 2024, mentions neither.",
      "shotstack": "A public OpenAPI definition, Markdown docs, a hosted MCP server with OAuth and a free watermarked sandbox let an agent draft, check and render video with little setup. API keys have no scopes, webhooks are unsigned, no security contact or certification of Shotstack's own was found, and the npm Node SDK dates from July 2024."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/pictify-vs-shotstack",
    "json": "https://www.anchorterminal.com/compare/pictify-vs-shotstack.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/pictify-vs-shotstack.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/pictify-vs-shotstack.min.md"
  },
  "markdown": "Shotstack scores 67.3 (B) on agent readiness against Pictify's 55.7 (C), and leads in 5 of 7 scored categories. Pictify leads on agent ergonomics. Both do design rendering.\n\n- Pictify: grade C, 55.7/100, rank #856 of 1486. Markdown https://www.anchorterminal.com/tools/pictify.md · JSON https://www.anchorterminal.com/api/v1/tools/pictify.json\n- Shotstack: grade B, 67.3/100, rank #333 of 1486. Markdown https://www.anchorterminal.com/tools/shotstack.md · JSON https://www.anchorterminal.com/api/v1/tools/shotstack.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### Pictify (C)\n\nGood for: HTML-to-image, template renders, PDFs and short video from one API, with per-render prices an agent can budget.\n\nAhead on:\n- Agent ergonomics, 74 against 63\n\nAlso in its favour:\n- Runs on your own machine\n- Free to start without a card\n\nWatch for: The MCP server sends tool arguments, results and the account email to PostHog unless turned off\n\n### Shotstack (B)\n\nGood for: Teams that render video, images or audio from JSON or templates at volume and want an agent to draft edits that a person reviews in Studio.\n\nAhead on:\n- Reliability, 95 against 45\n- Payments \u0026 pricing, 45 against 40\n- Maintenance \u0026 community, 73 against 68\n- Transparency \u0026 trust, 73 against 52\n\nWatch for: API keys have no scopes. One production key and one sandbox key reach the Edit, Serve and Ingest APIs, and key rotation was not found in the docs\n\n\n## Why the edge\n\n### Reliability: Shotstack +50\n\n- Pictify (45): Hosted lines, for the REST API. The home page links a status page at status.pictify.io, but its robots.txt disallows every path, so its components and history weren't read. Half for a page that exists (10 of 20) and no readable history (5). Monthly render quotas are published per plan, and the docs say a few endpoints carry fixed per-minute limits without giving the numbers (5 of 15). Retry guidance is explicit. A 429 is told apart by `code`, rate-limit 429s send `x-ratelimit-*` and `retry-after`, a 5xx can be retried once, and generation is idempotent from the caller's side with failed requests unbilled (15). No SLA found (0). The API isn't labelled beta (10). 10 + 5 + 5 + 15 + 0 + 10 = 45.\n- Shotstack (95): Hosted lines. Public status page at status.shotstack.io with monitors, the Edit API in production among them (20). Its feed and incident pages hold no incident in the 90 days from 4 August 2026. The newest incident, number 8 (range parameters in render payloads causing failures, 21 July 2026), left the window on 20 October, /incidents/9 answers 404, and the window holds only two completed maintenance windows (11 August, rendering stayed available; 4 and 5 September, billing, with the API fully available). A readable page that posts incidents, none in the window, is a clean record (30, was 20). Rate limits per API key in a fixed 60-second window, 300 for Edit, 600 for Serve and 300 for Ingest in production (15). A 429 returns `rate_limit_error` with advice to wait for the window and retry with exponential backoff, and `POST /generate` takes an `Idempotency-Key`, but `POST /render` has none and no `Retry-After` is documented for rate limits (10). Schedule 2 of the terms is an SLA of 99.9 per cent with a 10 per cent credit, free plans excluded (10). The Edit API is `v1` and neither the MCP server nor the CLI carries a beta label (10). 20 + 30 + 15 + 10 + 10 + 10 = 95.\n\n### Transparency \u0026 trust: Shotstack +21\n\n- Pictify (52): The MCP server is MIT. The service is closed under terms of 18 July 2024 that name only Pictify.io (20 of 30). The privacy policy of the same date keeps data 'for as long as necessary' with no periods, names no processors and doesn't mention that the MCP server sends tool arguments, results and the account email to PostHog (6 of 30). The changelog records retirements, Workflows in September 2026 and MCP tools on 19 September, with no notice period or deprecation policy (5 of 20). MCP analytics are on by default and disclosed with an opt-out in the README only, and no subprocessors or data locations are listed (8 of 20). 20 + 6 + 5 + 8 = 39.\n- Shotstack (73): Closed service under published terms, with the schemas and SDKs under MIT. The CLI was Apache-2.0 in its last public source (0.15.2, 22 October 2026); since 25 October its source isn't published and the repository keeps only the agent skill (15). A DPA and sub-processor list updated 6 October 2026, and terms that say customer data is not used to train AI models. The privacy policy is dated 21 December 2021 and says ingested media is deleted after rendering, while the Ingest guide says sources are stored until deleted, and the DPA gives 24 hours for outputs while the hosting guide calls CDN hosting permanent by default (18). The terms promise reasonable notice before a feature is retired and 30 days before material changes to the terms, and deprecated asset types keep working, but no dated deprecation policy was found (8). Five sub-processors named with purposes and locations, AWS in Sydney and the United States, with seven days' notice of additions (20).\n\n### Agent ergonomics: Pictify +11\n\n- Pictify (74): 25 MCP tools in the 2.0.0 source (15 for 11 to 30), with no toolsets or read-only subset (15). List endpoints page with `page` and `limit` (16 of 20). Error bodies carry `code` slugs such as `quota_exceeded`, `template_limit_reached` and `invalid_variable`, and the docs say which are retryable (18 of 20). Generation is safe to retry and failed calls bill nothing, but the MCP source sets no readOnlyHint or destructiveHint, and the delete tools for templates and video templates run without a confirmation step (10 of 20). Official SDKs for Node.js, Python, Go and Ruby, sensible defaults such as 1200 x 630 PNG (15). 15 + 16 + 18 + 10 + 15 = 74.\n- Shotstack (63): 15 MCP tools by the vendor's list, with the authoring guide loaded on demand through `get_shotstack_guide` and skill references read only when relevant (18). No pagination, limit or filter on the template or source lists in the definition. The CLI prints JSON with `--output json` (6). Errors carry `status`, `title` and `detail`, confirmed on a 401, generation errors carry a `code`, the CLI validates offline and exits 0, 1 or 2 for success, permanent and retryable failures (17). `Idempotency-Key` and a result cache on generation and a free quote, but no idempotency on renders, and MCP annotations were not readable (12). Smart clip lengths and a default `v1` environment keep requests short. Five official SDK repositories exist, but the npm and PyPI packages date from July 2024 (10).\n\n### Payments \u0026 pricing: Shotstack +5\n\n- Pictify (40): No x402, MPP or L402 (0). Overage prices per render published without login, $0.02 on Basic, $0.01 on Pro and $0.005 on Business, with plan prices (20). Free plan of 50 renders a month, marked no card and no watermark (20). A person signs up and creates the key in the dashboard (0). 0 + 20 + 20 + 0 = 40.\n- Shotstack (45): No x402, MPP or L402 (0). Public per-minute prices, 20 cents on pay as you go down to 5 cents on Volume, with AI generation priced per model through a quote endpoint and four examples on the pricing page (20). 10 credits for 30 days with no card, and a free watermarked sandbox (20). Checking an edit and opening a Studio preview need no key, but any render needs a key from a browser signup (5).\n\n### Maintenance \u0026 community: Shotstack +5\n\n- Pictify (68): @pictify/mcp-server 2.0.0 published on 20 September 2026, 47 days before this check, with the changelog's newest entry dated September 2026 (20). Since 8 August, MCP versions 1.5.0 (8 August), 1.5.1 (11 August) and 2.0.0 (20 September), and changelog entries for August and September (20). GitHub issues weren't read, and the repository has one committer (5 of 25, unchecked). io.github.pictify-io/mcp is in the official MCP registry under the GitHub-verified namespace at 2.0.0, and official SDKs exist in four languages (15). CI builds and runs tests on push and pull requests (8 of 10). 20 + 20 + 5 + 15 + 8 = 68.\n- Shotstack (73): API definition 1.23.3 (@shotstack/schemas) tagged on 27 October 2026, six days before the check, after 1.23.0 on 15 October added a source file on generation assets (30). 21 definition tags and 13 CLI tags (0.8.x to 0.15.2, the last on 22 October) since 4 August 2026, and the skill repository synced from CLI 0.16.0 to 0.17.0 between 25 and 30 October (20). Dated changelog for the definition in its repository, in-app support on every plan and a GitHub issue template for the CLI. Issue threads were not read (8). `@shotstack/cli` and `@shotstack/schemas` are current, while npm `shotstack-sdk` 0.2.9 dates from July 2024 per the 8 October check; the PyPI release date came from a path pypi.org's robots.txt disallows and is struck, and pypi.org didn't resolve on 2 November. The MCP registry entry was not checked (7). The definition repository runs build, smoke and example tests on pull requests. Since 25 October the CLI repository holds only the agent skill and says the CLI's source isn't published there, so its release tests can no longer be read (8). 30 + 20 + 8 + 7 + 8 = 73.\n\n## Score by category\n\n| Category | Weight | Pictify | Shotstack | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 45 | 95 | Shotstack +50 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 88 | 88 | even |\n| Agent ergonomics | 13% (16.2 this run) | 74 | 63 | Pictify +11 |\n| Security \u0026 auth | 14% (17.5 this run) | 45 | 48 | Shotstack +3 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 45 | Shotstack +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 68 | 73 | Shotstack +5 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 52 | 73 | Shotstack +21 |\n| Negative events | ≤15 | -3 | -3 | |\n| **Total** | | **55.7 · C** | **67.3 · B** | |\n\n## Facts side by side\n\n| Fact | Pictify | Shotstack |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Pictify.io | ShotStack Pty Ltd |\n| Hosted endpoint | `https://api.pictify.io` | `https://api.shotstack.io/edit/v1` |\n| Transports | HTTP, stdio, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Pay per use |\n| Price for design rendering | $0.005 per image | not published |\n| x402 | no | no |\n| Licence | MIT for the MCP server. The Pictify API is a closed service under terms last updated 18 July 2024 | Proprietary service under Shotstack's Terms and Conditions. The schemas package and SDKs are MIT and the Studio SDK is under PolyForm Shield 1.0.0. The CLI was Apache-2.0 up to its last public source (0.15.2, 22 October 2026); since 25 October 2026 its source isn't published and the shotstack-cli repository holds only the agent skill |\n| Tools exposed | 25 | 15 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | `io.github.pictify-io/mcp` | not listed |\n| Last release | 2026-09-20 | 2026-10-27 |\n| Terms last updated | 2024-07-18 | no date given |\n| Privacy policy last updated | 2024-07-18 | no date given |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 55 npm/wk | 0 stars, 1.2k npm/wk, 326 PyPI/wk |\n| Agent reviews | none | 3.5/5 (4) |\n\n## How the scores have moved\n\n### Pictify\n\nNo score change since it was listed.\n\n### Shotstack\n\n- +2.0 on 2 November 2026: time\n\n## Verdicts\n\n**Pictify.** A public OpenAPI 3.1 contract, per-render overage prices, a recurring no-card free tier and error codes that tell quota apart from rate limits make Pictify easy for an agent to call and budget. Its MCP server reports tool arguments and results to PostHog by default, and the privacy policy, last updated July 2024, mentions neither.\n\n**Shotstack.** A public OpenAPI definition, Markdown docs, a hosted MCP server with OAuth and a free watermarked sandbox let an agent draft, check and render video with little setup. API keys have no scopes, webhooks are unsigned, no security contact or certification of Shotstack's own was found, and the npm Node SDK dates from July 2024.\n\n## Before you call either\n\n### Pictify\n\n1. Set `PICTIFY_ANALYTICS_DISABLED=1` in the MCP server's env when tool inputs are confidential\n2. On a 429, read `code` first; `quota_exceeded` means wait for the monthly reset, not retry\n3. Retry a 5xx once; a failed generation bills nothing\n4. Pass only one of `html`, `url` or `template` to `pictify_create_image`\n5. Use batch render for one image per row rather than many single calls\n\n### Shotstack\n\n1. Fetch `https://shotstack.io/docs/api/api.edit.json` and the conventions guide before writing an edit. Track order is reversed, so the first track renders on top\n2. Render in `stage` first. It is free and watermarked, but AI generation there is charged from the production credit balance\n3. Call `POST /generate/quote` before `POST /generate`, and send an `Idempotency-Key` header on generation. `POST /render` has no idempotency key, so do not resubmit blindly\n4. Do not store the `url` from the render status response. It expires after 24 hours. Use the CDN address built from `owner` and the render id\n5. On a 429, wait for the 60-second window to reset and retry with backoff. Limits are per API key, 300 a minute on the Edit API in production\n\n## Questions\n\n### Which is better for AI agents, Pictify or Shotstack?\n\nShotstack scores 67.3 (B) on agent readiness against Pictify's 55.7 (C), and leads in 5 of 7 scored categories. Pictify leads on agent ergonomics.\n\n### Do Pictify and Shotstack need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Pictify and Shotstack without installing anything?\n\nYes. Pictify has a hosted endpoint at https://api.pictify.io and Shotstack at https://api.shotstack.io/edit/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/pictify-vs-shotstack.json, and with the fewest tokens: https://www.anchorterminal.com/compare/pictify-vs-shotstack.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"pictify\", \"b\": \"shotstack\"}`. From a terminal: `anchor compare pictify shotstack`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/pictify.json and https://www.anchorterminal.com/api/v1/tools/shotstack.json\n\n## Other comparisons with Pictify or Shotstack\n\n- [Adobe Photoshop API vs Shotstack](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-shotstack.md)\n- [APITemplate.io vs Pictify](https://www.anchorterminal.com/compare/apitemplate-io-vs-pictify.md)\n- [APITemplate.io vs Shotstack](https://www.anchorterminal.com/compare/apitemplate-io-vs-shotstack.md)\n- [Bannerbear API + MCP vs Pictify](https://www.anchorterminal.com/compare/bannerbear-vs-pictify.md)\n- [Bannerbear API + MCP vs Shotstack](https://www.anchorterminal.com/compare/bannerbear-vs-shotstack.md)\n- [Canva REST APIs + MCP vs Pictify](https://www.anchorterminal.com/compare/canva-vs-pictify.md)\n- [Canva REST APIs + MCP vs Shotstack](https://www.anchorterminal.com/compare/canva-vs-shotstack.md)\n- [Contentdrips API and MCP vs Pictify](https://www.anchorterminal.com/compare/contentdrips-vs-pictify.md)\n- [Contentdrips API and MCP vs Shotstack](https://www.anchorterminal.com/compare/contentdrips-vs-shotstack.md)\n- [Creatomate vs Pictify](https://www.anchorterminal.com/compare/creatomate-vs-pictify.md)\n- [Creatomate vs Shotstack](https://www.anchorterminal.com/compare/creatomate-vs-shotstack.md)\n- [DynaPictures vs Pictify](https://www.anchorterminal.com/compare/dynapictures-vs-pictify.md)\n- [DynaPictures vs Shotstack](https://www.anchorterminal.com/compare/dynapictures-vs-shotstack.md)\n- [Layerre vs Pictify](https://www.anchorterminal.com/compare/layerre-vs-pictify.md)\n- [Layerre vs Shotstack](https://www.anchorterminal.com/compare/layerre-vs-shotstack.md)\n- [Photoroom API vs Pictify](https://www.anchorterminal.com/compare/photoroom-vs-pictify.md)\n- [Photoroom API vs Shotstack](https://www.anchorterminal.com/compare/photoroom-vs-shotstack.md)\n- [Pixelixe vs Shotstack](https://www.anchorterminal.com/compare/pixelixe-vs-shotstack.md)\n- [Placid API + MCP vs Shotstack](https://www.anchorterminal.com/compare/placid-vs-shotstack.md)\n- [PostNitro vs Shotstack](https://www.anchorterminal.com/compare/postnitro-vs-shotstack.md)\n- [Robolly vs Shotstack](https://www.anchorterminal.com/compare/robolly-vs-shotstack.md)\n- [Shotstack vs Templated API + MCP](https://www.anchorterminal.com/compare/shotstack-vs-templated.md)\n- [Abyssale vs Pictify](https://www.anchorterminal.com/compare/abyssale-vs-pictify.md)\n- [Abyssale vs Shotstack](https://www.anchorterminal.com/compare/abyssale-vs-shotstack.md)\n- [Adobe Photoshop API vs Pictify](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-pictify.md)\n- [Osmo CLI vs Pictify](https://www.anchorterminal.com/compare/osmo-cli-vs-pictify.md)\n- [Osmo CLI vs Shotstack](https://www.anchorterminal.com/compare/osmo-cli-vs-shotstack.md)\n- [Pictify vs Pixelixe](https://www.anchorterminal.com/compare/pictify-vs-pixelixe.md)\n- [Pictify vs Placid API + MCP](https://www.anchorterminal.com/compare/pictify-vs-placid.md)\n- [Pictify vs PostNitro](https://www.anchorterminal.com/compare/pictify-vs-postnitro.md)\n- [Pictify vs Robolly](https://www.anchorterminal.com/compare/pictify-vs-robolly.md)\n- [Pictify vs Templated API + MCP](https://www.anchorterminal.com/compare/pictify-vs-templated.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Pictify vs Shotstack",
        "url": ""
      }
    ],
    "description": "Shotstack scores 67.3 (B) to Pictify's 55.7 (C) for design rendering. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Pictify C 55.7",
      "Shotstack B 67.3",
      "scores"
    ],
    "h1": "Pictify vs Shotstack",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/pictify-vs-shotstack",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Pictify vs Shotstack for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/pictify-vs-shotstack"
  },
  "tokens": {
    "markdown": 4700,
    "slim": 2630
  },
  "version": 1
}
