{
  "data": {
    "a": {
      "slug": "postnitro",
      "name": "PostNitro",
      "vendor": "PostNitro Inc.",
      "vendorUrl": "https://postnitro.ai",
      "kind": "mcp",
      "category": "design-assets",
      "summary": "PostNitro designs carousels, single-image posts and videos from templates and brand kits, then schedules them to six social networks. Agents use a hosted MCP server with 40 tools, a REST API, a CLI or an agent plugin.",
      "url": "https://www.anchorterminal.com/tools/postnitro",
      "markdownUrl": "https://www.anchorterminal.com/tools/postnitro.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/postnitro.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/postnitro.json",
      "dns": "postnitro.grade.anchorterminal.com",
      "repo": "https://github.com/postnitro/postnitro-agent",
      "license": "Proprietary hosted service under PostNitro's Terms of Service. The CLI, agent skill and agent plugin repositories are MIT",
      "transports": [
        "streamable-http",
        "http"
      ],
      "remoteUrl": "https://mcp.postnitro.ai/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "@postnitro/cli"
        },
        {
          "registry": "npm",
          "name": "@postnitro/embed"
        }
      ],
      "auth": "mixed",
      "authNotes": "The MCP server takes OAuth 2.1 with PKCE and dynamic client registration (scopes `postnitro` and `offline_access`), used by the Claude and ChatGPT directory listings, or a `pn-` API key as `Authorization: Bearer`. The REST API takes the same key in the `embed-api-key` header. A person generates the key under Profile \u003e Embed in the web app. No read-only key or finer scope is documented.",
      "pricing": "paid",
      "pricingNotes": "API, MCP and CLI calls spend Embed API credits, 1 per imported slide and 2 per AI-written slide. Credits come with Creator+ ($30 a month, 200) or Team+ ($60, 500), or as a $10 add-on for 250 on a paid plan, $0.04 each. Scheduling needs Creator+ or above (https://postnitro.ai/plans).",
      "priceSummary": "$15 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Embed API OpenAPI document, llms.txt, llms-full.txt, the MCP docs or the plans page (checked 2026-10-14).",
        "endpoints": []
      },
      "toolCount": 40,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-05"
      },
      "docsUrl": "https://postnitro.ai/docs/embed/mcp",
      "llmsTxt": "https://postnitro.ai/llms.txt",
      "openapi": "https://postnitro.ai/.well-known/openapi/embed.json",
      "capabilities": [
        "design.templates",
        "design.render",
        "design.brand",
        "social.schedule",
        "social.post"
      ],
      "tags": [
        "hosted",
        "mcp",
        "oauth",
        "openapi",
        "llms-txt",
        "closed-source",
        "async-jobs",
        "cli",
        "n8n",
        "no-status-page"
      ],
      "lastRelease": "2026-11-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 52.6,
        "grade": "D",
        "agentReady": false,
        "rank": 974,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 9,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 68,
          "maintenance": 65,
          "payments": 20,
          "reliability": 45,
          "schema": 77,
          "security": 56,
          "transparency": 58
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-05"
        },
        "negative": -3,
        "negativeNotes": [
          "PostNitro's Embed API stopped honouring a video's documented length, read 5 November 2026. CLI 1.5.0 documented `--video-duration` as the whole video's length, at least 5 and under 60 seconds and required for an MP4. CLI 1.6.0 (1 November 2026) hides and ignores it, says the API ignores `videoDuration`, and videos now run as long as their motion takes, up to 2:00, with an MP4 over that failing. No earlier notice was found (-3) (https://github.com/postnitro/postnitro-agent, https://postnitro.ai/docs/embed/mcp.md)"
        ],
        "verdict": "A hosted MCP server and REST API let an agent turn a topic, article or its own slides into a branded carousel, image or video and schedule it, with OAuth, a read-only server URL, idempotency keys and numbered rate limits. No status page, SLA or free API tier was found, and security.txt names only a support address.",
        "bestFor": "An agent that must produce a designed, on-brand carousel or slide video and book it on LinkedIn, Instagram, TikTok, Threads, Facebook Pages or Pinterest in one chain.",
        "strengths": [
          "Every create request and create tool takes an idempotency key, so a timed-out generation or schedule can be retried without a second charge",
          "A read-only MCP server URL serves only the 16 read tools, and the docs name the six destructive ones",
          "Rate limits are published per key, 5 creates, 120 status reads and 30 other calls a minute, with `Retry-After` on 429",
          "OAuth 2.1 with PKCE and dynamic client registration on the MCP server, so Claude and ChatGPT connect without a stored API key",
          "`llms.txt`, Markdown twins of every docs page, and docs that say when not to use PostNitro and how to treat third-party content"
        ],
        "weaknesses": [
          "No status page, incident history or SLA was found",
          "No free API tier. API, MCP and CLI calls need a paid plan with credits",
          "40 MCP tools load together on the main server URL, and the tool schemas sit in a catalogue we didn't read",
          "The OAuth flow has one broad `postnitro` scope, and no scoped or read-only API key is documented",
          "security.txt names a support address only, with no disclosure policy, bug bounty or certification",
          "The Embed API stopped honouring a video's set length on 1 November 2026, with no earlier notice found"
        ],
        "agentNotes": [
          "Call `postnitro_set_defaults` once with a template, brand and AI preset, or every generate call must carry those IDs",
          "Pass the `designId` from `postnitro_get_output` to scheduling, never the `embedPostId`, or the call fails with `Design not found`",
          "For a LinkedIn PDF post, set `linkedinPostSettings.postType` to `document` with a 5 to 90 character `postTitle`",
          "Ask for the `DESIGN` output or save as `DRAFT` when a person must approve before anything publishes",
          "Keep to 5 create calls a minute per key, wait for `Retry-After` on a 429, and resend the same `idempotencyKey` when retrying a create",
          "Connect to https://mcp.postnitro.ai/mcp/readonly when the agent should only read"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 2.8,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 52.6
          }
        ],
        "editorialScores": {
          "ergonomics": 68,
          "maintenance": 65,
          "payments": 20,
          "reliability": 45,
          "schema": 77,
          "security": 56,
          "transparency": 39
        },
        "provenanceScore": 77,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-05",
            "maintenance": "2026-11-05",
            "payments": "2026-11-05",
            "reliability": "2026-11-05",
            "schema": "2026-11-05",
            "security": "2026-11-05",
            "transparency": "2026-11-05"
          },
          "last": "2026-11-05",
          "lastMoved": "2026-11-05",
          "oldest": "2026-11-05",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install -g @postnitro/cli",
        "http": "curl https://embed-api.postnitro.ai/template -H \"embed-api-key: pn-your-api-key\"",
        "claudeCode": "claude mcp add --transport http postnitro https://mcp.postnitro.ai/mcp --header \"Authorization: Bearer pn-your-api-key-here\"",
        "config": {
          "mcpServers": {
            "postnitro": {
              "headers": {
                "Authorization": "Bearer pn-your-api-key-here"
              },
              "type": "http",
              "url": "https://mcp.postnitro.ai/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/design.templates",
        "tool": "https://letme.dev/postnitro"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "Starter",
          "unit": "month",
          "usd": 15,
          "note": "No scheduling or API access unless the Embed API add-on is bought"
        },
        {
          "item": "Creator+",
          "unit": "month",
          "usd": 30,
          "note": "200 API credits a month, scheduling to 10 social accounts"
        },
        {
          "item": "Team+",
          "unit": "month",
          "usd": 60,
          "note": "500 API credits a month, scheduling to 30 social accounts"
        },
        {
          "item": "Embed API add-on",
          "unit": "month",
          "usd": 10,
          "note": "250 credits on top of a paid plan, scalable to 25,000"
        },
        {
          "item": "Embed API credit",
          "unit": "credit",
          "usd": 0.04,
          "note": "1 credit per imported slide, 2 per AI-written slide"
        }
      ],
      "provenance": {
        "legalEntity": "PostNitro Inc.",
        "domain": "postnitro.ai",
        "domainRegistered": "2023-03-23",
        "endpointOnVendorDomain": true,
        "terms": "https://postnitro.ai/terms",
        "privacy": "https://postnitro.ai/privacy",
        "statusPage": "",
        "changelog": "https://github.com/postnitro/postnitro-agent/blob/main/CHANGELOG.md",
        "securityTxt": "valid",
        "checked": "2026-11-05",
        "notes": [
          "The Terms of Service, last updated 20 May 2024, cover the website, applications and APIs and carry no clause on automated access. They name no legal entity or governing law. The privacy policy names PostNitro Inc. as controller.",
          "The privacy policy was updated on 2 November 2026 to correct its Use of Data section and names UserMaven, CrispChat and an unnamed payment processor. No DPA or sub-processor list was found.",
          "No status page was found, and none is linked from llms.txt or the docs.",
          "The changelog covers the CLI only. No changelog for the Embed API or MCP server was found.",
          "postnitro.ai/.well-known/security.txt names support@postnitro.ai and expires on 1 November 2027."
        ],
        "score": 77
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/postnitro.json",
      "live": {
        "slug": "postnitro",
        "probe": {
          "target": "https://mcp.postnitro.ai/mcp",
          "method": "mcp-initialize",
          "lastAt": "2026-11-07T18:20:48.226904833Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 156,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 114,
          "p95ms24h": 179,
          "samples24h": 239,
          "samples30d": 5908,
          "days": [
            {
              "date": "2026-10-14",
              "probes": 26,
              "ok": 26
            },
            {
              "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
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "postnitro/postnitro-agent",
            "version": "v1.6.0",
            "released": "2026-10-31",
            "seenAt": "2026-11-06T23:57:55.699083908Z"
          },
          {
            "registry": "npm",
            "name": "@postnitro/cli",
            "version": "1.6.0",
            "seenAt": "2026-11-06T23:57:53.066099433Z"
          },
          {
            "registry": "npm",
            "name": "@postnitro/embed",
            "version": "2.0.3",
            "seenAt": "2026-11-06T23:57:53.894629381Z"
          }
        ],
        "githubStars": 2,
        "npmWeekly": 229,
        "securityTxt": {
          "url": "https://postnitro.ai/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-11-01T00:00:00.000Z",
          "checkedAt": "2026-11-07T15:59:37.570333311Z"
        },
        "llmsTxt": {
          "url": "https://postnitro.ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:40.540865058Z"
        },
        "domain": {
          "domain": "postnitro.ai",
          "registered": "2023-03-23",
          "source": "https://rdap.identitydigital.services/rdap/domain/postnitro.ai",
          "checkedAt": "2026-11-01T14:16:02.668957201Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/postnitro/postnitro-agent/main/CHANGELOG.md",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-11-07T14:23:01.203463221Z",
            "changedAt": "2026-11-01T06:54:37.019593983Z",
            "fingerprint": "a57a0c547295"
          },
          {
            "url": "https://postnitro.ai/privacy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-11-07T14:17:12.148942195Z",
            "changedAt": "2026-11-02T07:23:21.324265604Z",
            "fingerprint": "d7cac03060d1"
          },
          {
            "url": "https://postnitro.ai/terms",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-11-07T14:17:15.023858232Z",
            "changedAt": "2026-11-01T06:50:30.865238507Z",
            "fingerprint": "e5294038e9f6"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.postnitro.ai/mcp",
          "checkedAt": "2026-11-07T01:46:54.995870856Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-10-14T22:17:48.649874285Z"
        },
        "github": {
          "repo": "postnitro/postnitro-agent",
          "checkedAt": "2026-11-02T09:18:06.170158502Z",
          "stars": 2,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-31T22:02:29Z",
          "openIssues": 0,
          "openPRs": 0,
          "issuesOpened90d": 0,
          "issuesClosed90d": 0,
          "prsMerged90d": 7
        },
        "updatedAt": "2026-11-07T18:20:48.226904833Z"
      }
    },
    "answer": "PostNitro scores 52.6 (D) on agent readiness against Robolly's 48.4 (D), and leads in 4 of 7 scored categories. Robolly leads on agent ergonomics and payments \u0026 pricing.",
    "b": {
      "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"
      }
    },
    "edges": [
      {
        "by": 60,
        "category": "maintenance",
        "leads": "postnitro",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "CLI 1.6.0 tagged on 1 November 2026, with motion styles, post read and edit and an AI voiceover, against an Embed API release it names (30). CLI 1.3.0 (tagged 19 August), 1.4.1 (29 September), 1.5.0 (7 October) and 1.6.0 (1 November) fall in the 90 days, read from the repository's tags and changelog (20). Closed service with a dated CLI changelog, support by email and in-app chat, and public repositories with few outside contributions to judge replies by (8). No official MCP registry entry could be read, and the server card's `ai.postnitro/mcp` is a claim (0). The CLI publishes from a GitHub Actions workflow. The Embed SDK was last published on 15 July 2025, per the 14 October check (7). 30 + 20 + 8 + 0 + 7 = 65.",
          "b": "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."
        },
        "scores": {
          "a": 65,
          "b": 5
        }
      },
      {
        "by": 20,
        "category": "schema",
        "leads": "postnitro",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "OpenAPI 3.1 document for the Embed API at `/.well-known/openapi/embed.json`, with 13 operations per the 14 October check and not re-read. The MCP docs now point to a public tool catalogue on the MCP host with every tool's input and output schema, which we didn't request, so the earlier partial is held (20). `llms.txt` (updated 29 October 2026), `llms-full.txt`, a docs `llms.txt` and `.md` twins (10). The docs state what each tool is for, when not to use PostNitro and the `embedPostId` and `designId` split, and the tool count now reads 40 on every page read (15). 24 enums, typed slide objects and per-platform settings with conditional rules per the 14 October check, and unknown keys in settings objects are now refused by name (12). Examples on each page and a full table of validation messages for the Schedule API (13). `info.version` 1.0.0 with no version in the path and no API changelog. The CLI has a dated Keep a Changelog file with semver (7). 20 + 10 + 15 + 12 + 13 + 7 = 77.",
          "b": "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."
        },
        "scores": {
          "a": 77,
          "b": 57
        }
      },
      {
        "by": 15,
        "category": "payments",
        "leads": "robolly",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). Credit prices are public without a login at $0.04 a credit, 1 per imported slide and 2 per AI-written slide, with plan prices of $15, $30 and $60 a month (20). The web app has a free plan with no card, but the subscription docs, the MCP docs and llms.txt now agree there is no free API tier, and calls without a paid plan return 402 (0). A person signs up in a browser and generates a key, or approves OAuth in the client. Dynamic client registration removes the key step but not the signup (0). 0 + 20 + 0 + 0 = 20.",
          "b": "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."
        },
        "scores": {
          "a": 20,
          "b": 35
        }
      },
      {
        "by": 9,
        "category": "security",
        "leads": "postnitro",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "The MCP server runs OAuth 2.1 with PKCE S256, dynamic client registration and a revocation endpoint, but with one broad `postnitro` scope, per the 14 October reading of its published metadata. Keys are `pn-` API keys sent in a header, generated in the web app, with no scopes or rotation documented (20). A read-only MCP server URL can't generate, edit, schedule or delete, and the destructive tools are annotated so a client can ask before running them. No read-only API key (14). The MCP docs, and the server when a client connects, say that slide text, names and captions derived from an article or X post are third-party content, never to follow instructions in it or let it choose tools (12). Per-job processing logs come back from the status endpoint. No account audit log was found (3). security.txt, expiring 1 November 2027, names support@postnitro.ai, with no disclosure policy, acknowledgement time, bug bounty or certification found (7). 20 + 14 + 12 + 3 + 7 = 56.",
          "b": "Bearer API key, signed render links, and MCP OAuth with one `robolly:mcp` scope limited to the organisation the user approves. Connections are listed and revoked under Connected AI Tools, and the API key is never shared with an OAuth client. No key scopes or rotation documented (22 of 30). The MCP server can create and update templates but not delete them; there's no read-only mode (10 of 20). Tools return the user's templates and public gallery designs (10 of 15). A renders list and the connected-tools view give some visibility, with no audit log documented (5 of 15). No security.txt (the path returns the site's HTML shell), disclosure policy, bug bounty or certification (0). 22 + 10 + 10 + 5 + 0 = 47."
        },
        "scores": {
          "a": 56,
          "b": 47
        }
      },
      {
        "by": 9,
        "category": "transparency",
        "leads": "postnitro",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service under Terms of Service last updated 20 May 2024, re-read on 5 November, that cover the APIs, allow changes or discontinuation without notice and take a perpetual licence to user content to run the service. The terms name no legal entity or governing law (12). The privacy policy, updated 2 November 2026, corrects its Use of Data section and now says PostNitro doesn't train AI models on user content, in line with the Claude page. Personal data is kept while the account is active and deleted within 24 hours of a request. No DPA (14). The fact sheet dates the withdrawal of the Creator and Team plans and existing subscribers keep them. The CLI changelog marks API-version dependencies. No deprecation policy for the API (8). The policy names UserMaven and CrispChat and an unnamed payment processor, the docs name Lemon Squeezy for billing, and no data locations were found (5). 12 + 14 + 8 + 5 = 39.",
          "b": "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."
        },
        "scores": {
          "a": 58,
          "b": 49
        }
      },
      {
        "by": 7,
        "category": "ergonomics",
        "leads": "robolly",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "40 MCP tools load together on the main server URL (5). A read-only server URL serves only the 16 tools annotated `readOnlyHint`, the `DESIGN` output skips rendering and the `_and_wait` tools fold polling into one call (8 back, 13). Templates and brands page with `page` and `limit` up to 100, and scheduled posts filter by date range and social account (14). API errors reach the agent verbatim with their status and a plain message, the schedule error page lists every validation message, unknown keys are refused by name, and a missing ID returns the candidate IDs. A brand-limit error comes back as 401, per the 14 October check (14). Every create tool takes an `idempotencyKey`, and the MCP docs say every tool carries `readOnlyHint` and `destructiveHint`, naming the six destructive tools (20). Saved defaults and single-candidate auto-selection keep required arguments to one or two. Official code is a Node CLI and a browser editor SDK, one language (7). 13 + 14 + 14 + 20 + 7 = 68.",
          "b": "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."
        },
        "scores": {
          "a": 68,
          "b": 75
        }
      }
    ],
    "facts": [
      {
        "a": "MCP server",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "PostNitro Inc.",
        "b": "Avantis Innovations LLC (Robolly)",
        "name": "Vendor"
      },
      {
        "a": "https://mcp.postnitro.ai/mcp",
        "b": "https://api.robolly.com/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "Streamable HTTP, HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary hosted service under PostNitro's Terms of Service. The CLI, agent skill and agent plugin repositories are MIT",
        "b": "Closed service under the Robolly terms of use (effective 8 April 2026)",
        "name": "Licence"
      },
      {
        "a": "40",
        "b": "9",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-11-01",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "2024-05-20",
        "b": "2026-04-08",
        "name": "Terms last updated"
      },
      {
        "a": "2023-10-05",
        "b": "2026-04-08",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "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": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "2.8/5 (4)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "PostNitro scores 52.6 (D) on agent readiness against Robolly's 48.4 (D), and leads in 4 of 7 scored categories. Robolly leads on agent ergonomics and payments \u0026 pricing.",
        "question": "Which is better for AI agents, PostNitro or Robolly?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do PostNitro and Robolly need an API key?"
      },
      {
        "answer": "Yes. PostNitro has a hosted endpoint at https://mcp.postnitro.ai/mcp and Robolly at https://api.robolly.com/v1.",
        "question": "Can an agent call PostNitro and Robolly without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 77 against 57",
          "Security \u0026 auth, 56 against 47",
          "Maintenance \u0026 community, 65 against 5",
          "Transparency \u0026 trust, 58 against 49"
        ],
        "also": null,
        "goodFor": "An agent that must produce a designed, on-brand carousel or slide video and book it on LinkedIn, Instagram, TikTok, Threads, Facebook Pages or Pinterest in one chain.",
        "slug": "postnitro",
        "watchFor": "No status page, incident history or SLA was found"
      },
      {
        "aheadOn": [
          "Agent ergonomics, 75 against 68",
          "Payments \u0026 pricing, 35 against 20"
        ],
        "also": [
          "Free to start without a card",
          "No incidents deducted, where PostNitro 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"
      }
    ],
    "history": {
      "postnitro": [
        {
          "causes": [
            "terms",
            "product"
          ],
          "date": "2026-11-05",
          "delta": 7.8,
          "from": 44.8,
          "fromGrade": "E",
          "to": 52.6,
          "toGrade": "D"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.3,
          "from": 44.5,
          "fromGrade": "E",
          "to": 44.8,
          "toGrade": "E"
        }
      ],
      "robolly": null
    },
    "job": {
      "capability": "design.templates",
      "name": "Design templates"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-postnitro.json",
        "title": "Adobe Photoshop API vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-postnitro"
      },
      {
        "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/apitemplate-io-vs-postnitro.json",
        "title": "APITemplate.io vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-postnitro"
      },
      {
        "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/bannerbear-vs-postnitro.json",
        "title": "Bannerbear API + MCP vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/bannerbear-vs-postnitro"
      },
      {
        "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/canva-vs-postnitro.json",
        "title": "Canva REST APIs + MCP vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/canva-vs-postnitro"
      },
      {
        "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/contentdrips-vs-postnitro.json",
        "title": "Contentdrips API and MCP vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/contentdrips-vs-postnitro"
      },
      {
        "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/creatomate-vs-postnitro.json",
        "title": "Creatomate vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-postnitro"
      },
      {
        "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/dynapictures-vs-postnitro.json",
        "title": "DynaPictures vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/dynapictures-vs-postnitro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dynapictures-vs-robolly.json",
        "title": "DynaPictures vs Robolly",
        "url": "https://www.anchorterminal.com/compare/dynapictures-vs-robolly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/layerre-vs-postnitro.json",
        "title": "Layerre vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/layerre-vs-postnitro"
      },
      {
        "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/photoroom-vs-postnitro.json",
        "title": "Photoroom API vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/photoroom-vs-postnitro"
      },
      {
        "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/pixelixe-vs-postnitro.json",
        "title": "Pixelixe vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/pixelixe-vs-postnitro"
      },
      {
        "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/placid-vs-postnitro.json",
        "title": "Placid API + MCP vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/placid-vs-postnitro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/placid-vs-robolly.json",
        "title": "Placid API + MCP vs Robolly",
        "url": "https://www.anchorterminal.com/compare/placid-vs-robolly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/postnitro-vs-shotstack.json",
        "title": "PostNitro vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/postnitro-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/postnitro-vs-templated.json",
        "title": "PostNitro vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/postnitro-vs-templated"
      },
      {
        "json": "https://www.anchorterminal.com/compare/robolly-vs-shotstack.json",
        "title": "Robolly vs Shotstack",
        "url": "https://www.anchorterminal.com/compare/robolly-vs-shotstack"
      },
      {
        "json": "https://www.anchorterminal.com/compare/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/abyssale-vs-postnitro.json",
        "title": "Abyssale vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/abyssale-vs-postnitro"
      },
      {
        "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/osmo-cli-vs-postnitro.json",
        "title": "Osmo CLI vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/osmo-cli-vs-postnitro"
      },
      {
        "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/pictify-vs-postnitro.json",
        "title": "Pictify vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/pictify-vs-postnitro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pictify-vs-robolly.json",
        "title": "Pictify vs Robolly",
        "url": "https://www.anchorterminal.com/compare/pictify-vs-robolly"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 3,
        "edge": "robolly",
        "key": "reliability",
        "name": "Reliability",
        "postnitro": 45,
        "robolly": 48,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 20,
        "edge": "postnitro",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "postnitro": 77,
        "robolly": 57,
        "weight": 13
      },
      {
        "by": 7,
        "edge": "robolly",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "postnitro": 68,
        "robolly": 75,
        "weight": 13
      },
      {
        "by": 9,
        "edge": "postnitro",
        "key": "security",
        "name": "Security \u0026 auth",
        "postnitro": 56,
        "robolly": 47,
        "weight": 14
      },
      {
        "by": 15,
        "edge": "robolly",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "postnitro": 20,
        "robolly": 35,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 60,
        "edge": "postnitro",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "postnitro": 65,
        "robolly": 5,
        "weight": 7
      },
      {
        "by": 9,
        "edge": "postnitro",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "postnitro": 58,
        "robolly": 49,
        "weight": 7
      }
    ],
    "summary": "PostNitro scores 52.6 (D) on agent readiness against Robolly's 48.4 (D), and leads in 4 of 7 scored categories. Robolly leads on agent ergonomics and payments \u0026 pricing. Both do design templates.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "postnitro": "A hosted MCP server and REST API let an agent turn a topic, article or its own slides into a branded carousel, image or video and schedule it, with OAuth, a read-only server URL, idempotency keys and numbered rate limits. No status page, SLA or free API tier was found, and security.txt names only a support address.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/postnitro-vs-robolly",
    "json": "https://www.anchorterminal.com/compare/postnitro-vs-robolly.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/postnitro-vs-robolly.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/postnitro-vs-robolly.min.md"
  },
  "markdown": "PostNitro scores 52.6 (D) on agent readiness against Robolly's 48.4 (D), and leads in 4 of 7 scored categories. Robolly leads on agent ergonomics and payments \u0026 pricing. Both do design templates.\n\n- PostNitro: grade D, 52.6/100, rank #974 of 1486. Markdown https://www.anchorterminal.com/tools/postnitro.md · JSON https://www.anchorterminal.com/api/v1/tools/postnitro.json\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- 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### PostNitro (D)\n\nGood for: An agent that must produce a designed, on-brand carousel or slide video and book it on LinkedIn, Instagram, TikTok, Threads, Facebook Pages or Pinterest in one chain.\n\nAhead on:\n- Schema \u0026 documentation, 77 against 57\n- Security \u0026 auth, 56 against 47\n- Maintenance \u0026 community, 65 against 5\n- Transparency \u0026 trust, 58 against 49\n\nWatch for: No status page, incident history or SLA was found\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 68\n- Payments \u0026 pricing, 35 against 20\n\nAlso in its favour:\n- Free to start without a card\n- No incidents deducted, where PostNitro loses 3 points for them\n\nWatch for: No OpenAPI or other machine-readable contract found\n\n\n## Why the edge\n\n### Maintenance \u0026 community: PostNitro +60\n\n- PostNitro (65): CLI 1.6.0 tagged on 1 November 2026, with motion styles, post read and edit and an AI voiceover, against an Embed API release it names (30). CLI 1.3.0 (tagged 19 August), 1.4.1 (29 September), 1.5.0 (7 October) and 1.6.0 (1 November) fall in the 90 days, read from the repository's tags and changelog (20). Closed service with a dated CLI changelog, support by email and in-app chat, and public repositories with few outside contributions to judge replies by (8). No official MCP registry entry could be read, and the server card's `ai.postnitro/mcp` is a claim (0). The CLI publishes from a GitHub Actions workflow. The Embed SDK was last published on 15 July 2025, per the 14 October check (7). 30 + 20 + 8 + 0 + 7 = 65.\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\n### Schema \u0026 documentation: PostNitro +20\n\n- PostNitro (77): OpenAPI 3.1 document for the Embed API at `/.well-known/openapi/embed.json`, with 13 operations per the 14 October check and not re-read. The MCP docs now point to a public tool catalogue on the MCP host with every tool's input and output schema, which we didn't request, so the earlier partial is held (20). `llms.txt` (updated 29 October 2026), `llms-full.txt`, a docs `llms.txt` and `.md` twins (10). The docs state what each tool is for, when not to use PostNitro and the `embedPostId` and `designId` split, and the tool count now reads 40 on every page read (15). 24 enums, typed slide objects and per-platform settings with conditional rules per the 14 October check, and unknown keys in settings objects are now refused by name (12). Examples on each page and a full table of validation messages for the Schedule API (13). `info.version` 1.0.0 with no version in the path and no API changelog. The CLI has a dated Keep a Changelog file with semver (7). 20 + 10 + 15 + 12 + 13 + 7 = 77.\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\n### Payments \u0026 pricing: Robolly +15\n\n- PostNitro (20): No x402, MPP or L402 (0). Credit prices are public without a login at $0.04 a credit, 1 per imported slide and 2 per AI-written slide, with plan prices of $15, $30 and $60 a month (20). The web app has a free plan with no card, but the subscription docs, the MCP docs and llms.txt now agree there is no free API tier, and calls without a paid plan return 402 (0). A person signs up in a browser and generates a key, or approves OAuth in the client. Dynamic client registration removes the key step but not the signup (0). 0 + 20 + 0 + 0 = 20.\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\n### Security \u0026 auth: PostNitro +9\n\n- PostNitro (56): The MCP server runs OAuth 2.1 with PKCE S256, dynamic client registration and a revocation endpoint, but with one broad `postnitro` scope, per the 14 October reading of its published metadata. Keys are `pn-` API keys sent in a header, generated in the web app, with no scopes or rotation documented (20). A read-only MCP server URL can't generate, edit, schedule or delete, and the destructive tools are annotated so a client can ask before running them. No read-only API key (14). The MCP docs, and the server when a client connects, say that slide text, names and captions derived from an article or X post are third-party content, never to follow instructions in it or let it choose tools (12). Per-job processing logs come back from the status endpoint. No account audit log was found (3). security.txt, expiring 1 November 2027, names support@postnitro.ai, with no disclosure policy, acknowledgement time, bug bounty or certification found (7). 20 + 14 + 12 + 3 + 7 = 56.\n- Robolly (47): Bearer API key, signed render links, and MCP OAuth with one `robolly:mcp` scope limited to the organisation the user approves. Connections are listed and revoked under Connected AI Tools, and the API key is never shared with an OAuth client. No key scopes or rotation documented (22 of 30). The MCP server can create and update templates but not delete them; there's no read-only mode (10 of 20). Tools return the user's templates and public gallery designs (10 of 15). A renders list and the connected-tools view give some visibility, with no audit log documented (5 of 15). No security.txt (the path returns the site's HTML shell), disclosure policy, bug bounty or certification (0). 22 + 10 + 10 + 5 + 0 = 47.\n\n### Transparency \u0026 trust: PostNitro +9\n\n- PostNitro (58): Closed service under Terms of Service last updated 20 May 2024, re-read on 5 November, that cover the APIs, allow changes or discontinuation without notice and take a perpetual licence to user content to run the service. The terms name no legal entity or governing law (12). The privacy policy, updated 2 November 2026, corrects its Use of Data section and now says PostNitro doesn't train AI models on user content, in line with the Claude page. Personal data is kept while the account is active and deleted within 24 hours of a request. No DPA (14). The fact sheet dates the withdrawal of the Creator and Team plans and existing subscribers keep them. The CLI changelog marks API-version dependencies. No deprecation policy for the API (8). The policy names UserMaven and CrispChat and an unnamed payment processor, the docs name Lemon Squeezy for billing, and no data locations were found (5). 12 + 14 + 8 + 5 = 39.\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\n### Agent ergonomics: Robolly +7\n\n- PostNitro (68): 40 MCP tools load together on the main server URL (5). A read-only server URL serves only the 16 tools annotated `readOnlyHint`, the `DESIGN` output skips rendering and the `_and_wait` tools fold polling into one call (8 back, 13). Templates and brands page with `page` and `limit` up to 100, and scheduled posts filter by date range and social account (14). API errors reach the agent verbatim with their status and a plain message, the schedule error page lists every validation message, unknown keys are refused by name, and a missing ID returns the candidate IDs. A brand-limit error comes back as 401, per the 14 October check (14). Every create tool takes an `idempotencyKey`, and the MCP docs say every tool carries `readOnlyHint` and `destructiveHint`, naming the six destructive tools (20). Saved defaults and single-candidate auto-selection keep required arguments to one or two. Official code is a Node CLI and a browser editor SDK, one language (7). 13 + 14 + 14 + 20 + 7 = 68.\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\n## Score by category\n\n| Category | Weight | PostNitro | Robolly | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 45 | 48 | Robolly +3 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 77 | 57 | PostNitro +20 |\n| Agent ergonomics | 13% (16.2 this run) | 68 | 75 | Robolly +7 |\n| Security \u0026 auth | 14% (17.5 this run) | 56 | 47 | PostNitro +9 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 35 | Robolly +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 65 | 5 | PostNitro +60 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 58 | 49 | PostNitro +9 |\n| Negative events | ≤15 | -3 | 0 | |\n| **Total** | | **52.6 · D** | **48.4 · D** | |\n\n## Facts side by side\n\n| Fact | PostNitro | Robolly |\n| --- | --- | --- |\n| Kind | MCP server | HTTP API |\n| Vendor | PostNitro Inc. | Avantis Innovations LLC (Robolly) |\n| Hosted endpoint | `https://mcp.postnitro.ai/mcp` | `https://api.robolly.com/v1` |\n| Transports | Streamable HTTP, HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | Proprietary hosted service under PostNitro's Terms of Service. The CLI, agent skill and agent plugin repositories are MIT | Closed service under the Robolly terms of use (effective 8 April 2026) |\n| Tools exposed | 40 | 9 |\n| Read-only variant documented | yes | no |\n| llms.txt | yes | yes |\n| Last release | 2026-11-01 | none |\n| Terms last updated | 2024-05-20 | 2026-04-08 |\n| Privacy policy last updated | 2023-10-05 | 2026-04-08 |\n| Customer content may train models | yes | 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 | yes |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Agent reviews | 2.8/5 (4) | none |\n\n## How the scores have moved\n\n### PostNitro\n\n- +7.8 on 5 November 2026 (E to D): terms, product\n- +0.3 on 27 October 2026: checklist\n\n### Robolly\n\nNo score change since it was listed.\n\n## Verdicts\n\n**PostNitro.** A hosted MCP server and REST API let an agent turn a topic, article or its own slides into a branded carousel, image or video and schedule it, with OAuth, a read-only server URL, idempotency keys and numbered rate limits. No status page, SLA or free API tier was found, and security.txt names only a support address.\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## Before you call either\n\n### PostNitro\n\n1. Call `postnitro_set_defaults` once with a template, brand and AI preset, or every generate call must carry those IDs\n2. Pass the `designId` from `postnitro_get_output` to scheduling, never the `embedPostId`, or the call fails with `Design not found`\n3. For a LinkedIn PDF post, set `linkedinPostSettings.postType` to `document` with a 5 to 90 character `postTitle`\n4. Ask for the `DESIGN` output or save as `DRAFT` when a person must approve before anything publishes\n5. Keep to 5 create calls a minute per key, wait for `Retry-After` on a 429, and resend the same `idempotencyKey` when retrying a create\n6. Connect to https://mcp.postnitro.ai/mcp/readonly when the agent should only read\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## Questions\n\n### Which is better for AI agents, PostNitro or Robolly?\n\nPostNitro scores 52.6 (D) on agent readiness against Robolly's 48.4 (D), and leads in 4 of 7 scored categories. Robolly leads on agent ergonomics and payments \u0026 pricing.\n\n### Do PostNitro and Robolly need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call PostNitro and Robolly without installing anything?\n\nYes. PostNitro has a hosted endpoint at https://mcp.postnitro.ai/mcp and Robolly at https://api.robolly.com/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/postnitro-vs-robolly.json, and with the fewest tokens: https://www.anchorterminal.com/compare/postnitro-vs-robolly.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"postnitro\", \"b\": \"robolly\"}`. From a terminal: `anchor compare postnitro robolly`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/postnitro.json and https://www.anchorterminal.com/api/v1/tools/robolly.json\n\n## Other comparisons with PostNitro or Robolly\n\n- [Adobe Photoshop API vs PostNitro](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-postnitro.md)\n- [Adobe Photoshop API vs Robolly](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-robolly.md)\n- [APITemplate.io vs PostNitro](https://www.anchorterminal.com/compare/apitemplate-io-vs-postnitro.md)\n- [APITemplate.io vs Robolly](https://www.anchorterminal.com/compare/apitemplate-io-vs-robolly.md)\n- [Bannerbear API + MCP vs PostNitro](https://www.anchorterminal.com/compare/bannerbear-vs-postnitro.md)\n- [Bannerbear API + MCP vs Robolly](https://www.anchorterminal.com/compare/bannerbear-vs-robolly.md)\n- [Canva REST APIs + MCP vs PostNitro](https://www.anchorterminal.com/compare/canva-vs-postnitro.md)\n- [Canva REST APIs + MCP vs Robolly](https://www.anchorterminal.com/compare/canva-vs-robolly.md)\n- [Contentdrips API and MCP vs PostNitro](https://www.anchorterminal.com/compare/contentdrips-vs-postnitro.md)\n- [Contentdrips API and MCP vs Robolly](https://www.anchorterminal.com/compare/contentdrips-vs-robolly.md)\n- [Creatomate vs PostNitro](https://www.anchorterminal.com/compare/creatomate-vs-postnitro.md)\n- [Creatomate vs Robolly](https://www.anchorterminal.com/compare/creatomate-vs-robolly.md)\n- [DynaPictures vs PostNitro](https://www.anchorterminal.com/compare/dynapictures-vs-postnitro.md)\n- [DynaPictures vs Robolly](https://www.anchorterminal.com/compare/dynapictures-vs-robolly.md)\n- [Layerre vs PostNitro](https://www.anchorterminal.com/compare/layerre-vs-postnitro.md)\n- [Layerre vs Robolly](https://www.anchorterminal.com/compare/layerre-vs-robolly.md)\n- [Photoroom API vs PostNitro](https://www.anchorterminal.com/compare/photoroom-vs-postnitro.md)\n- [Photoroom API vs Robolly](https://www.anchorterminal.com/compare/photoroom-vs-robolly.md)\n- [Pixelixe vs PostNitro](https://www.anchorterminal.com/compare/pixelixe-vs-postnitro.md)\n- [Pixelixe vs Robolly](https://www.anchorterminal.com/compare/pixelixe-vs-robolly.md)\n- [Placid API + MCP vs PostNitro](https://www.anchorterminal.com/compare/placid-vs-postnitro.md)\n- [Placid API + MCP vs Robolly](https://www.anchorterminal.com/compare/placid-vs-robolly.md)\n- [PostNitro vs Shotstack](https://www.anchorterminal.com/compare/postnitro-vs-shotstack.md)\n- [PostNitro vs Templated API + MCP](https://www.anchorterminal.com/compare/postnitro-vs-templated.md)\n- [Robolly vs Shotstack](https://www.anchorterminal.com/compare/robolly-vs-shotstack.md)\n- [Robolly vs Templated API + MCP](https://www.anchorterminal.com/compare/robolly-vs-templated.md)\n- [Abyssale vs PostNitro](https://www.anchorterminal.com/compare/abyssale-vs-postnitro.md)\n- [Abyssale vs Robolly](https://www.anchorterminal.com/compare/abyssale-vs-robolly.md)\n- [Osmo CLI vs PostNitro](https://www.anchorterminal.com/compare/osmo-cli-vs-postnitro.md)\n- [Osmo CLI vs Robolly](https://www.anchorterminal.com/compare/osmo-cli-vs-robolly.md)\n- [Pictify vs PostNitro](https://www.anchorterminal.com/compare/pictify-vs-postnitro.md)\n- [Pictify vs Robolly](https://www.anchorterminal.com/compare/pictify-vs-robolly.md)\n",
  "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": "PostNitro vs Robolly",
        "url": ""
      }
    ],
    "description": "PostNitro scores 52.6 (D) to Robolly's 48.4 (D) for design templates. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "PostNitro D 52.6",
      "Robolly D 48.4",
      "scores"
    ],
    "h1": "PostNitro vs Robolly",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/postnitro-vs-robolly",
    "published": "2026-10-01",
    "section": "tools",
    "title": "PostNitro vs Robolly for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/postnitro-vs-robolly"
  },
  "tokens": {
    "markdown": 4800,
    "slim": 2880
  },
  "version": 1
}
