{
  "data": {
    "a": {
      "slug": "photoroom",
      "name": "Photoroom API",
      "vendor": "Photoroom",
      "vendorUrl": "https://www.photoroom.com",
      "kind": "http-api",
      "category": "design-assets",
      "summary": "Photoroom's API edits product photos over HTTP. One call removes a background, adds a shadow or generated background, relights, expands, resizes or fills a template, and returns the image. A hosted MCP server wraps the same API.",
      "url": "https://www.anchorterminal.com/tools/photoroom",
      "markdownUrl": "https://www.anchorterminal.com/tools/photoroom.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/photoroom.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/photoroom.json",
      "repo": "https://github.com/PhotoRoom/api-code-samples",
      "license": "Proprietary service under the Photoroom Terms and Conditions. The sample code repository is MIT",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://image-api.photoroom.com/v2",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Self-serve API key, sent in the `x-api-key` header. A person creates a Photoroom account and activates the API in the dashboard at app.photoroom.com/api-dashboard. A team can create several keys and revoke each one. No scopes were found. Prefixing the key with `sandbox_` makes free, watermarked calls. The hosted MCP server uses an OAuth authorisation code grant with PKCE and dynamic client registration, and creates its own API key for the connection (https://docs.photoroom.com/getting-started/introduction.md, https://www.photoroom.com/api/claude).",
      "pricing": "freemium",
      "pricingNotes": "$0.02 an image on the Remove Background API (Basic plan) and $0.10 a call on the Image Editing API (Plus plan), bought as a monthly subscription of images that do not roll over. Sandbox mode is free for 1,000 watermarked calls a month, and a new account gets 10 free production background removals, with no card. Failed calls are not billed. Enterprise pricing from 200,000 images a year is by sales (https://www.photoroom.com/api/pricing, https://docs.photoroom.com/getting-started/pricing.md).",
      "priceSummary": "$20 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API docs, the OpenAPI description or the pricing pages (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": 1,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://docs.photoroom.com",
      "llmsTxt": "https://docs.photoroom.com/llms.txt",
      "openapi": "https://image-api.photoroom.com/openapi",
      "capabilities": [
        "image.edit",
        "design.templates",
        "image.generate",
        "image.upscale"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "mcp",
        "oauth",
        "openapi",
        "llms-txt",
        "sandbox",
        "background-removal",
        "soc2"
      ],
      "lastRelease": "2026-04-21",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 56,
        "grade": "C",
        "agentReady": false,
        "rank": 642,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 64,
          "maintenance": 23,
          "payments": 40,
          "reliability": 46,
          "schema": 86,
          "security": 54,
          "transparency": 68
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "A call costs $0.02 for background removal or $0.10 for any combination of edits, and a sandbox key gives 1,000 free watermarked calls a month without a card. No status page or official SDK was found, and Photoroom's privacy policy and security page disagree on whether API images train its models.",
        "bestFor": "Product-photo work at volume, such as cutouts, white backgrounds, shadows, generated scenes and clothing shots, one image a call.",
        "strengths": [
          "Prices are per image and public, $0.02 for the Remove Background API and $0.10 for an Image Editing call with any number of edits combined",
          "A `sandbox_` key prefix gives 1,000 free watermarked Image Editing calls a month (100 a day) with no card, per the docs and pricing page",
          "Calls that end in an error do not consume an image, per the pricing page of the docs",
          "A public OpenAPI 3.1 file, an `llms.txt` index and a Markdown twin of every docs page, plus a ready-made prompt for coding agents",
          "The security page says images sent to the API are discarded when the response returns and names five sub-processors and US hosting"
        ],
        "weaknesses": [
          "No status page was found on the site or in the docs, so there is no public incident history to read",
          "The privacy policy says model improvement does not apply to API images. The security page says self-serve API plans train by default with an opt-out",
          "No official SDK. The vendor publishes MIT sample code for web, Node.js, Python and iOS and tells callers to use a plain HTTP client",
          "The changelog's last dated entry is 21 April 2026, while the docs list Virtual Try-On, which has no changelog entry",
          "The terms forbid any automated system that sends more requests than a person could from a browser. This matters before any probe is run"
        ],
        "agentNotes": [
          "Send the key in the `x-api-key` header. Prefix it with `sandbox_` while testing, because calls with the plain key consume paid images",
          "Save the response body as a file. A 200 returns image bytes, PNG by default, and any other status returns JSON with `error.message` or `detail`",
          "Send model selectors such as `pr-ai-shadows-model-version: 2026-04-15` as HTTP headers, not form fields. They are not in the OpenAPI file",
          "Stay under 60 images a minute. On 429 back off with an exponential delay, and set a client timeout of at least 60 seconds for AI edits",
          "Use `POST /v2/edit` with `imageFile` for local files and `GET /v2/edit` with `imageUrl` for hosted ones. Each call takes one image"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 56
          }
        ],
        "editorialScores": {
          "ergonomics": 64,
          "maintenance": 23,
          "payments": 40,
          "reliability": 46,
          "schema": 86,
          "security": 54,
          "transparency": 57
        },
        "provenanceScore": 78
      },
      "connect": {
        "http": "curl --request POST \\\n  --url https://image-api.photoroom.com/v2/edit \\\n  --header 'x-api-key: YOUR_API_KEY' \\\n  --form imageFile=@/absolute/path/to/image.jpg \\\n  --form removeBackground=true \\\n  --form background.color=FFFFFF \\\n  --form padding=0.15 \\\n  --form shadow.mode=ai.soft \\\n  --output result.png",
        "claudeCode": "claude mcp add --transport http Photoroom https://mcp.photoroom.com/mcp"
      },
      "letme": {
        "capability": "https://letme.dev/image.edit",
        "tool": "https://letme.dev/photoroom"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Remove Background API",
          "unit": "image",
          "usd": 0.02,
          "note": "Basic plan, `/v1/segment`"
        },
        {
          "item": "Image Editing API",
          "unit": "image",
          "usd": 0.1,
          "note": "Plus plan, `/v2/edit`, any number of edits in the call"
        },
        {
          "item": "Basic plan, 1,000 images",
          "unit": "month",
          "usd": 20,
          "note": "example from the pricing page FAQ"
        }
      ],
      "provenance": {
        "legalEntity": "Photoroom SAS",
        "domain": "photoroom.com",
        "domainRegistered": "1998-11-21",
        "endpointOnVendorDomain": true,
        "terms": "https://www.photoroom.com/legal/terms-and-conditions",
        "privacy": "https://www.photoroom.com/legal/privacy",
        "statusPage": "",
        "changelog": "https://docs.photoroom.com/getting-started/changelog",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The Terms and Conditions, effective 29 July 2026, cover the platform, the application programming interface and related services of Photoroom SAS. No separate API terms were found.",
          "The legal notice gives PHOTOROOM, SAS, RCS Paris 853 059 384, 229 rue Saint-Honoré, 75001 Paris. The site footer reads Photoroom, Inc.",
          "The privacy policy, updated March 2026, names Photoroom as controller for photoroom.com, app.photoroom.com and the apps, and has one sentence on API images.",
          "The API answers at image-api.photoroom.com and sdk.photoroom.com and the MCP server at mcp.photoroom.com.",
          "https://www.photoroom.com/.well-known/security.txt returns 404.",
          "RDAP for photoroom.com gives a registration date of 1998-11-21, which predates the company.",
          "No status page was found. status.photoroom.com did not answer one request."
        ],
        "score": 78
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/photoroom.json",
      "live": {
        "slug": "photoroom",
        "probe": {
          "target": "https://image-api.photoroom.com/v2",
          "method": "get",
          "lastAt": "2026-10-10T02:07:20.195533745Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 130,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 135,
          "p95ms24h": 247,
          "samples24h": 107,
          "samples30d": 107,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 22,
              "ok": 22
            }
          ]
        },
        "githubStars": 25,
        "pages": [
          {
            "url": "https://docs.photoroom.com/getting-started/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:38:01.676305945Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1f86895e2d75"
          },
          {
            "url": "https://docs.photoroom.com/getting-started/pricing.md",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:38:04.09337971Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "eb0f8c798163"
          },
          {
            "url": "https://www.photoroom.com/api/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:53:00.228391694Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7774b6bf0d79"
          },
          {
            "url": "https://www.photoroom.com/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:53:02.426751592Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d41a425b8f9c"
          },
          {
            "url": "https://www.photoroom.com/legal/terms-and-conditions",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:53:04.386172113Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9874ac57ac8b"
          }
        ],
        "updatedAt": "2026-10-10T02:07:20.195533745Z"
      }
    },
    "answer": "Shotstack scores 65.3 (B) on agent readiness against Photoroom API's 56 (C), and leads in 5 of 7 scored categories. Photoroom API leads on security \u0026 auth.",
    "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",
      "repo": "https://github.com/shotstack/shotstack-cli",
      "license": "Proprietary service under Shotstack's Terms and Conditions. The CLI and skill are Apache-2.0, the schemas package and SDKs are MIT, and the Studio SDK is under PolyForm Shield 1.0.0",
      "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-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 65.3,
        "grade": "B",
        "agentReady": false,
        "rank": 324,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 73,
          "payments": 45,
          "reliability": 85,
          "schema": 88,
          "security": 48,
          "transparency": 73
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "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 published Node and Python SDKs date 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), and the terms carry a 99.9 per cent uptime SLA with a 10 per cent credit"
        ],
        "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` (0.2.9) and PyPI `shotstack-sdk` (0.2.8) packages were last published in July 2024"
        ],
        "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": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 65.3
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 73,
          "payments": 45,
          "reliability": 85,
          "schema": 88,
          "security": 48,
          "transparency": 61
        },
        "provenanceScore": 84
      },
      "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-10-08",
        "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.",
          "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": 84
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/shotstack.json",
      "live": {
        "slug": "shotstack",
        "probe": {
          "target": "https://api.shotstack.io/edit/v1",
          "method": "get",
          "lastAt": "2026-10-10T02:07:24.733226179Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 870,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 862,
          "p95ms24h": 946,
          "samples24h": 191,
          "samples30d": 191,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 169,
              "ok": 169
            },
            {
              "date": "2026-10-10",
              "probes": 22,
              "ok": 22
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.shotstack.io",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:51:15.828287816Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@shotstack/cli",
            "version": "0.10.0",
            "seenAt": "2026-10-09T17:19:58.638079964Z"
          },
          {
            "registry": "npm",
            "name": "@shotstack/schemas",
            "version": "1.22.0",
            "seenAt": "2026-10-09T17:19:59.700845943Z"
          },
          {
            "registry": "npm",
            "name": "shotstack-sdk",
            "version": "0.2.9",
            "seenAt": "2026-10-09T17:20:00.858870508Z"
          },
          {
            "registry": "pypi",
            "name": "shotstack-sdk",
            "version": "0.2.8",
            "released": "2024-07-19",
            "seenAt": "2026-10-09T17:20:03.06522502Z"
          }
        ],
        "githubStars": 0,
        "npmWeekly": 473,
        "pypiWeekly": 319,
        "securityTxt": {
          "url": "https://shotstack.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:39:47.02024997Z"
        },
        "llmsTxt": {
          "url": "https://shotstack.io/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:02:46.629300421Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/shotstack/oas-api-definition/main/CHANGELOG.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:46:05.139215061Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "8dc7b01dd6e2"
          },
          {
            "url": "https://shotstack.io/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:45:19.687195801Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f15136612b7a"
          },
          {
            "url": "https://shotstack.io/terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:45:22.581395055Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c8dd9641f3ab"
          }
        ],
        "updatedAt": "2026-10-10T02:07:24.733226179Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Photoroom",
        "b": "ShotStack Pty Ltd",
        "name": "Vendor"
      },
      {
        "a": "https://image-api.photoroom.com/v2",
        "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": "Freemium",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the Photoroom Terms and Conditions. The sample code repository is MIT",
        "b": "Proprietary service under Shotstack's Terms and Conditions. The CLI and skill are Apache-2.0, the schemas package and SDKs are MIT, and the Studio SDK is under PolyForm Shield 1.0.0",
        "name": "Licence"
      },
      {
        "a": "1",
        "b": "15",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-04-21",
        "b": "2026-10-05",
        "name": "Last release"
      },
      {
        "a": "2026-07-29",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-03-01",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes, with an opt-out",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "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": "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"
      }
    ],
    "faq": [
      {
        "answer": "Shotstack scores 65.3 (B) on agent readiness against Photoroom API's 56 (C), and leads in 5 of 7 scored categories. Photoroom API leads on security \u0026 auth.",
        "question": "Which is better for AI agents, Photoroom API or Shotstack?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Photoroom API and Shotstack need an API key?"
      },
      {
        "answer": "Yes. Photoroom API has a hosted endpoint at https://image-api.photoroom.com/v2 and Shotstack at https://api.shotstack.io/edit/v1.",
        "question": "Can an agent call Photoroom API and Shotstack without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Security \u0026 auth, 54 against 48"
        ],
        "also": [
          "No incidents deducted, where Shotstack loses 3 points for them"
        ],
        "goodFor": "Product-photo work at volume, such as cutouts, white backgrounds, shadows, generated scenes and clothing shots, one image a call.",
        "slug": "photoroom",
        "watchFor": "No status page was found on the site or in the docs, so there is no public incident history to read"
      },
      {
        "aheadOn": [
          "Reliability, 85 against 46",
          "Payments \u0026 pricing, 45 against 40",
          "Maintenance \u0026 community, 73 against 23",
          "Transparency \u0026 trust, 73 against 68"
        ],
        "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"
      }
    ],
    "job": {
      "capability": "design.templates",
      "name": "Design templates"
    },
    "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-photoroom.json",
        "title": "APITemplate.io vs Photoroom API",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-photoroom"
      },
      {
        "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-photoroom.json",
        "title": "Bannerbear API + MCP vs Photoroom API",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-photoroom"
      },
      {
        "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-photoroom.json",
        "title": "Canva REST APIs + MCP vs Photoroom API",
        "url": "https://www.anchorterminal.com/compare/canva-vs-photoroom"
      },
      {
        "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/creatomate-vs-photoroom.json",
        "title": "Creatomate vs Photoroom API",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-photoroom"
      },
      {
        "json": "https://www.anchorterminal.com/compare/creatomate-vs-shotstack.json",
        "title": "Creatomate vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photoroom-vs-placid.json",
        "title": "Photoroom API vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/photoroom-vs-placid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/photoroom-vs-templated.json",
        "title": "Photoroom API vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/photoroom-vs-templated"
      },
      {
        "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/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/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/adobe-photoshop-api-vs-photoroom.json",
        "title": "Adobe Photoshop API vs Photoroom API",
        "url": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-photoroom"
      },
      {
        "json": "https://www.anchorterminal.com/compare/osmo-cli-vs-photoroom.json",
        "title": "Osmo CLI vs Photoroom API",
        "url": "https://www.anchorterminal.com/compare/osmo-cli-vs-photoroom"
      }
    ],
    "scores": [
      {
        "by": 39,
        "edge": "shotstack",
        "key": "reliability",
        "name": "Reliability",
        "photoroom": 46,
        "shotstack": 85,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 2,
        "edge": "shotstack",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "photoroom": 86,
        "shotstack": 88,
        "weight": 13
      },
      {
        "by": 1,
        "edge": "photoroom",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "photoroom": 64,
        "shotstack": 63,
        "weight": 13
      },
      {
        "by": 6,
        "edge": "photoroom",
        "key": "security",
        "name": "Security \u0026 auth",
        "photoroom": 54,
        "shotstack": 48,
        "weight": 14
      },
      {
        "by": 5,
        "edge": "shotstack",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "photoroom": 40,
        "shotstack": 45,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 50,
        "edge": "shotstack",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "photoroom": 23,
        "shotstack": 73,
        "weight": 7
      },
      {
        "by": 5,
        "edge": "shotstack",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "photoroom": 68,
        "shotstack": 73,
        "weight": 7
      }
    ],
    "summary": "Shotstack scores 65.3 (B) on agent readiness against Photoroom API's 56 (C), and leads in 5 of 7 scored categories. Photoroom API leads on security \u0026 auth. Both do design templates.",
    "verdicts": {
      "photoroom": "A call costs $0.02 for background removal or $0.10 for any combination of edits, and a sandbox key gives 1,000 free watermarked calls a month without a card. No status page or official SDK was found, and Photoroom's privacy policy and security page disagree on whether API images train its models.",
      "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 published Node and Python SDKs date from July 2024."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/photoroom-vs-shotstack",
    "json": "https://www.anchorterminal.com/compare/photoroom-vs-shotstack.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/photoroom-vs-shotstack.md",
    "slim": "https://www.anchorterminal.com/compare/photoroom-vs-shotstack.min.md"
  },
  "markdown": "Shotstack scores 65.3 (B) on agent readiness against Photoroom API's 56 (C), and leads in 5 of 7 scored categories. Photoroom API leads on security \u0026 auth. Both do design templates.\n\n- Photoroom API: grade C, 56/100, rank #642 of 950. Markdown https://www.anchorterminal.com/tools/photoroom.md · JSON https://www.anchorterminal.com/api/v1/tools/photoroom.json\n- Shotstack: grade B, 65.3/100, rank #324 of 950. 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 45 assets comparisons: https://www.anchorterminal.com/compare/design-assets/index.md\n\n## Which one, for what\n\n### Photoroom API (C)\n\nGood for: Product-photo work at volume, such as cutouts, white backgrounds, shadows, generated scenes and clothing shots, one image a call.\n\nAhead on:\n- Security \u0026 auth, 54 against 48\n\nAlso in its favour:\n- No incidents deducted, where Shotstack loses 3 points for them\n\nWatch for: No status page was found on the site or in the docs, so there is no public incident history to read\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, 85 against 46\n- Payments \u0026 pricing, 45 against 40\n- Maintenance \u0026 community, 73 against 23\n- Transparency \u0026 trust, 73 against 68\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## Score by category\n\n| Category | Weight | Photoroom API | Shotstack | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 46 | 85 | Shotstack +39 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 86 | 88 | Shotstack +2 |\n| Agent ergonomics | 13% (16.2 this run) | 64 | 63 | Photoroom API +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 54 | 48 | Photoroom API +6 |\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) | 23 | 73 | Shotstack +50 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 68 | 73 | Shotstack +5 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **56 · C** | **65.3 · B** | |\n\n## Facts side by side\n\n| Fact | Photoroom API | Shotstack |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Photoroom | ShotStack Pty Ltd |\n| Hosted endpoint | `https://image-api.photoroom.com/v2` | `https://api.shotstack.io/edit/v1` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Pay per use |\n| x402 | no | no |\n| Licence | Proprietary service under the Photoroom Terms and Conditions. The sample code repository is MIT | Proprietary service under Shotstack's Terms and Conditions. The CLI and skill are Apache-2.0, the schemas package and SDKs are MIT, and the Studio SDK is under PolyForm Shield 1.0.0 |\n| Tools exposed | 1 | 15 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-04-21 | 2026-10-05 |\n| Terms last updated | 2026-07-29 | no date given |\n| Privacy policy last updated | 2026-03-01 | no date given |\n| Customer content may train models | yes, with an opt-out | not found in the text |\n| Terms restrict automated access | yes | 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 | yes | not found in the text |\n| Popularity | none | 0 stars, 1.2k npm/wk, 326 PyPI/wk |\n\n## Verdicts\n\n**Photoroom API.** A call costs $0.02 for background removal or $0.10 for any combination of edits, and a sandbox key gives 1,000 free watermarked calls a month without a card. No status page or official SDK was found, and Photoroom's privacy policy and security page disagree on whether API images train its models.\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 published Node and Python SDKs date from July 2024.\n\n## Before you call either\n\n### Photoroom API\n\n1. Send the key in the `x-api-key` header. Prefix it with `sandbox_` while testing, because calls with the plain key consume paid images\n2. Save the response body as a file. A 200 returns image bytes, PNG by default, and any other status returns JSON with `error.message` or `detail`\n3. Send model selectors such as `pr-ai-shadows-model-version: 2026-04-15` as HTTP headers, not form fields. They are not in the OpenAPI file\n4. Stay under 60 images a minute. On 429 back off with an exponential delay, and set a client timeout of at least 60 seconds for AI edits\n5. Use `POST /v2/edit` with `imageFile` for local files and `GET /v2/edit` with `imageUrl` for hosted ones. Each call takes one image\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, Photoroom API or Shotstack?\n\nShotstack scores 65.3 (B) on agent readiness against Photoroom API's 56 (C), and leads in 5 of 7 scored categories. Photoroom API leads on security \u0026 auth.\n\n### Do Photoroom API and Shotstack need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Photoroom API and Shotstack without installing anything?\n\nYes. Photoroom API has a hosted endpoint at https://image-api.photoroom.com/v2 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/photoroom-vs-shotstack.json, and with the fewest tokens: https://www.anchorterminal.com/compare/photoroom-vs-shotstack.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"photoroom\", \"b\": \"shotstack\"}`. From a terminal: `anchor compare photoroom shotstack`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/photoroom.json and https://www.anchorterminal.com/api/v1/tools/shotstack.json\n\n## Other comparisons with Photoroom API or Shotstack\n\n- [Adobe Photoshop API vs Shotstack](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-shotstack.md)\n- [APITemplate.io vs Photoroom API](https://www.anchorterminal.com/compare/apitemplate-io-vs-photoroom.md)\n- [APITemplate.io vs Shotstack](https://www.anchorterminal.com/compare/apitemplate-io-vs-shotstack.md)\n- [Bannerbear API + MCP vs Photoroom API](https://www.anchorterminal.com/compare/bannerbear-vs-photoroom.md)\n- [Bannerbear API + MCP vs Shotstack](https://www.anchorterminal.com/compare/bannerbear-vs-shotstack.md)\n- [Canva REST APIs + MCP vs Photoroom API](https://www.anchorterminal.com/compare/canva-vs-photoroom.md)\n- [Canva REST APIs + MCP vs Shotstack](https://www.anchorterminal.com/compare/canva-vs-shotstack.md)\n- [Creatomate vs Photoroom API](https://www.anchorterminal.com/compare/creatomate-vs-photoroom.md)\n- [Creatomate vs Shotstack](https://www.anchorterminal.com/compare/creatomate-vs-shotstack.md)\n- [Photoroom API vs Placid API + MCP](https://www.anchorterminal.com/compare/photoroom-vs-placid.md)\n- [Photoroom API vs Templated API + MCP](https://www.anchorterminal.com/compare/photoroom-vs-templated.md)\n- [Placid API + MCP vs Shotstack](https://www.anchorterminal.com/compare/placid-vs-shotstack.md)\n- [Shotstack vs Templated API + MCP](https://www.anchorterminal.com/compare/shotstack-vs-templated.md)\n- [Osmo CLI vs Shotstack](https://www.anchorterminal.com/compare/osmo-cli-vs-shotstack.md)\n- [Adobe Photoshop API vs Photoroom API](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-photoroom.md)\n- [Osmo CLI vs Photoroom API](https://www.anchorterminal.com/compare/osmo-cli-vs-photoroom.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Photoroom API vs Shotstack",
        "url": ""
      }
    ],
    "description": "Shotstack scores 65.3 (B) to Photoroom's 56 (C) for design templates. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Photoroom API C 56",
      "Shotstack B 65.3",
      "scores"
    ],
    "h1": "Photoroom API vs Shotstack",
    "image": "https://www.anchorterminal.com/assets/og/compare-photoroom-vs-shotstack.png",
    "path": "/compare/photoroom-vs-shotstack",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Photoroom vs Shotstack for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/photoroom-vs-shotstack"
  },
  "tokens": {
    "markdown": 2400,
    "slim": 680
  },
  "version": 1
}
