{
  "data": {
    "a": {
      "slug": "robolly",
      "name": "Robolly",
      "vendor": "Avantis Innovations LLC (Robolly)",
      "vendorUrl": "https://robolly.com",
      "kind": "http-api",
      "category": "design-assets",
      "summary": "Robolly renders templates designed in its visual editor into JPG, PNG, WebP, single and multi-page PDF, MP4 and WebM files, through an on-demand REST API, signed render links, no-code integrations and a remote MCP server.",
      "url": "https://www.anchorterminal.com/tools/robolly",
      "markdownUrl": "https://www.anchorterminal.com/tools/robolly.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/robolly.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/robolly.json",
      "dns": "robolly.grade.anchorterminal.com",
      "license": "Closed service under the Robolly terms of use (effective 8 April 2026)",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.robolly.com/v1",
      "packages": [],
      "auth": "mixed",
      "authNotes": "API key from Account settings, sent as `Authorization: Bearer`; render links can instead carry a signature. The remote MCP server at api.robolly.com/mcp uses OAuth with one `robolly:mcp` scope, where the user picks the organisation it may reach, and connections are listed and revoked under Account settings \u003e Connected AI Tools. The API key works as a fallback bearer token. No key scopes documented.",
      "pricing": "paid",
      "pricingNotes": "Individual $39 a month (250 or 1,000 render credits), Business $129 a month (10,000 to 500,000 credits by tier), Enterprise custom above 1,000,000. 7-day trial with no card. 1 credit for a JPG or WebP under 2,000 px, 3 for PNG, more for larger sizes, PDFs and video. Identical re-renders within 45 days are free.",
      "priceSummary": "$39 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "Monthly plans with render credits. No x402, MPP or L402 in the API reference, the MCP page, llms.txt or pricing (checked 2026-11-06). Exhausted credits return the error code `render-limit-exhausted`.",
        "endpoints": []
      },
      "toolCount": 9,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://robolly.com/docs/api-reference/",
      "llmsTxt": "https://robolly.com/llms.txt",
      "capabilities": [
        "design.templates",
        "design.render",
        "pdf.generate",
        "video.generate"
      ],
      "tags": [
        "hosted",
        "mcp",
        "remote-mcp",
        "oauth",
        "api-key",
        "llms-txt",
        "trial",
        "no-card",
        "status-page"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 48.4,
        "grade": "D",
        "agentReady": false,
        "rank": 1115,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 11,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 75,
          "maintenance": 5,
          "payments": 35,
          "reliability": 48,
          "schema": 57,
          "security": 47,
          "transparency": 49
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "Robolly's nine MCP tools, synchronous renders, typed error codes and free cached re-renders keep template rendering cheap and predictable for an agent, and OAuth connections can be revoked per client. There is no OpenAPI file, changelog or dated release, and API access starts at $39 a month after a 7-day trial.",
        "bestFor": "Template-driven images, PDFs and short videos for marketers and developers who want a hosted editor and simple synchronous calls.",
        "strengths": [
          "Nine compact MCP tools, including one that lists each template's accepted keys and constraints",
          "Error responses carry `errorCode` slugs, among them `rate-limit` and `render-limit-exhausted`",
          "Identical re-renders within 45 days are served free from cache",
          "MCP OAuth limited to one organisation, with connections revoked in Account settings",
          "Published rate limit of 3 renders a second and a credit table by format and size"
        ],
        "weaknesses": [
          "No OpenAPI or other machine-readable contract found",
          "No changelog or dated release found, and the MCP server isn't in the official registry",
          "API access needs a paid plan from $39 a month after a 7-day trial",
          "The UptimeRobot status page draws its data from a path its robots.txt closes to us",
          "The privacy policy names no hosting or other processors"
        ],
        "agentNotes": [
          "Call `get_template_modifications` before `render` to learn the keys a template accepts",
          "Send renders one at a time; the API refuses more than 3 a second with `rate-limit`",
          "Repeat an identical render freely; it is cached for 45 days and costs nothing",
          "Poll `get_render` after `render_video`, since video renders are queued",
          "Stop on `render-limit-exhausted` and tell the user the monthly credits are spent"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 48.4
          }
        ],
        "editorialScores": {
          "ergonomics": 75,
          "maintenance": 5,
          "payments": 35,
          "reliability": 48,
          "schema": 57,
          "security": 47,
          "transparency": 27
        },
        "provenanceScore": 71,
        "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": {
        "claudeCode": "claude mcp add --transport http robolly --scope user https://api.robolly.com/mcp",
        "config": {
          "mcpServers": {
            "robolly": {
              "type": "http",
              "url": "https://api.robolly.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.templates",
        "tool": "https://letme.dev/robolly"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Individual plan",
          "unit": "month",
          "usd": 39,
          "note": "From 250 render credits a month; more credits cost more"
        },
        {
          "item": "Business plan",
          "unit": "month",
          "usd": 129,
          "note": "From 10,000 render credits a month"
        }
      ],
      "provenance": {
        "legalEntity": "Avantis Innovations LLC",
        "domain": "robolly.com",
        "domainRegistered": "2021-01-30",
        "endpointOnVendorDomain": true,
        "terms": "https://robolly.com/terms/",
        "privacy": "https://robolly.com/privacy/",
        "statusPage": "https://stats.uptimerobot.com/gpPQWiyqL",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "The terms (effective 8 April 2026) name Avantis Innovations LLC, Sheridan, Wyoming, under Wyoming law, and say Robolly is made by the team behind Sidemail.io and EmailSupportAI. The privacy policy has the same effective date.",
          "The terms contain no clause on automated access to the website that was found.",
          "robolly.com/robots.txt disallows /cdn-cgi/ only. api.robolly.com/robots.txt carries content-signal comments only. stats.uptimerobot.com/robots.txt disallows /api/, which the status page loads its data from, so no figures were read.",
          "RDAP gives robolly.com a registration date of 30 January 2021.",
          "/.well-known/security.txt answers 200 with the site's HTML shell, not a security.txt file. No changelog found."
        ],
        "score": 71
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/robolly.json",
      "live": {
        "slug": "robolly",
        "probe": {
          "target": "https://api.robolly.com/v1",
          "method": "get",
          "lastAt": "2026-11-07T18:20:51.274068339Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 177,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 111,
          "p95ms24h": 182,
          "samples24h": 200,
          "samples30d": 200,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://stats.uptimerobot.com/gpPQWiyqL",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:48:41.781150953Z"
        },
        "securityTxt": {
          "url": "https://robolly.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T15:59:53.763302813Z"
        },
        "llmsTxt": {
          "url": "https://robolly.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:50.184463404Z"
        },
        "pages": [
          {
            "url": "https://robolly.com/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:18:36.278744484Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "8fd0121424f4"
          },
          {
            "url": "https://robolly.com/terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:18:38.520828166Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9c9ba532e790"
          }
        ],
        "mcpTools": {
          "url": "https://api.robolly.com/mcp",
          "checkedAt": "2026-11-07T01:47:28.870586301Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:47:28.870586301Z"
        },
        "updatedAt": "2026-11-07T18:20:51.274068339Z"
      }
    },
    "answer": "Shotstack scores 67.3 (B) on agent readiness against Robolly's 48.4 (D), and leads in 6 of 7 scored categories. Robolly 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": 68,
        "category": "maintenance",
        "leads": "shotstack",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "No changelog, release notes or dated API change was found. The sitemap marks every docs page as modified on 4 November 2026, which reads as a site rebuild rather than a change, so it isn't counted (0). No dated changes since 8 August (0). Support by email, with chat on higher plans; not tested (5 of 15). Not in the official MCP registry and no SDKs (0). No public package or repository (0). 0 + 0 + 5 + 0 + 0 = 5.",
          "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": 5,
          "b": 73
        }
      },
      {
        "by": 47,
        "category": "reliability",
        "leads": "shotstack",
        "name": "Reliability",
        "reasons": {
          "a": "Hosted lines. The footer links an UptimeRobot status page, but it loads its figures from /api/, which stats.uptimerobot.com's robots.txt disallows, so the page showed no monitors or history (10 of 20 for a page that exists) and no history was read (5). A hard limit of 3 renders a second is published (15). The `rate-limit` error code and advice to send renders one at a time, and identical renders are cached for 45 days at no cost, which makes a retry safe; there's no Retry-After or backoff interval (8 of 15). No SLA found (0). The API isn't labelled beta (10). 10 + 5 + 15 + 8 + 0 + 10 = 48.",
          "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": 48,
          "b": 95
        }
      },
      {
        "by": 31,
        "category": "schema",
        "leads": "shotstack",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "No OpenAPI or other machine-readable contract found for the REST API, and the MCP server is closed. The MCP page lists all nine tools and `get_template_modifications` returns each template's keys, constraints and examples at run time (8 of 25, on that partial evidence). llms.txt indexes the docs (10). The MCP page says what each tool does, which tools change templates or spend credits, and that there is no delete tool (14 of 20). Modification keys follow `{element-name}.{modification-key}` with constraints from the template rather than a fixed schema (7 of 15). Request examples throughout and an error code table with eight codes (13 of 15). /v1 paths with no changelog (5 of 15). 8 + 10 + 14 + 7 + 13 + 5 = 57.",
          "b": "Public OpenAPI 3.0.1 definition of the Edit API with 14 operations and 122 schemas. The MCP tool schemas need a signed-in account and were not read (25). llms.txt, llms-full.txt and a Markdown twin of every guide page (10). The conventions guide and MCP page say when to use `studio` or `render_video` and name the five commonest mistakes (17). 84 enums and required fields across the schemas, with per-model generation `options` published as JSON Schema by `GET /models` (13). 367 examples in the definition. Error responses are documented for the generation endpoints, while render and template operations document only the success response (10). `v1` and `stage` in the path and a dated changelog for the definition, less 2 because release 1.22.0 removed a response field in a minor version (13)."
        },
        "scores": {
          "a": 57,
          "b": 88
        }
      },
      {
        "by": 24,
        "category": "transparency",
        "leads": "shotstack",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service under terms effective 8 April 2026 from Avantis Innovations LLC in Wyoming. The terms can change without notice (15). The privacy policy of the same date covers Google sign-in and Sheets data, says spreadsheet rows aren't kept beyond a render and account data is deleted with the account, and otherwise names no periods (10 of 30). No deprecation policy or notices (0). Hosting is described only as third-party vendors, with no processors or locations named, while the footer says Made in EU (2 of 20). 15 + 10 + 0 + 2 = 27.",
          "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": 49,
          "b": 73
        }
      },
      {
        "by": 12,
        "category": "ergonomics",
        "leads": "robolly",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "Nine MCP tools (25). The renders list pages with a cursor, and templates are found by name (14 of 20). Errors carry `errorCode` and `developerMessage` with eight documented codes (17 of 20). Identical renders are cached for 45 days, so repeats are free and safe, the MCP server has no delete tool, and annotations couldn't be read on the closed server (12 of 20). Renders return the file synchronously by default, but there's no SDK (7 of 15). 25 + 14 + 17 + 12 + 7 = 75.",
          "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": 75,
          "b": 63
        }
      },
      {
        "by": 10,
        "category": "payments",
        "leads": "shotstack",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). Plan prices are public and a table gives the credit cost of each format and size (15 of 20). 7-day trial with no card (20). A person signs up, then copies the key or approves OAuth (0). 0 + 15 + 20 + 0 = 35.",
          "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": 35,
          "b": 45
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Avantis Innovations LLC (Robolly)",
        "b": "ShotStack Pty Ltd",
        "name": "Vendor"
      },
      {
        "a": "https://api.robolly.com/v1",
        "b": "https://api.shotstack.io/edit/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Closed service under the Robolly terms of use (effective 8 April 2026)",
        "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": "9",
        "b": "15",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "none",
        "b": "2026-10-27",
        "name": "Last release"
      },
      {
        "a": "2026-04-08",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-04-08",
        "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": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "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 Robolly's 48.4 (D), and leads in 6 of 7 scored categories. Robolly leads on agent ergonomics.",
        "question": "Which is better for AI agents, Robolly or Shotstack?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Robolly and Shotstack need an API key?"
      },
      {
        "answer": "Yes. Robolly has a hosted endpoint at https://api.robolly.com/v1 and Shotstack at https://api.shotstack.io/edit/v1.",
        "question": "Can an agent call Robolly and Shotstack without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 75 against 63"
        ],
        "also": [
          "Free to start without a card",
          "No incidents deducted, where Shotstack loses 3 points for them"
        ],
        "goodFor": "Template-driven images, PDFs and short videos for marketers and developers who want a hosted editor and simple synchronous calls.",
        "slug": "robolly",
        "watchFor": "No OpenAPI or other machine-readable contract found"
      },
      {
        "aheadOn": [
          "Reliability, 95 against 48",
          "Schema \u0026 documentation, 88 against 57",
          "Payments \u0026 pricing, 45 against 35",
          "Maintenance \u0026 community, 73 against 5",
          "Transparency \u0026 trust, 73 against 49"
        ],
        "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": {
      "robolly": null,
      "shotstack": [
        {
          "causes": [
            "time"
          ],
          "date": "2026-11-02",
          "delta": 2,
          "from": 65.3,
          "fromGrade": "B",
          "to": 67.3,
          "toGrade": "B"
        }
      ]
    },
    "job": {
      "capability": "design.templates",
      "name": "Design templates"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-robolly.json",
        "title": "Adobe Photoshop API vs Robolly",
        "url": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-robolly"
      },
      {
        "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-robolly.json",
        "title": "APITemplate.io vs Robolly",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-robolly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apitemplate-io-vs-shotstack.json",
        "title": "APITemplate.io vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bannerbear-vs-robolly.json",
        "title": "Bannerbear API + MCP vs Robolly",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-robolly"
      },
      {
        "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-robolly.json",
        "title": "Canva REST APIs + MCP vs Robolly",
        "url": "https://www.anchorterminal.com/compare/canva-vs-robolly"
      },
      {
        "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-robolly.json",
        "title": "Contentdrips API and MCP vs Robolly",
        "url": "https://www.anchorterminal.com/compare/contentdrips-vs-robolly"
      },
      {
        "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-robolly.json",
        "title": "Creatomate vs Robolly",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-robolly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/creatomate-vs-shotstack.json",
        "title": "Creatomate vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dynapictures-vs-robolly.json",
        "title": "DynaPictures vs Robolly",
        "url": "https://www.anchorterminal.com/compare/dynapictures-vs-robolly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dynapictures-vs-shotstack.json",
        "title": "DynaPictures vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/dynapictures-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/layerre-vs-robolly.json",
        "title": "Layerre vs Robolly",
        "url": "https://www.anchorterminal.com/compare/layerre-vs-robolly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/layerre-vs-shotstack.json",
        "title": "Layerre vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/layerre-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photoroom-vs-robolly.json",
        "title": "Photoroom API vs Robolly",
        "url": "https://www.anchorterminal.com/compare/photoroom-vs-robolly"
      },
      {
        "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-robolly.json",
        "title": "Pixelixe vs Robolly",
        "url": "https://www.anchorterminal.com/compare/pixelixe-vs-robolly"
      },
      {
        "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-robolly.json",
        "title": "Placid API + MCP vs Robolly",
        "url": "https://www.anchorterminal.com/compare/placid-vs-robolly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/placid-vs-shotstack.json",
        "title": "Placid API + MCP vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/placid-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/postnitro-vs-robolly.json",
        "title": "PostNitro vs Robolly",
        "url": "https://www.anchorterminal.com/compare/postnitro-vs-robolly"
      },
      {
        "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-templated.json",
        "title": "Robolly vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/robolly-vs-templated"
      },
      {
        "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-robolly.json",
        "title": "Abyssale vs Robolly",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-robolly"
      },
      {
        "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/osmo-cli-vs-robolly.json",
        "title": "Osmo CLI vs Robolly",
        "url": "https://www.anchorterminal.com/compare/osmo-cli-vs-robolly"
      },
      {
        "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-robolly.json",
        "title": "Pictify vs Robolly",
        "url": "https://www.anchorterminal.com/compare/pictify-vs-robolly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pictify-vs-shotstack.json",
        "title": "Pictify vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/pictify-vs-shotstack"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 47,
        "edge": "shotstack",
        "key": "reliability",
        "name": "Reliability",
        "robolly": 48,
        "shotstack": 95,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 31,
        "edge": "shotstack",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "robolly": 57,
        "shotstack": 88,
        "weight": 13
      },
      {
        "by": 12,
        "edge": "robolly",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "robolly": 75,
        "shotstack": 63,
        "weight": 13
      },
      {
        "by": 1,
        "edge": "shotstack",
        "key": "security",
        "name": "Security \u0026 auth",
        "robolly": 47,
        "shotstack": 48,
        "weight": 14
      },
      {
        "by": 10,
        "edge": "shotstack",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "robolly": 35,
        "shotstack": 45,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 68,
        "edge": "shotstack",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "robolly": 5,
        "shotstack": 73,
        "weight": 7
      },
      {
        "by": 24,
        "edge": "shotstack",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "robolly": 49,
        "shotstack": 73,
        "weight": 7
      }
    ],
    "summary": "Shotstack scores 67.3 (B) on agent readiness against Robolly's 48.4 (D), and leads in 6 of 7 scored categories. Robolly leads on agent ergonomics. Both do design templates.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "robolly": "Robolly's nine MCP tools, synchronous renders, typed error codes and free cached re-renders keep template rendering cheap and predictable for an agent, and OAuth connections can be revoked per client. There is no OpenAPI file, changelog or dated release, and API access starts at $39 a month after a 7-day trial.",
      "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/robolly-vs-shotstack",
    "json": "https://www.anchorterminal.com/compare/robolly-vs-shotstack.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/robolly-vs-shotstack.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/robolly-vs-shotstack.min.md"
  },
  "markdown": "Shotstack scores 67.3 (B) on agent readiness against Robolly's 48.4 (D), and leads in 6 of 7 scored categories. Robolly leads on agent ergonomics. Both do design templates.\n\n- Robolly: grade D, 48.4/100, rank #1115 of 1486. Markdown https://www.anchorterminal.com/tools/robolly.md · JSON https://www.anchorterminal.com/api/v1/tools/robolly.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### Robolly (D)\n\nGood for: Template-driven images, PDFs and short videos for marketers and developers who want a hosted editor and simple synchronous calls.\n\nAhead on:\n- Agent ergonomics, 75 against 63\n\nAlso in its favour:\n- Free to start without a card\n- No incidents deducted, where Shotstack loses 3 points for them\n\nWatch for: No OpenAPI or other machine-readable contract found\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 48\n- Schema \u0026 documentation, 88 against 57\n- Payments \u0026 pricing, 45 against 35\n- Maintenance \u0026 community, 73 against 5\n- Transparency \u0026 trust, 73 against 49\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### Maintenance \u0026 community: Shotstack +68\n\n- Robolly (5): No changelog, release notes or dated API change was found. The sitemap marks every docs page as modified on 4 November 2026, which reads as a site rebuild rather than a change, so it isn't counted (0). No dated changes since 8 August (0). Support by email, with chat on higher plans; not tested (5 of 15). Not in the official MCP registry and no SDKs (0). No public package or repository (0). 0 + 0 + 5 + 0 + 0 = 5.\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### Reliability: Shotstack +47\n\n- Robolly (48): Hosted lines. The footer links an UptimeRobot status page, but it loads its figures from /api/, which stats.uptimerobot.com's robots.txt disallows, so the page showed no monitors or history (10 of 20 for a page that exists) and no history was read (5). A hard limit of 3 renders a second is published (15). The `rate-limit` error code and advice to send renders one at a time, and identical renders are cached for 45 days at no cost, which makes a retry safe; there's no Retry-After or backoff interval (8 of 15). No SLA found (0). The API isn't labelled beta (10). 10 + 5 + 15 + 8 + 0 + 10 = 48.\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### Schema \u0026 documentation: Shotstack +31\n\n- Robolly (57): No OpenAPI or other machine-readable contract found for the REST API, and the MCP server is closed. The MCP page lists all nine tools and `get_template_modifications` returns each template's keys, constraints and examples at run time (8 of 25, on that partial evidence). llms.txt indexes the docs (10). The MCP page says what each tool does, which tools change templates or spend credits, and that there is no delete tool (14 of 20). Modification keys follow `{element-name}.{modification-key}` with constraints from the template rather than a fixed schema (7 of 15). Request examples throughout and an error code table with eight codes (13 of 15). /v1 paths with no changelog (5 of 15). 8 + 10 + 14 + 7 + 13 + 5 = 57.\n- Shotstack (88): Public OpenAPI 3.0.1 definition of the Edit API with 14 operations and 122 schemas. The MCP tool schemas need a signed-in account and were not read (25). llms.txt, llms-full.txt and a Markdown twin of every guide page (10). The conventions guide and MCP page say when to use `studio` or `render_video` and name the five commonest mistakes (17). 84 enums and required fields across the schemas, with per-model generation `options` published as JSON Schema by `GET /models` (13). 367 examples in the definition. Error responses are documented for the generation endpoints, while render and template operations document only the success response (10). `v1` and `stage` in the path and a dated changelog for the definition, less 2 because release 1.22.0 removed a response field in a minor version (13).\n\n### Transparency \u0026 trust: Shotstack +24\n\n- Robolly (49): Closed service under terms effective 8 April 2026 from Avantis Innovations LLC in Wyoming. The terms can change without notice (15). The privacy policy of the same date covers Google sign-in and Sheets data, says spreadsheet rows aren't kept beyond a render and account data is deleted with the account, and otherwise names no periods (10 of 30). No deprecation policy or notices (0). Hosting is described only as third-party vendors, with no processors or locations named, while the footer says Made in EU (2 of 20). 15 + 10 + 0 + 2 = 27.\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: Robolly +12\n\n- Robolly (75): Nine MCP tools (25). The renders list pages with a cursor, and templates are found by name (14 of 20). Errors carry `errorCode` and `developerMessage` with eight documented codes (17 of 20). Identical renders are cached for 45 days, so repeats are free and safe, the MCP server has no delete tool, and annotations couldn't be read on the closed server (12 of 20). Renders return the file synchronously by default, but there's no SDK (7 of 15). 25 + 14 + 17 + 12 + 7 = 75.\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 +10\n\n- Robolly (35): No x402, MPP or L402 (0). Plan prices are public and a table gives the credit cost of each format and size (15 of 20). 7-day trial with no card (20). A person signs up, then copies the key or approves OAuth (0). 0 + 15 + 20 + 0 = 35.\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## Score by category\n\n| Category | Weight | Robolly | Shotstack | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 48 | 95 | Shotstack +47 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 57 | 88 | Shotstack +31 |\n| Agent ergonomics | 13% (16.2 this run) | 75 | 63 | Robolly +12 |\n| Security \u0026 auth | 14% (17.5 this run) | 47 | 48 | Shotstack +1 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 45 | Shotstack +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 5 | 73 | Shotstack +68 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 49 | 73 | Shotstack +24 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **48.4 · D** | **67.3 · B** | |\n\n## Facts side by side\n\n| Fact | Robolly | Shotstack |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Avantis Innovations LLC (Robolly) | ShotStack Pty Ltd |\n| Hosted endpoint | `https://api.robolly.com/v1` | `https://api.shotstack.io/edit/v1` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Paid | Pay per use |\n| x402 | no | no |\n| Licence | Closed service under the Robolly terms of use (effective 8 April 2026) | 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 | 9 | 15 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | none | 2026-10-27 |\n| Terms last updated | 2026-04-08 | no date given |\n| Privacy policy last updated | 2026-04-08 | 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 | yes | not found in the text |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Popularity | none | 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### Robolly\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**Robolly.** Robolly's nine MCP tools, synchronous renders, typed error codes and free cached re-renders keep template rendering cheap and predictable for an agent, and OAuth connections can be revoked per client. There is no OpenAPI file, changelog or dated release, and API access starts at $39 a month after a 7-day trial.\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### Robolly\n\n1. Call `get_template_modifications` before `render` to learn the keys a template accepts\n2. Send renders one at a time; the API refuses more than 3 a second with `rate-limit`\n3. Repeat an identical render freely; it is cached for 45 days and costs nothing\n4. Poll `get_render` after `render_video`, since video renders are queued\n5. Stop on `render-limit-exhausted` and tell the user the monthly credits are spent\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, Robolly or Shotstack?\n\nShotstack scores 67.3 (B) on agent readiness against Robolly's 48.4 (D), and leads in 6 of 7 scored categories. Robolly leads on agent ergonomics.\n\n### Do Robolly and Shotstack need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Robolly and Shotstack without installing anything?\n\nYes. Robolly has a hosted endpoint at https://api.robolly.com/v1 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/robolly-vs-shotstack.json, and with the fewest tokens: https://www.anchorterminal.com/compare/robolly-vs-shotstack.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"robolly\", \"b\": \"shotstack\"}`. From a terminal: `anchor compare robolly shotstack`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/robolly.json and https://www.anchorterminal.com/api/v1/tools/shotstack.json\n\n## Other comparisons with Robolly or Shotstack\n\n- [Adobe Photoshop API vs Robolly](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-robolly.md)\n- [Adobe Photoshop API vs Shotstack](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-shotstack.md)\n- [APITemplate.io vs Robolly](https://www.anchorterminal.com/compare/apitemplate-io-vs-robolly.md)\n- [APITemplate.io vs Shotstack](https://www.anchorterminal.com/compare/apitemplate-io-vs-shotstack.md)\n- [Bannerbear API + MCP vs Robolly](https://www.anchorterminal.com/compare/bannerbear-vs-robolly.md)\n- [Bannerbear API + MCP vs Shotstack](https://www.anchorterminal.com/compare/bannerbear-vs-shotstack.md)\n- [Canva REST APIs + MCP vs Robolly](https://www.anchorterminal.com/compare/canva-vs-robolly.md)\n- [Canva REST APIs + MCP vs Shotstack](https://www.anchorterminal.com/compare/canva-vs-shotstack.md)\n- [Contentdrips API and MCP vs Robolly](https://www.anchorterminal.com/compare/contentdrips-vs-robolly.md)\n- [Contentdrips API and MCP vs Shotstack](https://www.anchorterminal.com/compare/contentdrips-vs-shotstack.md)\n- [Creatomate vs Robolly](https://www.anchorterminal.com/compare/creatomate-vs-robolly.md)\n- [Creatomate vs Shotstack](https://www.anchorterminal.com/compare/creatomate-vs-shotstack.md)\n- [DynaPictures vs Robolly](https://www.anchorterminal.com/compare/dynapictures-vs-robolly.md)\n- [DynaPictures vs Shotstack](https://www.anchorterminal.com/compare/dynapictures-vs-shotstack.md)\n- [Layerre vs Robolly](https://www.anchorterminal.com/compare/layerre-vs-robolly.md)\n- [Layerre vs Shotstack](https://www.anchorterminal.com/compare/layerre-vs-shotstack.md)\n- [Photoroom API vs Robolly](https://www.anchorterminal.com/compare/photoroom-vs-robolly.md)\n- [Photoroom API vs Shotstack](https://www.anchorterminal.com/compare/photoroom-vs-shotstack.md)\n- [Pixelixe vs Robolly](https://www.anchorterminal.com/compare/pixelixe-vs-robolly.md)\n- [Pixelixe vs Shotstack](https://www.anchorterminal.com/compare/pixelixe-vs-shotstack.md)\n- [Placid API + MCP vs Robolly](https://www.anchorterminal.com/compare/placid-vs-robolly.md)\n- [Placid API + MCP vs Shotstack](https://www.anchorterminal.com/compare/placid-vs-shotstack.md)\n- [PostNitro vs Robolly](https://www.anchorterminal.com/compare/postnitro-vs-robolly.md)\n- [PostNitro vs Shotstack](https://www.anchorterminal.com/compare/postnitro-vs-shotstack.md)\n- [Robolly vs Templated API + MCP](https://www.anchorterminal.com/compare/robolly-vs-templated.md)\n- [Shotstack vs Templated API + MCP](https://www.anchorterminal.com/compare/shotstack-vs-templated.md)\n- [Abyssale vs Robolly](https://www.anchorterminal.com/compare/abyssale-vs-robolly.md)\n- [Abyssale vs Shotstack](https://www.anchorterminal.com/compare/abyssale-vs-shotstack.md)\n- [Osmo CLI vs Robolly](https://www.anchorterminal.com/compare/osmo-cli-vs-robolly.md)\n- [Osmo CLI vs Shotstack](https://www.anchorterminal.com/compare/osmo-cli-vs-shotstack.md)\n- [Pictify vs Robolly](https://www.anchorterminal.com/compare/pictify-vs-robolly.md)\n- [Pictify vs Shotstack](https://www.anchorterminal.com/compare/pictify-vs-shotstack.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": "Robolly vs Shotstack",
        "url": ""
      }
    ],
    "description": "Shotstack scores 67.3 (B) to Robolly's 48.4 (D) for design templates. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Robolly D 48.4",
      "Shotstack B 67.3",
      "scores"
    ],
    "h1": "Robolly vs Shotstack",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/robolly-vs-shotstack",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Robolly vs Shotstack for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/robolly-vs-shotstack"
  },
  "tokens": {
    "markdown": 4900,
    "slim": 2880
  },
  "version": 1
}
